使用说明

项目简介

Package Documentation Fetcher (DocsFetcher) MCP 服务器是一个专门为大型语言模型(LLM)设计的后端应用。它遵循 Model Context Protocol (MCP),旨在为 LLM 客户端提供便捷的软件包文档检索和分析能力。通过 DocsFetcher,LLM 可以在无需 API 密钥的情况下,直接访问和理解来自多种编程语言生态系统的软件包文档,从而更好地服务于代码理解、生成和调试等任务。

主要功能点

  • 多语言支持: 支持 JavaScript, Python, Java, .NET, Ruby, PHP, Rust, Go, Swift 等多种主流编程语言的软件包文档抓取。
  • 灵活的文档来源: 可以通过软件包名称或直接 URL 获取文档,适应不同的使用场景。
  • 深度文档挖掘: 能够爬取文档站点,提取包括 README、API 文档、代码示例和仓库信息在内的全面信息。
  • 结构化数据: 为 LLM 提供结构化的文档数据,方便 LLM 进行内容摘要和理解。
  • 专用 Prompt 模板: 内置了用于文档分析的 Prompt 模板,如文档摘要和错误解释,提升 LLM 在文档处理方面的能力。
  • 免 API 密钥: 无需配置任何 API 密钥,即可与 Claude Desktop 和 Cursor IDE 等 LLM 客户端原生集成。

安装步骤

  1. 克隆仓库
    git clone https://github.com/cdugo/package-documentation-mcp
    cd package-documentation-mcp
  2. 安装依赖并构建
    npm install
    npm run build

服务器配置

要将 DocsFetcher MCP 服务器配置到 MCP 客户端(例如 Claude Desktop 或 Cursor IDE),您需要提供以下配置信息。这些配置通常在客户端的设置中进行添加。

针对 Claude Desktop 的配置 (JSON 格式):

{
  "mcpServers": {
    "docsFetcher": {
      "command": "npx",
      "args": [
        "-y",
        "@smithery/cli@latest",
        "run",
        "@cdugo/mcp-get-docs",
        "--config",
        "'{}'"
      ]
    }
  }
}

配置参数说明:

  • 'server name': 'docsFetcher' (服务器名称,客户端内唯一标识即可)
  • 'command': 'npx' (启动命令,这里使用 npx 执行 npm 包)
  • 'args': 启动参数,包括:
    • '-y': 'npx' 参数,自动确认安装依赖包。
    • '@smithery/cli@latest': 使用 Smithery CLI 工具的最新版本。
    • 'run': Smithery CLI 命令,运行指定的 Smithery 服务。
    • '@cdugo/mcp-get-docs': 指定要运行的 Smithery 服务为 '@cdugo/mcp-get-docs',即 DocsFetcher MCP 服务器。
    • '--config': 配置参数传递标志。
    • ''{}'': 传递一个空的 JSON 配置对象作为参数。

针对 Cursor IDE 的配置 (JSON 格式):

{
    "Name": "docsFetcher",
    "Command": "npx -y @smithery/cli@latest run @cdugo/mcp-get-docs --config '{}'"
}

配置参数说明:

  • 'Name': 'docsFetcher' (服务器名称,Cursor IDE 内唯一标识即可)
  • 'Command': 'npx -y @smithery/cli@latest run @cdugo/mcp-get-docs --config '{}'' (完整的启动命令,与 Claude Desktop 配置中的 'command' 和 'args' 组合效果相同)

注意: 以上配置使用了 'npx' 和 '@smithery/cli' 来运行服务器。如果您希望直接本地运行,可以参考仓库 README 中的 "Running Locally" 部分,使用 'npm start' 命令,并相应调整客户端配置中的 'command' 和 'args'。

基本使用方法

配置完成后,在支持 MCP 协议的 LLM 客户端中,您可以使用以下方式与 DocsFetcher 服务器交互:

1. 使用工具 (Tools)

工具用于执行特定的文档抓取任务。DocsFetcher 提供了以下工具:

  • 'fetch-url-docs': 从指定的 URL 获取文档。

    @fetch-url-docs with url='文档URL'

    例如:'@fetch-url-docs with url='https://expressjs.com/en/api.html''

  • 'fetch-package-docs': 根据软件包名称和可选的语言获取文档。

    @fetch-package-docs with packageName='软件包名' language='语言'

    例如:'@fetch-package-docs with packageName='lodash' language='javascript''

  • 'fetch-library-docs': 智能工具,可以接受软件包名称或 URL,自动判断并获取文档。

    @fetch-library-docs with library='软件包名或文档URL' language='语言(当library为软件包名时可选)'

    例如:'@fetch-library-docs with library='react'' 或 '@fetch-library-docs with library='https://reactjs.org/docs/getting-started.html''

  • 'fetch-multilingual-docs': 获取指定软件包在多种编程语言生态系统中的文档。

    @fetch-multilingual-docs with packageName='软件包名' languages=['语言1', '语言2', ...]

    例如:'@fetch-multilingual-docs with packageName='http' languages=['javascript', 'python', 'rust']'

2. 使用 Prompt 模板 (Prompts)

Prompt 模板用于指示 LLM 如何处理和分析抓取到的文档。DocsFetcher 提供了以下 Prompt 模板:

  • 'summarize-library-docs': 总结软件包文档。

    @summarize-library-docs with libraryName='软件包名'

    例如:'@summarize-library-docs with libraryName='express''

  • 'explain-dependency-error': 解释依赖错误,结合软件包文档提供错误原因和解决方案。

    @explain-dependency-error with packageName='软件包名'

    例如:'@explain-dependency-error with packageName='dotenv''

使用示例:

在 LLM 客户端的对话框中,您可以直接输入指令来调用工具或 Prompt 模板。例如,要获取并总结 Express.js 的文档,您可以输入:

@fetch-library-docs with library='express'
@summarize-library-docs with libraryName='express'

或者,您可以组合使用工具和 Prompt,先使用工具获取文档,再使用 Prompt 进行分析:

@fetch-package-docs with packageName='requests' language='python'
@explain-dependency-error with packageName='requests'

请根据您的具体需求选择合适的工具和 Prompt 模板,并参考示例进行使用。

信息

分类

开发者工具