使用说明
项目简介
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 客户端原生集成。
安装步骤
- 克隆仓库
git clone https://github.com/cdugo/package-documentation-mcp cd package-documentation-mcp - 安装依赖并构建
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 模板,并参考示例进行使用。
信息
分类
开发者工具