自托管MCP堆栈
对于恢复工作的AI代理: 从上到下阅读此文件。STATE部分告诉磁盘上存在什么。下一部分告诉你该做什么。下面的参考部分有你需要的详细信息。
这是什么
一个自托管的开发环境,用您控制的本地工具和OSS取代云MCP服务器。没有供应商锁定,没有费率限制,不依赖于其他人的正常运行时间。
Cloud MCP Server → Extract tool definitions → Generate SKILL.md
("phone book") (points to self-hosted tools)基础路径: /Users/lucassaintlaurent/Desktop/Workspace/GitHubVault/OfflineMPCs/ GitHub账号: CYPKNFT(克隆前在此分叉的所有存储库) 原计划: JARVIS/Plans/Context7Offline.md
______________________________________________________________________
国家——现在存在什么
完成
| 什么 | 状态 | 证明 |
|---|---|---|
| 目录结构 | 已完成 | find OfflineMPCs/ -type d -maxdepth 1 |
| 11 MCP电话簿存储库克隆 | 完成 | ls mcp-phonebooks/ → 11 dirs |
| 已提取273个工具定义 | 已完成 | manifests/phonebook-index.json (673行,有效JSON) |
| 克隆了50个文档仓库 | 完成 | manifests/clone-manifest.json (50个条目,约5.4 GB) |
| 已生成克隆清单 | 已完成 | manifests/clone-manifest.json |
| 11个SKILL.md文件(所有技能) | 完成 | ls skills/*/SKILL.md → 11 文件(共151个操作) |
| 测试套件(3个级别) | 已完成 | tests/test-structure.sh, test-dependencies.sh, test-functional.sh |
| 结构测试通过 | 完成 | 11/11技能通过 |
| 技能登记 | 完成 | manifests/skill-registry.json (11个就绪,0个待定) |
技能状态(全部11项完成)
| 技能 | 操作 | 离线 | 状态 |
|---|---|---|---|
docs-lookup | 4 | 是 | READY--替换Context7 |
file-ops | 14 | 是 | 准备好了 |
git-ops | 12 | 是 | 准备好了 |
memory | 9 | 是 | 准备好了 |
container-ops | 14 | 是 | 准备好了 |
doc-conversion | 10 | 是 | 准备好了 |
browser | 26 | 否(实时MCP) | 准备就绪 |
search | 19 | 是(本地)/网络(网络) | 就绪--取代Exa+Firecrawl |
database | 15 | 是 | 准备就绪--取代Supabase |
project-management | 16 | 是 | 准备就绪--取代Jira/Notion |
messaging | 12 | 是 | 准备就绪--代理协调 |
未完成
| 什么 | 状态 | 注释 |
|---|---|---|
| 无任何阻碍 | -- | 所有阶段均已完成。矢量索引可能仍在首次运行时构建。 |
最近完成
| 什么 | 状态 | 注释 |
|---|---|---|
| CLI工具安装(阶段A) | 完成 | pandoc 3.9,duckdb 1.4.4,chromadb 1.5.0,Python venv at .venv/ |
| CLI包装脚本(阶段B) | 完成 | 中有5个工具 tools/:索引文档、搜索、数据库、项目管理、消息 |
| FTS5索引已构建 | 完成 | 来自50个库(16个)中28363个文件的163973个块 |
| ChromaDB矢量索引 | 重建 | 163973个块,全MiniLM-L6-v2(运行 ./tools/index-docs build --vec) |
| Docker编写大纲(C阶段) | 完成 | local-software/outline/ → http://localhost:3000 |
| 平面Docker编写(C阶段) | 完成 | local-software/plane/ → http://localhost:8080 |
______________________________________________________________________
快速开始——开始跑步
一切都已建成。以下是如何使用它。
1.激活Python环境
cd /Users/lucassaintlaurent/Desktop/Workspace/GitHubVault/OfflineMPCs
source .venv/bin/activate2.搜索文档(本地)
# Keyword search (fast, exact matches)
./tools/index-docs search "middleware authentication" --fts
# Semantic search (meaning-based, uses vector embeddings)
./tools/index-docs search "how to handle auth in middleware" --vec
# Hybrid search (both combined — default)
./tools/index-docs search "server components" --lib next.js
# Web search (DuckDuckGo)
./tools/search web "python sqlite fts5 tutorial"3.查询数据
# Query CSV/JSON/Parquet directly (no import needed)
./tools/db query "SELECT * FROM 'data.csv' LIMIT 10"
# Query SQLite databases
./tools/db query "SELECT * FROM issues" --db data/projects.db
./tools/db describe data/projects.db4.项目管理
./tools/pm project list
./tools/pm issue create OfflineMPCs "Add new docs repo" --priority high
./tools/pm issue list --status open
./tools/pm stats5.代理消息传递
./tools/msg send general "Build phase complete"
./tools/msg read general
./tools/msg search "authentication"6.可选web UI(Docker)
cd local-software
./start.sh # Start everything + open browser
./start.sh outline # Start only Outline (http://localhost:3000)
./start.sh plane # Start only Plane (http://localhost:8080)
./start.sh stop # Stop all services
./start.sh logs # Tail logs
./start.sh status # Check what's running重建索引(添加新文档后)
source .venv/bin/activate
./tools/index-docs build --fts # Rebuild keyword index (~16s)
./tools/index-docs build --vec --force # Rebuild vector index (slow, one-time)
./tools/index-docs stats # Check index stats
./tools/index-docs libs # List indexed libraries______________________________________________________________________
参考——已经做出的关键决策
- 自托管,不严格离线 --服务可以在本地网络上运行,而不仅仅是本地主机
- 将所有内容分叉到CYPNFT 克隆之前(GitHubVault惯例)
--depth 1对于doc repos (仅供参考),软件仓库的完整克隆- 剧作家MCP继续直播 --浏览器状态需要一个正在运行的进程,只有技能才能记录模式
- SKILL.md格式 定义于
JARVIS/Plans/Context7Offline.md第三阶段 - 电话簿索引.json 是所有工具定义的真实来源
- CLI优先架构 --由CLI工具而非Docker服务支持的每一项技能
- 没有Gitea --GitHub(CYPKNFT)保持原样。
gitCLI+ghCLI已经涵盖了它 - Docker是可选的 --如果您想要可视化界面,则仅适用于web UI(大纲、平面)
- SQLite作为通用后端 --项目管理、消息传递、索引都使用SQLite。一个依赖关系,零服务器
______________________________________________________________________
参考——目录图
OfflineMPCs/
├── mcp-phonebooks/ # 11 cloned MCP server repos (REFERENCE ONLY)
│ ├── official-servers/ # filesystem (14), git (12), memory (9), fetch (1)
│ ├── github-mcp/ # 82 tools
│ ├── playwright-mcp/ # 26 tools
│ ├── notion-mcp/ # 22 tools
│ ├── atlassian-mcp/ # 46 tools (Jira 34 + Confluence 12)
│ ├── markdownify-mcp/ # 10 tools
│ ├── docker-mcp/ # 0 tools (gateway only)
│ ├── context7-mcp/ # 2 tools
│ ├── exa-mcp/ # 9 tools
│ ├── firecrawl-mcp/ # 8 tools
│ └── supabase-mcp/ # 32 tools
│
├── skills/ # SKILL.md files (ALL 11 READY)
│ ├── docs-lookup/SKILL.md # ✓ Context7 → rg over local docs (4 ops)
│ ├── file-ops/SKILL.md # ✓ Filesystem MCP → bash, find, rg (14 ops)
│ ├── git-ops/SKILL.md # ✓ Git MCP → git CLI + gh CLI (12 ops)
│ ├── memory/SKILL.md # ✓ Memory MCP → local JSON/SQLite (9 ops)
│ ├── container-ops/SKILL.md # ✓ Docker MCP → docker CLI (14 ops)
│ ├── doc-conversion/SKILL.md # ✓ Markdownify → Pandoc, Docling (10 ops)
│ ├── browser/SKILL.md # ✓ Playwright → MCP stays live (26 ops)
│ ├── search/SKILL.md # ✓ Exa/Firecrawl → ddgr + SQLite FTS5 (19 ops)
│ ├── database/SKILL.md # ✓ Supabase → DuckDB + SQLite (15 ops)
│ ├── project-management/SKILL.md # ✓ Jira/Notion → SQLite CLI (16 ops)
│ └── messaging/SKILL.md # ✓ Slack → SQLite messaging (12 ops)
│
├── docs/ # 50 cloned library repos (~5.4 GB) — DATA IS HERE
│ ├── python/ # cpython, flask, django, fastapi, pydantic, requests,
│ │ # sqlalchemy, pytest, pandas, numpy, pytorch,
│ │ # transformers, langchain, llama_index
│ ├── javascript/ # node, next.js, react, vue, svelte, express, hono,
│ │ # zod, tailwindcss, prisma, drizzle-orm, trpc, shadcn-ui
│ ├── rust/ # rust, rust-book, tokio, serde, axum, clap
│ ├── go/ # go, gin, fiber, gorm
│ ├── ai-ml/ # anthropic-sdk, openai-sdk, diffusers, vllm,
│ │ # llama.cpp, ollama, docling, chromadb, qdrant
│ └── infra/ # docker-docs, kubernetes, terraform, nginx
│
├── tools/ # ✓ CLI wrapper scripts (ALL 5 BUILT)
│ ├── index-docs # ✓ Python: hybrid FTS5 + ChromaDB vector search (430 lines)
│ ├── search # ✓ Python: unified local + web search (175 lines)
│ ├── db # ✓ Bash: DuckDB + SQLite query wrapper (205 lines)
│ ├── pm # ✓ Python: project management CRUD (310 lines)
│ └── msg # ✓ Python: agent messaging + channels (290 lines)
│
├── data/ # ✓ SQLite databases (CREATED)
│ ├── docs-index.db # ✓ FTS5 search index (163,973 chunks, 50 libraries)
│ ├── chromadb/ # ✓ Vector embeddings (all-MiniLM-L6-v2)
│ ├── projects.db # ✓ Project management data
│ └── messages.db # ✓ Agent messaging data (5 default channels)
│
├── .venv/ # Python virtual environment (chromadb + deps)
│
├── local-software/ # Docker Compose configs (OPTIONAL web UIs)
│ ├── start.sh # ✓ Launcher script (macOS/Linux) — start, stop, status, logs
│ ├── start.ps1 # ✓ Launcher script (Windows PowerShell)
│ ├── outline/ # ✓ Knowledge base (Notion replacement)
│ │ ├── docker-compose.yml # 3 containers: app + PostgreSQL + Valkey
│ │ └── docker.env # Environment config
│ └── plane/ # ✓ Project boards (Jira replacement)
│ ├── docker-compose.yml # 12 containers: full stack
│ └── plane.env # Environment config
│
├── manifests/
│ ├── phonebook-index.json # 273 tool definitions from 11 MCPs
│ ├── clone-manifest.json # 50 doc repos with hashes + sizes
│ └── skill-registry.json # 11 ready skills + test results
│
└── tests/
├── test-structure.sh # Level 1: structural validation
├── test-dependencies.sh # Level 2: dependency validation
├── test-functional.sh # Level 3: functional validation
└── results/ # JSON test results with timestamps______________________________________________________________________
参考——工具分类(共273个)
| 分类 | 计数 | 含义 |
|---|---|---|
| 本地 | 67 | 现在可以使用了——CLI工具、文件系统、git、浏览器自动化 |
| 自托管 | 19 | 云API,带插入式自托管替换 |
| 仅限云 | 187 | 专有API-被自托管OSS平台取代 |
本地(67种工具)
无需设置即可工作。使用人: file-ops, git-ops, memory, doc-conversion, browser 技能。
| 来源 | 工具 | 内容 |
|---|---|---|
| 官方服务器/文件系统 | 14 | 读取、写入、编辑、移动、搜索、列出文件 |
| 官方服务器/git | 12 | 状态、差异、提交、添加、日志、分支、签出 |
| 官方服务器/内存 | 9 | 本地知识图上的CRUD(实体、关系、观察) |
| markdownify mcp | 7 | pdf/docx/xlsx/pptx/图像/音频→ 降价转换 |
| 剧作家mcp | 25 | 点击、键入、截图、评估JS、表单填充等。 |
自托管→ CLI(19个工具)
云API被本地CLI工具取代。不需要服务器。
| 来源 | 工具 | 云→ CLI |
|---|---|---|
| firerawl mcp | 8 | 萤火虫云→ docling (OCR)+ curl + pandoc |
| supabase mcp | 11 | supabase云→ duckdb + sqlite3 |
仅限云→ CLI替换(187个工具)
使用轻量级CLI工具取代API,而不是运行云平台的自托管副本。
| 云MCP | 工具 | CLI替换 | 估计。覆盖范围 |
|---|---|---|---|
| github mcp | 82 | 未更换 --使用GitHub(CYPKNFT)+ gh CLI+ git CLI | N/A |
| 澳大利亚海事委员会(Jira) | 34 | tools/pm --SQLite支持的项目管理CLI | ~75% |
| atlasian mcp(汇流) | 12 | tools/pm +markdown文件在 docs/ | ~70% |
| 概念mcp | 22 | tools/pm +降价文件 | ~65% |
| suabase mcp(云操作) | 13 | duckdb + sqlite3 | ~70% |
| mcp考试 | 9 | tools/search — ddgr / requests +SQLite FTS5 | 约60% |
| markdownify mcp(网络) | 3 | 剧作家 + 多语言文档 | ~80% |
| 上下文7 mcp | 2 | 文档查找技能 (超过50个本地仓库) | ~95% |
| 官方服务器/fetch | 1 | curl 或剧作家 | ~100% |
| 剧作家mcp(导航) | 1 | 继续担任现场mcp | 100% |
______________________________________________________________________
参考——安装指南
所需的CLI工具
brew install ripgrep pandoc duckdb
pip install docling chromadb| 工具 | 目的 | 使用人 |
|---|---|---|
rg (ripgrep) | 快速文本搜索 | 文档查找、文件操作、搜索 |
pandoc | 文档转换(pdf、docx、html→ md) | 文档转换 |
duckdb | CSV/JSON/Parket上的嵌入式SQL——无服务器 | 数据库 |
docling | PDF/图像OCR到markdown | 文档转换 |
chromadb | 嵌入式矢量数据库——无服务器 | 搜索(语义) |
CLI包装工具(内置 tools/)
| 工具 | 功能 | 后端 |
|---|---|---|
tools/search | 网络搜索+本地全文索引 | ddgr 或Python requests +SQLite FTS5 |
tools/db | 对任何数据格式的SQL查询 | duckdb + sqlite3 |
tools/pm | 创建/更新/查询问题、冲刺、标签 | SQLite(data/projects.db) |
tools/msg | 在代理之间发布/读取消息 | SQLite(data/messages.db) |
tools/index-docs | 在所有50个文档仓库中构建可搜索的FTS5索引 | SQLite(data/docs-index.db) |
可选Docker(仅限web UI)
只有当你想要人类的视觉界面时才需要。CLI工具在没有这些的情况下工作。
| 服务 | 用途 | 容器 | 部署 |
|---|---|---|---|
| 大纲 | 知识库web UI(您自己的概念) | 3(app+pg+valkey) | ./start.sh outline |
| 飞机 | 项目板web UI(您自己的Jira) | 12(全栈) | ./start.sh plane |
______________________________________________________________________
参考——文档查找(Context7替换)
最高优先级的技能。准备就绪--完全熟练.md skills/docs-lookup/SKILL.md.
# Resolve a library
find docs/ -maxdepth 2 -type d -iname "*next.js*"
# Search its docs
rg -n -C 3 --type md "middleware" docs/javascript/next.js/docs/
# Browse its API
rg -n "^export (default |const |function |class )" docs/javascript/next.js/packages/ --type ts | head -506个类别的50个图书馆。没有API密钥。没有费率限制。
______________________________________________________________________
更新中
cd /Users/lucassaintlaurent/Desktop/Workspace/GitHubVault/OfflineMPCs
# Update doc repos
find docs/ -maxdepth 3 -name ".git" -type d | while read g; do
r=$(dirname "$g"); echo "Updating $r..."; (cd "$r" && git pull --ff-only 2>/dev/null)
done
# Update MCP phone books
find mcp-phonebooks/ -maxdepth 2 -name ".git" -type d | while read g; do
r=$(dirname "$g"); echo "Updating $r..."; (cd "$r" && git pull --ff-only 2>/dev/null)
done