关于 Docs MCP Server
Docs MCP Server 是基于 Probe 搜索引擎的 MCP 服务,可将文档或代码库转为 AI 助手可检索的内容。它既可指向本地目录,也可指向 Git 仓库,并支持构建自定义的预置服务包。
主要功能
- 01基于 Probe 搜索引擎的检索
- 02支持本地目录与 Git 仓库作为内容源
- 03可在构建时预置内容到包中
- 04运行时可配置内容源与工具名称
- 05可通过 autoUpdateInterval 定期拉取 Git 更新
适用场景
- 01通过自然语言查询 GitHub 仓库内容
- 02为项目文档提供搜索能力
- 03基于本项目模板构建专用文档 MCP 服务
MCP 相关
该项目是 MCP 服务,向 MCP 客户端暴露一个可自定义名称和描述的搜索工具,参数包括 query 和 page。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
Docs MCP Server
一个灵活的模型上下文协议(MCP)服务,由 Probe 提供支持,可让 AI 助手搜索任何文档或代码库。
只需指定一个 Git 仓库或文件夹,即可与代码或文档对话:
npx -y @probelabs/docs-mcp@latest --gitUrl https://github.com/probelabs/probe
使用场景:
- 与任意 GitHub 仓库对话: 将服务指向一个公开或私有的 Git 仓库,即可使用自然语言查询其中的内容。
- 搜索文档: 集成项目文档(来自本地目录或 Git),方便搜索。
- 构建自定义 MCP 服务: 将此项目用作模板,创建适用于特定文档集乃至代码库的专属 MCP 服务。
内容源(文档或代码)可以在 npm run build 步骤中预先构建到软件包中,也可以在运行时通过本地目录或 Git 仓库进行动态配置。默认情况下,使用 gitUrl 且未启用自动更新时,服务会下载 .tar.gz 归档,以加快启动速度。只有在 autoUpdateInterval 大于 0 时,才会完整克隆 Git 仓库。
功能
- 由 Probe 提供支持: 利用 Probe 搜索引擎,高效地提供相关结果。
- 灵活的内容源: 指定本地目录或克隆 Git 仓库。
- 预先构建内容: 可选择将文档/代码内容直接打包到软件包中。
- 动态配置: 通过配置文件、命令行参数或环境变量配置内容源、Git 设置和 MCP 工具详情。
- 自动更新 Git 内容: 按可配置的间隔自动从 Git 仓库拉取更改,保持内容最新。
- 可自定义的 MCP 工具: 定义向 AI 助手提供的搜索工具名称和描述。
- AI 集成: 可与支持模型上下文协议(MCP)的 AI 助手无缝集成。
安装
使用 Claude Desktop 快速开始
添加到 Claude Desktop 配置文件(macOS 上的 ~/Library/Application Support/Claude/claude_desktop_config.json):
{
"mcpServers": {
"docs-search": {
"command": "npx",
"args": [
"-y",
"@probelabs/docs-mcp@latest",
"--gitUrl",
"https://github.com/your-org/your-repo",
"--toolName",
"search_docs",
"--toolDescription",
"Search documentation"
]
}
}
}
MCP 客户端集成
你可以配置 MCP 客户端,通过 npx 启动此服务。以下是客户端配置示例(具体语法可能因客户端而异):
示例 1:动态搜索 Git 仓库(Tyk 文档)
此配置指示客户端使用 npx 运行最新的 @probelabs/docs-mcp 软件包,并将 Tyk 文档仓库设为动态内容源。-y 参数会自动确认 npx 安装提示。--toolName 和 --toolDescription 参数用于自定义搜索工具在 AI 助手中的显示方式。
{
"mcpServers": {
"tyk-docs-search": {
"command": "npx",
"args": [
"-y",
"@probelabs/docs-mcp@latest",
"--gitUrl",
"https://github.com/TykTechnologies/tyk-docs",
"--toolName",
"search_tyk_docs",
"--toolDescription",
"Search Tyk API Management Documentation"
],
"enabled": true
}
}
}
另外,有些客户端可能允许直接指定完整命令。使用以下配置即可实现与示例 1 相同的效果:
npx -y @probelabs/docs-mcp@latest --gitUrl https://github.com/TykTechnologies/tyk-docs --toolName search_tyk_docs --toolDescription "Search Tyk API Management Documentation"
示例 2:使用预先构建的品牌化 MCP 服务(例如 Tyk 软件包)
如果团队发布了包含特定文档的预构建软件包(例如 @tyk-technologies/docs-mcp),则内容源和工具详情已内置于软件包中,配置会更简单。使用 npx 时仍建议添加 -y 参数。
{
"mcpServers": {
"tyk-official-docs": {
"command": "npx",
"args": [
"-y",
"@tyk-technologies/docs-mcp@latest"
],
"enabled": true
}
}
}
此方法非常适合分发适用于官方文档或代码库的标准化搜索体验。请参阅下文的“创建你自己的预构建 MCP 服务”部分。
以下是 Tyk 团队构建其文档 MCP 服务的示例:https://github.com/TykTechnologies/docs-mcp。
配置
在根目录中创建 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 clone/pull。autoUpdateInterval:(运行时) 自动检查 Git 更新的间隔时间,单位为分钟(默认值:0,即禁用)。设置为 > 0 的值可启用 Git 克隆和定期执行git pull操作。要求系统路径中可用git命令。dataDir:(运行时) 运行时要搜索的内容所在目录的路径。它会覆盖配置文件中指定或内置于软件包中的includeDir或gitUrl来源内容。适用于将服务指向实时数据,而无需重新构建。toolName:(构建时/运行时) 服务公开的 MCP 工具名称(默认值:search_docs)。请选择与内容相关的描述性名称。toolDescription:(构建时/运行时) 向 AI 助手显示的 MCP 工具描述(默认值:"使用 probe 搜索引擎搜索文档。")。ignorePatterns:(构建时/运行时) glob 模式数组。enableBuildCleanup:(构建时) 如果为true(默认值),则在构建步骤后从data目录中移除常见的二进制/媒体文件(图像、视频、归档文件等)以及大于 100KB 的文件。设置为false可禁用此清理。- 如果在构建期间使用
includeDir:复制到data时会排除与这些模式匹配的文件。也会遵循.gitignore规则。 - 如果在运行时使用
gitUrl或dataDir:data目录中与这些模式匹配的文件会被搜索索引器忽略。
- 如果在构建期间使用
优先级:
- 运行时配置(最高): CLI 参数(
--dataDir、--gitUrl等)和环境变量(DATA_DIR、GIT_URL等)会覆盖所有其他设置。CLI 参数的优先级高于环境变量。 - 构建时配置:
docs-mcp.config.json中的设置(includeDir、gitUrl、toolName等)定义了npm run build使用的默认值,也作为未被覆盖时的运行时默认值。 - 默认值(最低): 如果未提供配置,则使用内部默认值(例如,
toolName: 'search_docs'、autoUpdateInterval: 5)。
注意:如果在同一配置来源中(例如,同时在配置文件中或同时作为 CLI 参数)提供了 includeDir 和 gitUrl,则优先使用 gitUrl。
创建自己的预构建 MCP 服务
你可以将此项目用作模板,创建并发布自己的 npm 包,并将文档或代码预先构建到包中。这能为用户提供零配置体验(如上文示例 2)。
- Fork/Clone 此仓库: 从此项目的代码开始。
- 配置
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。
(之前的“运行”“运行时动态配置”和“环境变量”部分已移除,因为在客户端配置中使用带参数的 npx 是现在主要记录的方式。)
与 AI 助手配合使用
此 MCP 服务通过 Model Context Protocol 向连接的 AI 助手提供搜索工具。工具的名称和描述均可配置(请参阅“配置”部分)。它会搜索当前启用的 data 目录中的内容(由构建设置、配置文件、CLI 参数或环境变量决定)。
工具参数:
query:描述要搜索内容的自然语言查询或关键词(例如,“如何配置网关”“数据库连接示例”“用户身份验证”)。服务会使用 Probe 的搜索功能查找相关内容。(必填)page:匹配结果较多时使用的结果页码。省略时默认为 1。(可选)
工具调用示例(使用示例 1 中的 search_tyk_docs):
{
"tool_name": "search_tyk_docs",
"arguments": {
"query": "gateway rate limiting",
"page": 1 // Requesting the first page
}
}
工具调用示例(使用 @tyk/docs-mcp 包中的工具):
假设预构建包 @tyk/docs-mcp 将其工具名称定义为 search_tyk_official_docs:
{
"tool_name": "search_tyk_official_docs",
"arguments": {
"query": "dashboard api access",
"page": 2 // Requesting the second page
}
}
(之前的“作为 npm 包发布”部分已由上文的“创建自己的预构建 MCP 服务”部分取代。)
第三方集成
通过 Smithery 安装
通过 Smithery 为 Claude Desktop 自动安装 Docs MCP Server:
npx -y @smithery/cli install @probelabs/docs-mcp --client claude
社区列表
使用 GitHub Actions 自动发布 NPM
此项目包含一个可复用的 GitHub Actions 工作流,可让 MCP 服务发布到 NPM 变得极其简单。你可以在任何项目中使用此工作流,在推送 git 标签时自动构建并发布 MCP 服务。
使用可复用的发布工作流
要在自己的项目中使用此自动发布系统,请创建一个文件 .github/workflows/release.yml:
name: Release MCP
on:
push:
tags:
- 'v*'
jobs:
release:
uses: probelabs/docs-mcp/.github/workflows/release-mcp.yml@main
with:
package-name: '@yourorg/your-mcp-server'
package-description: 'Your MCP Server Description'
include-folders: 'src,data,bin' # Folders to include in the package
include-files: '*.json,*.md' # File patterns to include
secrets:
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
然后,只需创建一个 git 标签即可触发发布:
git tag v1.0.0
git push origin v1.0.0
工作流输入参数
| 参数 | 必填 | 默认值 | 描述 |
|---|---|---|---|
package-name | 是 | - | NPM 包名称(例如:@org/my-mcp) |
package-description | 否 | MCP Server | 包描述 |
entry-point | 否 | src/index.js | 主入口文件路径 |
include-folders | 否 | src,data,bin | 要包含的文件夹列表,以逗号分隔 |
include-files | 否 | *.json,*.md,LICENSE | 要包含的文件模式列表,以逗号分隔 |
dependencies | 否 | {} | JSON 字符串格式的其他依赖项 |
build-command | 否 | - | 发布前要运行的构建命令 |
node-version | 否 | 18 | 要使用的 Node.js 版本 |
配置示例
最简配置
jobs:
release:
uses: probelabs/docs-mcp/.github/workflows/release-mcp.yml@main
with:
package-name: '@myorg/simple-mcp'
secrets:
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
使用自定义依赖项
jobs:
release:
uses: probelabs/docs-mcp/.github/workflows/release-mcp.yml@main
with:
package-name: '@myorg/custom-mcp'
dependencies: '{"lodash": "^4.17.21", "dotenv": "^16.0.0"}'
secrets:
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
包含构建步骤
jobs:
release:
uses: probelabs/docs-mcp/.github/workflows/release-mcp.yml@main
with:
package-name: '@myorg/built-mcp'
build-command: 'npm run build && npm run prepare-data'
include-folders: 'dist,assets'
secrets:
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
前置条件
- 将
NPM_TOKEN密钥添加到你的 GitHub 仓库中(Settings → Secrets → Actions) - 确保你拥有组织/作用域的 npm 发布权限
此工作流会自动:
- 从 git 标签中提取版本(例如:
v1.0.0→1.0.0) - 生成包含 MCP 依赖项的完整
package.json - 运行可选的构建命令
- 以公开访问权限发布到 NPM
许可证
MIT
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。
