一个用于从技术文档构建独立可搜索的MCP服务器的框架。创建具有混合向量+关键词搜索功能的独立文档服务器,准备好分发和部署。
该框架使您能够:
此项目支持多个独立的MCP服务器,每个服务器服务于不同的文档源:
/home/james/mcp/
├── servers/ # 独立MCP服务器
│ ├── mojo-manual-mcp/ # Mojo文档服务器
│ │ ├── runtime/ # 服务器代码+索引数据库
│ │ │ ├── mojo_manual_mcp_server.py
│ │ │ ├── search.py
│ │ │ └── mojo_manual_mcp.db
│ │ ├── config/ # YAML配置
│ │ │ ├── processing_config.yaml
│ │ │ └── server_config.yaml
│ │ ├── requirements.txt
│ │ └── README.md
│ │
│ └── [future-servers]/ # DuckDB, Python等
│
├── shared/ # 构建时基础设施(仅开发用)
│ ├── preprocessing/ # 文档处理流水线
│ ├── embedding/ # 嵌入生成脚本
│ ├── templates/ # 新服务器模板
│ └── build/ # 临时构建工件
│
├── source-documentation/ # 文档源
│ ├── mojo/manual/ # Mojo文档(MDX文件)
│ └── [其他源]/
│
└── tools/ # 自动化脚本
├── sync_documentation.sh # 同步上游仓库
├── scaffold_new_mcp.sh # 创建新的服务器结构
└── build_mcp.sh # 构建服务器数据库
关键设计原则:
/servers/{name}/ 的服务器是完全独立且可分发的/shared/ 是仅开发用(不与服务器一起打包)在三步内运行Mojo文档MCP服务器:
git clone jpotter80/mcp
cd mcp/servers/mojo-manual-mcp
pixi install
添加Mojo-Manual MCP服务器,通过mcp.json添加配置到您的VS Code设置中,以全局设置。将/absolute/path/to/mojo-manual-mcp替换为您实际的服务器路径。
{
"servers": {
"mojo-manual": {
"type": "stdio",
"command": "pixi",
"args": ["run", "serve"],
"cwd": "/absolute/path/to/mojo-manual-mcp"
}
}
}
注意:预构建的数据库已包含在存储库中。无需构建步骤即可运行服务器。
📖 详细指南:参见docs/QUICKSTART.md获取完整的设置说明。
环境变量:
MOJO_DB_PATH:索引数据库路径MAX_SERVER_URL:嵌入服务器端点(如果AUTO_START_MAX=1则自动启动)EMBED_MODEL_NAME:句子转换器模型名称AUTO_START_MAX:设置为1以自动启动MAX服务器(推荐)如果您想从头重建数据库或创建新的MCP服务器:
# 完整流水线(所有步骤)
pixi run mojo-build
# 或逐步执行
pixi run mojo-process # 处理文档
pixi run mojo-generate-embeddings # 生成向量
pixi run mojo-consolidate # 整合数据
pixi run mojo-load # 加载到DuckLake
pixi run mojo-index # 创建索引
# 1. 搭建新的服务器结构
./tools/scaffold_new_mcp.sh --name duckdb --doc-type docs --format markdown
# 2. 将文档添加到source-documentation/duckdb/docs/
# 3. 构建服务器
./tools/build_mcp.sh --mcp-name duckdb
# 4. 测试服务器
python servers/duckdb-docs-mcp/runtime/duckdb_docs_mcp_server.py
📖 开发者指南:
docs/CREATING_NEW_MCP.md - 创建新服务器当前实现:
| 服务器 | 文档源 | 格式 | 状态 |
|---|---|---|---|
| mojo-manual-mcp | Mojo手册 | MDX | ✅ 生产 |
| duckdb-docs-mcp | DuckDB文档 | MD | ✅ 生产 |
用户:"如何在Mojo中声明一个变量?" ↓
版权所有 2.0("许可证"); 除非符合许可证,否则不得使用此文件。 您可以通过以下方式获得许可证副本:
http://www.apache.org/licenses/LICENSE-2.0
除非适用法律要求或书面同意,根据许可证分发的软件按"原样"分发, 没有任何明示或暗示的保证或条件。具体许可条款规定了权限和限制。
由Modular、DuckDB和模型上下文协议社区的灵感所启发——由开源工具驱动。