使用说明
MCP服务器文档
一个由……驱动的灵活模型上下文协议(MCP)服务器 探针 这使得任何文档或代码库都能通过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 存档以加快启动速度。仅在以下情况下才使用完整的Git克隆: autoUpdateInterval 大于0。
特点/特性
- 由Probe提供支持: 利用/发挥……的优势 探针 用于获取高效且相关结果的搜索引擎。
- 灵活的内容来源: 包含一个特定的本地目录或克隆一个Git仓库。
- 预构建内容: 可选地,将文档/代码内容直接打包进软件包中。
- 动态配置: 通过配置文件、命令行参数或环境变量来配置内容源、Git 设置以及 MCP 工具的详细信息。
- 自动Git更新: 通过在可配置的时间间隔内自动从Git仓库拉取更改,保持内容的新鲜度。
- 可定制的MCP工具: 为AI助手所使用的搜索工具定义名称和描述。
- 人工智能集成: 无缝集成支持模型上下文协议(MCP)的人工智能助手。
安装
快速入门Claude桌面版
添加到您的Claude桌面配置文件中(~/Library/Application Support/Claude/claude_desktop_config.json (在 macOS 上):
{
"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文档)
这个配置告诉客户端运行最新的 @probelabs/docs-mcp 使用包(或“使用封装”) npx,动态地将其指向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), 配置变得更加简单,因为内容源和工具详情都已内置于该包中。这 -y 建议仍然适用于(或:建议继续使用) npx。
{
"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工具详细信息(除非被CLI参数或环境变量覆盖)。
示例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未指定。使用此或(OR)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工具描述(默认:“使用探针搜索引擎搜索文档。”)。ignorePatterns: (构建/运行时) 一个包含通配符模式的数组。enableBuildCleanup: (构建) 如果true(默认),移除常见的二进制/媒体文件(图片、视频、压缩包等)以及大于100KB的文件data构建步骤后的目录。设置为false要禁用此清理操作。- 如果使用
includeDir在构建过程中:当复制时,符合这些模式的文件将被排除data。.gitignore规则也得到了遵守。 - 如果使用
gitUrl或者dataDir在运行时:匹配这些模式的文件在data搜索索引器会忽略目录。
- 如果使用
优先级:
- 运行时配置(最高): CLI 参数 (
--dataDir,--gitUrl等)和环境变量(DATA_DIR,GIT_URL等(参数)将覆盖所有其他设置。命令行参数(CLI arguments)优先于环境变量。 - 构建时配置: 设置在
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。
(之前的“运行”、“运行时动态配置”和“环境变量”部分已被删除,因为 npx 在客户端配置中使用带参数的方法现已成为主要的文档化方法。)
与AI助手配合使用
这个MCP服务器通过模型上下文协议向连接的AI助手暴露一个搜索工具。该工具的名称和描述是可配置的(见配置部分)。它搜索当前活动内容中的 data 目录(由构建设置、配置文件、命令行参数或环境变量确定)。
工具参数:
query一个自然语言查询或描述搜索内容的关键词(例如,“如何配置网关”,“数据库连接示例”,“用户认证”)。服务器使用Probe的搜索功能来查找相关内容。(必填)page在处理多个匹配项时,用于指定结果的页码。如果省略,则默认为1。(可选)
示例工具调用(使用 search_tyk_docs 来自使用示例1):
{
"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进行安装
通过(某种方式)自动为Claude Desktop安装Docs MCP服务器 “Smithery”可以翻译为“铁匠铺”或“锻造工坊”。这个词来源于“smith”,意指从事铁匠工作的人或铁匠的工作场所:
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仓库中设置密钥(设置 → 密钥 → 操作) - 确保您在您的组织/范围内有npm发布权限
该工作流程自动:
- 从 git 标签中提取版本(例如。,
v1.0.0→1.0.0) - 生成一个完整的
package.json带有MCP依赖项 - 执行可选的构建命令
- 发布到NPM,公开访问
许可证
麻省理工学院(MIT)