MCP Package Docs Server 精选
促进大型语言模型高效访问和获取 Go、Python 和 NPM 包的结构化文档,通过多语言支持和性能优化来增强软件开发。
Tools
search_package_docs
Search for symbols or content within package documentation
describe_go_package
Get a brief description of a Go package
describe_python_package
Get a brief description of a Python package
describe_npm_package
Get a brief description of an NPM package
get_npm_package_doc
Get full documentation for an NPM package
lookup_go_doc
[DEPRECATED] Use describe_go_package instead. Get a brief description of a Go package
lookup_python_doc
[DEPRECATED] Use describe_python_package instead. Get a brief description of a Python package
lookup_npm_doc
[DEPRECATED] Use describe_npm_package instead. Get a brief description of an NPM package
get_hover
Get hover information for a position in a document using Language Server Protocol
get_completions
Get completion suggestions for a position in a document using Language Server Protocol
get_diagnostics
Get diagnostic information for a document using Language Server Protocol
README
Package Documentation MCP Server
一个 MCP (模型上下文协议) 服务器,为 LLM 提供跨多种编程语言的包文档和语言服务器协议 (LSP) 功能的高效访问。
<a href="https://glama.ai/mcp/servers/mrk7ul7nz7"><img width="380" height="200" src="https://glama.ai/mcp/servers/mrk7ul7nz7/badge" alt="Package Docs Server MCP server" /></a>
特性
-
多语言支持:
- 通过
go doc
支持 Go 包 - 通过内置
help()
支持 Python 库 - 通过注册表文档支持 NPM 包(包括私有注册表)
- 通过 crates.io 和 docs.rs 支持 Rust crates
- 通过
-
智能文档解析:
- 结构化输出,包含描述、用法和示例
- 聚焦信息,避免上下文过载
- 支持特定符号/函数查找
- 跨文档的模糊和精确搜索功能
-
高级搜索功能:
- 在包文档中搜索
- 灵活查询的模糊匹配
- 具有相关性评分的上下文感知结果
- 从搜索结果中提取符号
-
语言服务器协议 (LSP) 支持:
- 代码符号的悬停信息
- 代码补全
- 诊断(错误和警告)
- 目前支持 TypeScript/JavaScript
- 可扩展到其他语言
-
性能优化:
- 内置缓存
- 高效解析
- 最小内存占用
安装
npx -y mcp-package-docs
通过 Smithery 安装
要通过 Smithery 为 Claude Desktop 自动安装 Package Docs:
npx -y @smithery/cli install mcp-package-docs --client claude
用法
作为 MCP 服务器
- 添加到您的 MCP 设置配置:
{
"mcpServers": {
"package-docs": {
"command": "npx",
"args": ["-y", "mcp-package-docs"],
"env": {
"ENABLE_LSP": "true" // 可选:启用语言服务器协议支持
}
}
}
}
- LSP 功能包括常见语言服务器的默认配置:
- TypeScript/JavaScript:
typescript-language-server --stdio
- HTML:
vscode-html-language-server --stdio
- CSS:
vscode-css-language-server --stdio
- JSON:
vscode-json-language-server --stdio
您可以根据需要覆盖这些默认值:
{
"mcpServers": {
"package-docs": {
"command": "npx",
"args": ["-y", "mcp-package-docs"],
"env": {
"ENABLE_LSP": "true",
"TYPESCRIPT_SERVER": "{\"command\":\"/custom/path/typescript-language-server\",\"args\":[\"--stdio\"]}"
}
}
}
}
- 服务器提供以下工具:
lookup_go_doc / describe_go_package
获取 Go 包文档
{
"name": "describe_go_package",
"arguments": {
"package": "encoding/json", // 必需
"symbol": "Marshal" // 可选
}
}
lookup_python_doc / describe_python_package
获取 Python 包文档
{
"name": "describe_python_package",
"arguments": {
"package": "requests", // 必需
"symbol": "get" // 可选
}
}
describe_rust_package
从 crates.io 和 docs.rs 获取 Rust crate 文档
{
"name": "describe_rust_package",
"arguments": {
"package": "serde", // 必需:crate 名称
"version": "1.0.219" // 可选:特定版本
}
}
search_package_docs
在包文档中搜索
{
"name": "search_package_docs",
"arguments": {
"package": "requests", // 必需:包名称
"query": "authentication", // 必需:搜索查询
"language": "python", // 必需:"go"、"python"、"npm"、"swift" 或 "rust"
"fuzzy": true // 可选:启用模糊匹配(默认:true)
}
}
lookup_npm_doc / describe_npm_package
从公共和私有注册表获取 NPM 包文档。 根据您的 .npmrc 配置自动使用适当的注册表。
{
"name": "describe_npm_package",
"arguments": {
"package": "axios", // 必需 - 支持作用域 (@org/pkg) 和非作用域包
"version": "1.6.0" // 可选
}
}
该工具读取您的 ~/.npmrc 文件以确定每个包的正确注册表:
- 使用作用域注册表配置(例如,@mycompany:registry=...)
- 支持私有注册表(GitHub Packages、GitLab、Nexus、Artifactory 等)
- 如果未配置自定义注册表,则回退到默认的 npm 注册表
.npmrc 配置示例:
registry=https://nexus.mycompany.com/repository/npm-group/
@mycompany:registry=https://nexus.mycompany.com/repository/npm-private/
@mycompany-ct:registry=https://npm.pkg.github.com/
语言服务器协议 (LSP) 工具
启用 LSP 支持后,以下附加工具可用:
get_hover
获取文档中某个位置的悬停信息
{
"name": "get_hover",
"arguments": {
"languageId": "typescript", // 必需:语言标识符(例如,“typescript”、“javascript”)
"filePath": "src/index.ts", // 必需:源文件的路径
"content": "const x = 1;", // 必需:文件的内容
"line": 0, // 必需:从零开始的行号
"character": 6, // 必需:从零开始的字符位置
"projectRoot": "/path/to/project" // 可选:项目根目录
}
}
get_completions
获取文档中某个位置的完成建议
{
"name": "get_completions",
"arguments": {
"languageId": "typescript", // 必需:语言标识符
"filePath": "src/index.ts", // 必需:源文件的路径
"content": "const arr = []; arr.", // 必需:文件的内容
"line": 0, // 必需:从零开始的行号
"character": 16, // 必需:从零开始的字符位置
"projectRoot": "/path/to/project" // 可选:项目根目录
}
}
get_diagnostics
获取文档的诊断信息(错误、警告)
{
"name": "get_diagnostics",
"arguments": {
"languageId": "typescript", // 必需:语言标识符
"filePath": "src/index.ts", // 必需:源文件的路径
"content": "const x: string = 1;", // 必需:文件的内容
"projectRoot": "/path/to/project" // 可选:项目根目录
}
}
在 LLM 中的用法示例
查找文档
// 查找 Go 文档
const goDocResult = await use_mcp_tool({
server_name: "package-docs",
tool_name: "describe_go_package",
arguments: {
package: "encoding/json",
symbol: "Marshal"
}
});
// 查找 Python 文档
const pythonDocResult = await use_mcp_tool({
server_name: "package-docs",
tool_name: "describe_python_package",
arguments: {
package: "requests",
symbol: "post"
}
});
// 查找 Rust 文档
const rustDocResult = await use_mcp_tool({
server_name: "package-docs",
tool_name: "describe_rust_package",
arguments: {
package: "serde"
}
});
// 在文档中搜索
const searchResult = await use_mcp_tool({
server_name: "package-docs",
tool_name: "search_package_docs",
arguments: {
package: "serde",
query: "serialize",
language: "rust",
fuzzy: true
}
});
// 使用 LSP 获取悬停信息(启用 LSP 时)
const hoverResult = await use_mcp_tool({
server_name: "package-docs",
tool_name: "get_hover",
arguments: {
languageId: "typescript",
filePath: "src/index.ts",
content: "const axios = require('axios');\naxios.get",
line: 1,
character: 7
}
});
要求
- Node.js >= 20
- Go(用于 Go 包文档)
- Python 3(用于 Python 包文档)
- 互联网连接(用于 NPM 包文档和 Rust crate 文档)
- 语言服务器(用于 LSP 功能):
- TypeScript/JavaScript:
npm install -g typescript-language-server typescript
- HTML/CSS/JSON:
npm install -g vscode-langservers-extracted
- TypeScript/JavaScript:
开发
# 安装依赖
npm i
# 构建
npm run build
# 监听模式
npm run watch
贡献
- Fork 仓库
- 创建您的功能分支 (
git checkout -b feature/amazing-feature
) - 提交您的更改 (
git commit -m 'Add some amazing feature'
) - 推送到分支 (
git push origin feature/amazing-feature
) - 打开一个 Pull Request
许可证
该项目根据 MIT 许可证获得许可 - 有关详细信息,请参阅 LICENSE 文件。
推荐服务器
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Claude Code MCP
一个实现了 Claude Code 作为模型上下文协议(Model Context Protocol, MCP)服务器的方案,它可以通过标准化的 MCP 接口来使用 Claude 的软件工程能力(代码生成、编辑、审查和文件操作)。
@kazuph/mcp-taskmanager
用于任务管理的模型上下文协议服务器。它允许 Claude Desktop(或任何 MCP 客户端)在基于队列的系统中管理和执行任务。
Gitingest-MCP
一个用于 gitingest 的 MCP 服务器。它允许像 Claude Desktop、Cursor、Cline 等 MCP 客户端快速提取关于 Github 仓库的信息,包括仓库摘要、项目目录结构、文件内容等。
mermaid-mcp-server
一个模型上下文协议 (MCP) 服务器,用于将 Mermaid 图表转换为 PNG 图像。
Jira-Context-MCP
MCP 服务器向 AI 编码助手(如 Cursor)提供 Jira 工单信息。

Linear MCP Server
一个模型上下文协议(Model Context Protocol)服务器,它与 Linear 的问题跟踪系统集成,允许大型语言模型(LLM)通过自然语言交互来创建、更新、搜索和评论 Linear 问题。

Sequential Thinking MCP Server
这个服务器通过将复杂问题分解为顺序步骤来促进结构化的问题解决,支持修订,并通过完整的 MCP 集成来实现多条解决方案路径。
Curri MCP Server
通过管理文本笔记、提供笔记创建工具以及使用结构化提示生成摘要,从而实现与 Curri API 的交互。