README
🚀 Docs MCP Server
本项目提供了一个灵活的模型上下文协议(MCP)服务器,由 Probe 提供支持,旨在让人工智能助手能够搜索文档或代码库。只需指定一个 Git 仓库或文件夹,你就可以与代码或文档进行对话。
npx -y @buger/docs-mcp@latest --gitUrl https://github.com/buger/probe
🚀 快速开始
你可以通过以下命令快速启动服务:
npx -y @buger/docs-mcp@latest --gitUrl https://github.com/buger/probe
✨ 主要特性
- 由 Probe 提供支持:利用 Probe 搜索引擎,提供高效且相关的搜索结果。
- 灵活的内容源:可以指定特定的本地目录或克隆 Git 仓库。
- 预构建内容:可选择将文档或代码内容直接打包到软件包中。
- 动态配置:可通过配置文件、命令行参数或环境变量来配置内容源、Git 设置和 MCP 工具细节。
- 自动 Git 更新:可按配置的时间间隔自动从 Git 仓库拉取更改,保持内容新鲜。
- 可定制的 MCP 工具:可定义向 AI 助手公开的搜索工具的名称和描述。
- AI 集成:可与支持模型上下文协议(MCP)的 AI 助手无缝集成。
📦 安装指南
通过 Smithery 安装
要通过 Smithery 自动为 Claude Desktop 安装 Docs MCP Server,请运行以下命令:
npx -y @smithery/cli install @buger/docs-mcp --client claude
💻 使用示例
基础用法
与任何 GitHub 仓库进行对话
将服务器指向公共或私有 Git 仓库,即可对其内容进行自然语言查询。
npx -y @buger/docs-mcp@latest --gitUrl https://github.com/buger/probe
搜索你的文档
将项目文档(来自本地目录或 Git)集成到服务器中,方便进行搜索。
{
"mcpServers": {
"tyk-docs-search": {
"command": "npx",
"args": [
"-y",
"@buger/docs-mcp@latest",
"--gitUrl",
"https://github.com/TykTechnologies/tyk-docs",
"--toolName",
"search_tyk_docs",
"--toolDescription",
"Search Tyk API Management Documentation"
],
"enabled": true
}
}
}
高级用法
创建自定义 MCP 服务器
使用本项目作为模板,创建针对特定文档集甚至代码库的官方 MCP 服务器。
{
"mcpServers": {
"tyk-official-docs": {
"command": "npx",
"args": [
"-y",
"@tyk-technologies/docs-mcp@latest"
],
"enabled": true
}
}
}
📚 详细文档
配置
在根目录中创建 docs-mcp.config.json 文件,定义构建和运行时使用的 默认 内容源和 MCP 工具细节(除非被命令行参数或环境变量覆盖)。
示例 1:使用本地目录
{
"includeDir": "/Users/username/projects/my-project/docs",
"toolName": "search_my_project_docs",
"toolDescription": "Search the documentation for My Project.",
"ignorePatterns": [
"node_modules",
".git",
"build",
"*.log"
]
}
示例 2:使用 Git 仓库
{
"gitUrl": "https://github.com/your-org/your-codebase.git",
"gitRef": "develop",
"autoUpdateInterval": 15,
"toolName": "search_codebase",
"toolDescription": "Search the main company codebase.",
"ignorePatterns": [
"*.test.js",
"dist/",
"__snapshots__"
]
}
配置选项
| 属性 | 详情 |
|------|------|
| includeDir | (构建/运行时) 本地目录的绝对路径,其内容将在构建时复制到 data 目录,或者在未指定 dataDir 时直接在运行时使用。可与 gitUrl 二选一。 |
| gitUrl | (构建/运行时) Git 仓库的 URL。可与 includeDir 二选一。
- 如果 autoUpdateInterval 为 0(默认值),服务器将尝试直接下载 .tar.gz 存档(目前假设为 GitHub URL 结构:https://github.com/{owner}/{repo}/archive/{ref}.tar.gz),这样启动速度更快,但不支持更新。
- 如果 autoUpdateInterval > 0,服务器将执行 git clone 并启用定期更新。 |
| gitRef | (构建/运行时) 从 gitUrl 使用的分支、标签或提交哈希(默认值:main),用于下载 tarball 和 Git 克隆/拉取操作。 |
| autoUpdateInterval | (运行时) 自动检查 Git 更新的时间间隔(分钟,默认值:0,表示禁用)。将此值设置为大于 0 可启用 Git 克隆和定期 git pull 操作,需要系统路径中可使用 git 命令。 |
| dataDir | (运行时) 包含要搜索内容的目录路径,在运行时覆盖从配置文件中定义的 includeDir 或 gitUrl 或打包到软件包中的内容,可用于在不重新构建的情况下将服务器指向实时数据。 |
| toolName | (构建/运行时) 服务器公开的 MCP 工具的名称(默认值:search_docs),应选择与内容相关的描述性名称。 |
| toolDescription | (构建/运行时) 向 AI 助手显示的 MCP 工具的描述(默认值:"Search documentation using the probe search engine.")。 |
| ignorePatterns | (构建/运行时) 全局模式数组。 |
| enableBuildCleanup | (构建) 如果为 true(默认值),在构建步骤后从 data 目录中删除常见的二进制/媒体文件(图像、视频、存档等)和大于 100KB 的文件。设置为 false 可禁用此清理操作。
- 如果在构建时使用 includeDir:复制到 data 时将排除匹配这些模式的文件,同时也会遵循 .gitignore 规则。
- 如果在运行时使用 gitUrl 或 dataDir:搜索索引器将忽略 data 目录中匹配这些模式的文件。 |
优先级
- 运行时配置(最高):命令行参数(
--dataDir、--gitUrl等)和环境变量(DATA_DIR、GIT_URL等)将覆盖所有其他设置,命令行参数优先于环境变量。 - 构建时配置:
docs-mcp.config.json中的设置(includeDir、gitUrl、toolName等)定义了npm run build期间使用的默认值,并且如果未被覆盖,也将作为运行时的默认值。 - 默认值(最低):如果未提供任何配置,则使用内部默认值(例如,
toolName: 'search_docs',autoUpdateInterval: 5)。
注意:如果在 同一 配置源中同时提供了 includeDir 和 gitUrl(例如,都在配置文件中,或都作为命令行参数),gitUrl 将优先使用。
创建自己的预构建 MCP 服务器
你可以使用本项目作为模板,创建并发布自己的 npm 软件包,其中预构建了文档或代码,为用户提供零配置体验(如上述示例 2)。
- 分叉/克隆此仓库:从本项目的代码开始。
- 配置
docs-mcp.config.json:定义指向内容源的includeDir或gitUrl,设置默认的toolName和toolDescription。 - 更新
package.json:更改name(例如,@my-org/my-docs-mcp)、version、description等。 - 构建:运行
npm run build,这将把你的内容克隆/复制到data目录,并使软件包准备就绪。 - 发布:运行
npm publish(需要配置 npm 身份验证)。
现在,用户可以轻松运行你特定的文档服务器:npx @my-org/my-docs-mcp@latest。
与 AI 助手一起使用
此 MCP 服务器通过模型上下文协议向连接的 AI 助手公开一个搜索工具,工具的名称和描述可配置(请参阅配置部分),它将搜索当前活动的 data 目录中的内容(由构建设置、配置文件、命令行参数或环境变量确定)。
工具参数
query:自然语言查询或描述要搜索内容的关键字(例如,"how to configure the gateway"、"database connection example"、"user authentication"),服务器使用 Probe 的搜索功能查找相关内容(必需)。page:处理多个匹配结果时的页码,省略时默认为 1(可选)。
工具调用示例
{
"tool_name": "search_tyk_docs",
"arguments": {
"query": "gateway rate limiting",
"page": 1 // 请求第一页
}
}
{
"tool_name": "search_tyk_official_docs",
"arguments": {
"query": "dashboard api access",
"page": 2 // 请求第二页
}
}
📄 许可证
本项目采用 MIT 许可证。
Scan to join WeChat group