自托管开发环境工具集

一个自托管的开发环境工具集,通过本地工具和开源软件替代云MCP服务器,提供文件操作、文档搜索、项目管理等功能。

  • by CYPKNFT
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 CYPKNFT/OfflineMPCs

使用说明

自托管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/activate

2.搜索文档(本地)

# 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.db

4.项目管理

./tools/pm project list
./tools/pm issue create OfflineMPCs "Add new docs repo" --priority high
./tools/pm issue list --status open
./tools/pm stats

5.代理消息传递

./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

参考——已经做出的关键决策

  1. 自托管,不严格离线 --服务可以在本地网络上运行,而不仅仅是本地主机
  2. 将所有内容分叉到CYPNFT 克隆之前(GitHubVault惯例)
  3. --depth 1 对于doc repos (仅供参考),软件仓库的完整克隆
  4. 剧作家MCP继续直播 --浏览器状态需要一个正在运行的进程,只有技能才能记录模式
  5. SKILL.md格式 定义于 JARVIS/Plans/Context7Offline.md 第三阶段
  6. 电话簿索引.json 是所有工具定义的真实来源
  7. CLI优先架构 --由CLI工具而非Docker服务支持的每一项技能
  8. 没有Gitea --GitHub(CYPKNFT)保持原样。 git CLI+ gh CLI已经涵盖了它
  9. Docker是可选的 --如果您想要可视化界面,则仅适用于web UI(大纲、平面)
  10. 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 -50

6个类别的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