代码文档同步服务

GitBook Model Context Provider (MCP) Server是一个基于Python的服务,用于在代码库和GitBook文档之间建立桥梁,提供实时代码上下文和洞察,以增强技术文档。

  • by hume-ai
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 hume-ai/gitbook-mcp

使用说明

GitBook模型上下文提供程序(MCP)服务器

这个基于Python的MCP服务器在您的代码库和GitBook文档之间架起了一座桥梁,提供实时上下文和代码见解,以增强您的技术文档。

特性

  • 编码索引:自动索引Python代码库,提取函数、类、模块、文档字符串和关系
  • 文档解析:分析您的markdown文档文件以查找代码引用
  • API终点:提供RESTful端点用于搜索和检索代码上下文
  • GitBook集成:通过API将代码信息同步到GitBook
  • 实时更新:定期重新索引代码库以保持信息的最新性
  • 关系跟踪:映射代码实体之间的依赖关系
  • Webhook 支持:为交互式文档处理GitBook webhooks

安装

  1. 克隆此存储库或将MCP服务器代码保存到您的项目中
  2. 安装所需的依赖项:
pip install flask flask-cors requests markdown beautifulsoup4

用法

基本用法

通过将MCP服务器指向您的代码库来启动它:

python gitbook_mcp.py --code-path /path/to/your/codebase

包括文件

要为文档文件建立索引,请执行以下操作:

python gitbook_mcp.py --code-path /path/to/your/codebase --docs-path /path/to/your/docs

完整架构

python gitbook_mcp.py \
  --code-path /path/to/your/codebase \
  --docs-path /path/to/your/docs \
  --port 5000 \
  --gitbook-space your-gitbook-space-id \
  --gitbook-token your-gitbook-api-token

API终点

健康检查

GET /health

返回服务器状态和版本信息。

搜索代码和文档

GET /search?q=query&type=entity_type

搜索与查询匹配的代码实体和文档。

参数:

  • q:搜索查询(必填)
  • type:按实体类型筛选(可选)-“函数”、“类”或“模块”

获取实体详细信息

GET /entity/{entity_name}

获取有关特定代码实体及其关系的详细信息。

同步到GitBook

POST /sync

手动触发代码信息到GitBook的同步。

GitBook 网关

POST /webhook

GitBook webhooks接收事件的端点。

与GitBook集成

在GitBook中设置

  1. 转到您的GitBook空间设置
  2. 导航到“集成”>“自定义集成”
  3. 使用以下设置添加新集成:
    • 名称:代码上下文提供程序
    • 网钩 URL : http://your-server:5000/webhook
    • 事件:选择页面更新和评论
  4. 在GitBook设置中生成API令牌
  5. 使用GitBook空间ID和令牌启动MCP服务器

在文档中使用

设置后,您可以:

  1. GitBook文档中的参考代码实体
  2. 插入具有自动更新功能的实时代码片段
  3. 添加打开源文件的“代码视图”链接
  4. 启用带有代码建议的上下文注释

高级配置

创建配置文件 mcp_config.json:

{
  "code_path": "/path/to/your/codebase",
  "docs_path": "/path/to/your/docs",
  "port": 5000,
  "index_interval": 300,
  "exclude_patterns": ["__pycache__", "*.pyc", ".*", "venv", "env"],
  "gitbook": {
    "space_id": "your-gitbook-space-id",
    "api_token": "your-gitbook-api-token",
    "sync_modules": true,
    "sync_classes": true,
    "sync_functions": true
  }
}

然后使用以下命令启动服务器:

python gitbook_mcp.py --config mcp_config.json

贡献

欢迎投稿!请随时提交拉取请求。

许可证

此项目根据MIT许可证获得许可-有关详细信息,请参阅许可证文件。