MCP Package Docs Server

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) 功能的高效访问。

smithery badge

<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 服务器

  1. 添加到您的 MCP 设置配置:
{
  "mcpServers": {
    "package-docs": {
      "command": "npx",
      "args": ["-y", "mcp-package-docs"],
      "env": {
        "ENABLE_LSP": "true" // 可选:启用语言服务器协议支持
      }
    }
  }
}
  1. 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\"]}"
      }
    }
  }
}
  1. 服务器提供以下工具:

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

开发

# 安装依赖
npm i

# 构建
npm run build

# 监听模式
npm run watch

贡献

  1. Fork 仓库
  2. 创建您的功能分支 (git checkout -b feature/amazing-feature)
  3. 提交您的更改 (git commit -m 'Add some amazing feature')
  4. 推送到分支 (git push origin feature/amazing-feature)
  5. 打开一个 Pull Request

许可证

该项目根据 MIT 许可证获得许可 - 有关详细信息,请参阅 LICENSE 文件。

推荐服务器

Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Claude Code MCP

Claude Code MCP

一个实现了 Claude Code 作为模型上下文协议(Model Context Protocol, MCP)服务器的方案,它可以通过标准化的 MCP 接口来使用 Claude 的软件工程能力(代码生成、编辑、审查和文件操作)。

精选
本地
JavaScript
@kazuph/mcp-taskmanager

@kazuph/mcp-taskmanager

用于任务管理的模型上下文协议服务器。它允许 Claude Desktop(或任何 MCP 客户端)在基于队列的系统中管理和执行任务。

精选
本地
JavaScript
Gitingest-MCP

Gitingest-MCP

一个用于 gitingest 的 MCP 服务器。它允许像 Claude Desktop、Cursor、Cline 等 MCP 客户端快速提取关于 Github 仓库的信息,包括仓库摘要、项目目录结构、文件内容等。

精选
本地
Python
mermaid-mcp-server

mermaid-mcp-server

一个模型上下文协议 (MCP) 服务器,用于将 Mermaid 图表转换为 PNG 图像。

精选
JavaScript
Jira-Context-MCP

Jira-Context-MCP

MCP 服务器向 AI 编码助手(如 Cursor)提供 Jira 工单信息。

精选
TypeScript
Linear MCP Server

Linear MCP Server

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

精选
JavaScript
Sequential Thinking MCP Server

Sequential Thinking MCP Server

这个服务器通过将复杂问题分解为顺序步骤来促进结构化的问题解决,支持修订,并通过完整的 MCP 集成来实现多条解决方案路径。

精选
Python
Curri MCP Server

Curri MCP Server

通过管理文本笔记、提供笔记创建工具以及使用结构化提示生成摘要,从而实现与 Curri API 的交互。

官方
本地
JavaScript