返回市场
文档-mcp

文档-mcp

作者:probelabs74 星标更新:2025-10-13

项目介绍

技术文档摘要

Docs MCP Server

Probe 提供支持的灵活的模型上下文协议(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存档以加快启动速度。只有当autoUpdateInterval大于0时才会使用完整的Git克隆。

特性

  • 由Probe提供支持: 利用Probe搜索引擎实现高效且相关的结果。
  • 灵活的内容来源: 包括特定的本地目录或克隆Git存储库。
  • 预构建内容: 可选地将文档/代码内容直接打包到包中。
  • 动态配置: 通过配置文件、CLI参数或环境变量配置内容来源、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",
        "搜索文档"
      ]
    }
  }
}

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",
        "搜索Tyk API管理文档"
      ],
      "enabled": true
    }
  }
}

或者,某些客户端可能允许直接指定完整命令。您可以通过以下方式实现与示例1相同的效果:

npx -y @probelabs/docs-mcp@latest --gitUrl https://github.com/TykTechnologies/-docs --toolName search_tyk_docs --toolDescription "搜索Tyk API管理文档"

示例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": "搜索我的项目的文档。",
  "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": "搜索公司的主要代码库。",
  "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: (运行时) 指向包含要搜索内容的目录的路径。覆盖配置文件或构建到包中的includeDirgitUrl定义的内容来源。对于指向实时数据而不重新构建的服务器非常有用。
  • toolName: (构建/运行时) 服务器公开的MCP工具名称(默认:search_docs)。选择与内容相关的描述性名称。
  • toolDescription: (构建/运行时) 显示给AI助手的MCP工具描述(默认:“使用probe搜索引擎搜索文档。”)。
  • ignorePatterns: (构建/运行时) 全局模式数组。
  • enableBuildCleanup: (构建) 如果为true(默认),在构建步骤后从data目录中删除常见的二进制/媒体文件(图像、视频、存档等)和大于100KB的文件。设置为false以禁用此清理。
    • 如果在构建时使用includeDir:匹配这些模式的文件在复制到data时会被排除。也会尊重.gitignore规则。
    • 如果在运行时使用gitUrldataDirdata目录内匹配这些模式的文件将被搜索索引器忽略。

优先级:

  1. 运行时配置(最高): CLI参数(--dataDir--gitUrl等)和环境变量(DATA_DIRGIT_URL等)覆盖所有其他设置。CLI参数优先于环境变量。
  2. 构建时配置: docs-mcp.config.json中的设置(includeDirgitUrltoolName等)定义了npm run build期间使用的默认值,也作为运行时默认值,除非被覆盖。
  3. 默认值(最低): 如果没有提供配置,则使用内部默认值(例如,toolName: 'search_docs'autoUpdateInterval: 5)。

注意:如果在同一配置源(例如,都在配置文件中,或都作为CLI参数)中同时提供了includeDirgitUrl,则gitUrl优先。

创建自己的预构建MCP服务器

您可以使用此项目作为模板来创建并发布自己的npm包,其中包含预构建的文档或代码。这为用户提供了一种零配置体验(类似于上面的示例2)。

  1. 分叉/克隆此存储库: 从该项目的代码开始。
  2. 配置docs-mcp.config.json 定义指向您内容来源的includeDirgitUrl。设置默认的toolNametoolDescription
  3. 更新package.json 更改name(例如,@my-org/my-docs-mcp)、versiondescription等。
  4. 构建: 运行npm run build。这将克隆/复制您的内容到data目录,并准备好包。
  5. 发布: 运行npm publish(您需要配置npm身份验证)。

现在,用户可以轻松运行您的特定文档服务器:npx @my-org/my-docs-mcp@latest

(之前的“运行”,“运行时的动态配置”和“环境变量”部分已被移除,因为现在的主要文档方法是使用带有参数的客户端配置中的npx。)

与AI助手一起使用

此MCP服务器通过模型上下文协议向连接的AI助手公开一个搜索工具。工具的名称和描述是可配置的(参见配置部分)。它搜索当前活动的data目录内的内容(由构建设置、配置文件、CLI参数或环境变量确定)。

工具参数:

  • query: 描述要搜索内容的自然语言查询或关键词(例如,“如何配置网关”,“数据库连接示例”,“用户认证”)。服务器使用Probe的搜索功能找到相关内容。(必需)
  • page: 当处理许多匹配项时结果页码。如果省略,默认为1。(可选)

工具调用示例(使用来自用法示例1的search_tyk_docs):

{
  "tool_name": "search_tyk_docs",
  "arguments": {
    "query": "网关速率限制",
    "page": 1 // 请求第一页
  }
}

工具调用示例(使用@tyk/docs-mcp包中的工具):

假设预构建包@tyk/docs-mcp将其工具名称定义为search_tyk_official_docs

{
  "tool_name": "search_tyk_official_docs",
  "arguments": {
    "query": "仪表盘API访问",
    "page": 2 // 请求第二页
  }
}

(之前的“作为npm包发布”部分已被上面的“创建自己的预构建MCP服务器”部分取代。)

第三方集成

通过Smithery安装

要通过Smithery自动安装Docs MCP Server用于Claude Desktop:

npx -y @smithery/cli install @probelabs/docs-mcp --client claude

smithery badge

社区列表

<a href="https://glama.ai/mcp/servers/@probelabs/docs-mcp"> <img width="380" height="200" src="https://gips2.baidu.com/it/u=1574567143,1040255615&fm=3081&app=3081&f=PNG?w=760&h=400" alt="Docs Server MCP服务器" /> </a>

MseeP.ai安全评估徽章

使用GitHub Actions进行自动化NPM发布

此项目包括一个可重用的GitHub Actions工作流,使得将MCP服务器发布到NPM变得极其简单。您可以在任何项目中使用此工作流,在推送git标签时自动构建和发布您的MCP服务器。

使用可重用发布工作流

要在您自己的项目中使用此自动化发布系统,请创建一个单个文件.github/workflows/release.yml

name: 发布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: '您的MCP服务器描述'
      include-folders: 'src,data,bin'  # 要包含在包中的文件夹
      include-files: '*.json,*.md'     # 文件模式
    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-descriptionMCP服务器包描述
entry-pointsrc/index.js主入口文件路径
include-folderssrc,data,bin要包含的文件夹的逗号分隔列表
include-files*.json,*.md,LICENSE要包含的文件模式的逗号分隔列表
dependencies{}附加依赖项作为JSON字符串
build-command-在发布前运行的构建命令
node-version18使用的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 }}

先决条件

  1. 在您的GitHub存储库中添加NPM_TOKEN秘密(设置→秘密→操作)
  2. 确保您拥有组织/范围的npm发布权限

工作流自动:

  • 从git标签提取版本(例如,v1.0.01.0.0
  • 生成包含MCP依赖项的完整package.json
  • 运行可选的构建命令
  • 以公共访问权限发布到NPM

许可证

MIT