文档获取服务

一个为大型语言模型提供实时Python库文档访问的MCP服务器,确保代码建议基于最新文档。

  • by AmirUpSkill
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 amirupskill/mcp-server

使用说明

用于最新库文档的MCP服务器

该项目在Python中实现了一个模型上下文协议(MCP)服务器。它的主要功能是为像Anthropic的Claude这样的大型语言模型(LLM)提供实时访问 最新文档 对于指定的Python库(Langchain、LlamaIdex、OpenAI),在生成代码建议之前。

问题解决了

LLM通常拥有基于其训练数据截止值的知识。这可能会导致过时的代码建议,特别是对于AI/ML领域中常见的快速发展的库。此MCP服务器通过充当允许LLM动态获取最新文档片段并将其合并到上下文中的工具来解决这一挑战 之前 响应编码查询。

特性

  • MCP标准: 实现模型上下文协议,以便与兼容客户端(例如Claude Desktop、Claude Code)无缝集成。
  • get_docs 工具: 公开搜索官方文档网站的特定工具。
  • 目标搜索: 使用Serper API执行特定地点的谷歌搜索,确保结果直接来自以下方面的官方文档:
    • Langchain(python.langchain.com/docs)
    • CallIndex (docs.llamaindex.ai/en/stable)
    • OpenAI(platform.openai.com/docs)
  • 内容获取: 使用以下命令从顶部搜索结果中检索和解析文本内容 httpx 和 BeautifulSoup.
  • 现代工具: 使用Python 3.11+构建, asyncio, FastMCP,并使用 uv 包管理器。

架构概述

该服务器在MCP生态系统中充当一个专门的“工具箱”:

  1. 一 MCP主机 (例如,Claude Desktop、带Claude Code的IDE)发起请求,要求对支持的库进行编码协助。
  2. 这 MCP客户端 主机内连接到此正在运行的MCP服务器。
  3. 法学硕士认识到需要潜在的最新信息,决定使用 get_docs 此服务器提供的工具。
  4. 客户端调用 get_docs 此服务器上的工具,传递用户的查询和目标库。
  5. 这 MCP服务器 构建特定于站点的搜索查询(例如。, site:python.langchain.com/docs <user_query>).
  6. 它质疑 Serper API公司 获取顶部文档页面链接。
  7. 它使用以下命令获取这些页面的内容 httpx 并使用以下命令提取相关文本 BeautifulSoup.
  8. 提取的文本(上下文)将返回给MCP客户端/主机。
  9. LLM使用这个新的上下文和原始提示来生成更准确和最新的响应/代码建议。

先决条件

  • Python 3.11+
  • uv 包管理器: 从以下位置安装 Astral.sh.
  • Serper API密钥: 从以下位置获取免费或付费密钥 瑟珀·德夫.
  • Node.js/npx: 必需 仅 如果您计划使用MCP检查器进行调试。

安装和设置

  1. 克隆存储库(如果适用):

    git clone <your-repository-url>
    cd <your-repository-name>
    
  2. 初始化项目(如果重新开始):

    # If you haven't cloned a repo with pyproject.toml
    uv init mcp-server
    cd mcp-server
    
  3. 创建和激活虚拟环境:

    uv venv
    # Activate (Linux/macOS):
    source .venv/bin/activate
    # Activate (Windows PowerShell):
    . \.venv\Scripts\Activate.ps1
    # Activate (Windows Cmd):
    .\.venv\Scripts\activate.bat
    
  4. 安装依赖关系:

    uv add "mcp[cli]" httpx python-dotenv bs4
    # Or, if dependencies are listed in pyproject.toml:
    # uv sync
    

配置

  1. 创建一个名为的文件 .env 在项目的根目录中。

  2. 将您的Serper API密钥添加到此文件:

    SERPER_API_KEY=your_actual_serper_api_key_here
    

    (The .gitignore 文件已配置为阻止提交此文件)

用法

  1. 运行MCP服务器: 确保您的虚拟环境已激活。

    uv run main.py
    

    服务器将启动并通过标准输入/输出(stdio)监听连接,如中配置的 main.py.

  2. 与MCP客户端集成:

    • 克劳德桌面:

      • 转到“设置”>“开发人员”>“编辑配置”。
      • 在下面添加条目 mcpServers。您需要提供 完整路径 到你的 uv 可执行文件,并指定命令参数。
      • 示例结构(相应地调整路径):
        {
          "mcpServers": [
            {
              "name": "docs-helper", // Or any name you prefer
              "command": [
                "/full/path/to/your/.venv/bin/python", // Or full path to uv binary
                "-m", // If using python -m uv ...
                "uv",
                "run",
                "main.py"
               ],
              "workingDirectory": "/full/path/to/your/mcp-server/project"
            }
          ]
        }
        
      • 重新启动克劳德桌面。应出现工具锤图标。
    • 克劳德代码(CLI):

      • 使用 claude mcp add 交互式命令或带有标志的命令。
      • 交互式会话提示示例:
        • 服务器名称: documentation-fetcher (或你的选择)
        • 项目类型: local
        • 命令:指定到的完整路径 uv 类似于Claude Desktop(例如。, /full/path/to/uv run main.py 在项目目录中)。
        • 工作目录: /full/path/to/your/mcp-server/project
      • 使用 claude mcp list 以验证。
      • 跑 claude -应列出该工具。
    • 有关最新的客户端配置详细信息,请参阅Anthropic MCP官方文档。

开发与调试

这 MCP检查员 是一个有价值的工具,可以在不需要完全客户端集成的情况下测试服务器的功能。

  1. 确保已安装Node.js和npx。
  2. 运行检查器,将其指向服务器的Run命令:
    # Ensure your .venv is activated first
    npx @model-context-protocol/inspector "uv run main.py"
    
  3. 打开您的网络浏览器 http://localhost:5173.
  4. 通过Inspector界面连接到服务器。
  5. 导航到“工具”部分,选择 get_docs,提供以下测试值 query 和 library,然后单击“运行工具”查看输出。

许可证

此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。 (如果您选择此项,则需要添加一个包含MIT许可证文本的LICENSE文件)