使用说明

项目简介

MCPServer 是一个用于演示 Model Context Protocol (MCP) 服务器功能的示例项目。它实现了一个简单的 MCP 服务器,该服务器提供了一个 工具 (Tool),允许 LLM 客户端查询特定库(Langchain, LlamaIndex, OpenAI)的文档。这个服务器可以作为 LLM 应用的后端,为模型提供联网检索文档的能力。

主要功能点

  • MCP 服务器实现: 实现了基于 'mcp' SDK 的 MCP 服务器,遵循 MCP 协议与客户端通信。
  • 文档检索工具: 提供 'get_docs' 工具,允许 LLM 客户端指定关键词和目标库,检索相关文档内容。
  • 支持文档库: 目前支持 Langchain, LlamaIndex 和 OpenAI 的官方文档检索。
  • JSON-RPC 通信: 通过标准 JSON-RPC 协议与 MCP 客户端进行交互。
  • Stdio 传输: 使用 Stdio 作为默认传输协议,方便本地部署和测试。

安装步骤

  1. 安装 uv 包管理器: 按照仓库 README.md 中的指引安装 'uv' 包管理器。

  2. 创建项目并安装依赖: 打开终端,执行以下命令:

    uv init mcp-server
    cd mcp-server
    uv venv
    .venv/bin/activate  # 或 .venv\Scripts\activate (Windows)
    uv add "mcp[cli]" httpx beautifulsoup4 python-dotenv
  3. 创建 'main.py' 文件: 将仓库提供的 'main.py' 文件内容复制到项目目录下的 'main.py' 文件中。

  4. 配置 Serper API 密钥: 本项目使用 Serper API 进行 Google 搜索以检索文档链接。你需要在 Serper.dev 注册并获取 API 密钥。 创建 '.env' 文件,并将 API 密钥配置到环境变量中:

    SERPER_API_KEY=YOUR_SERPER_API_KEY

    请替换 'YOUR_SERPER_API_KEY' 为你自己的 Serper API 密钥。

服务器配置

MCP 客户端(例如 Claude Desktop)需要配置 MCP 服务器的启动命令才能连接。以下是针对 Claude Desktop 的配置示例,其他 MCP 客户端的配置方式类似,但请参考对应客户端的文档。

在 Claude Desktop 的配置文件 'claude_desktop_config.json' 中 (通常位于 '~/Library/Application Support/Claude/' 或 '%APPDATA%/Claude/' ),添加或修改 'mcpServers' 部分:

{
    "mcpServers": {
        "mcp-server-example": {  // 服务器名称,可以自定义
            "command": "uv",      // 启动命令,这里使用 uv 包管理器
            "args": [             // 启动参数
                "--directory",     // 指定工作目录
                "/ABSOLUTE/PATH/TO/YOUR/mcp-server", // **请替换为你的 mcp-server 项目的绝对路径**
                "run",             // uv run 命令,运行 Python 脚本
                "main.py"          // 要运行的 Python 脚本
            ]
        }
    }
}

重要:

  • 请将 '/ABSOLUTE/PATH/TO/YOUR/mcp-server' 替换为你本地 'mcp-server' 项目的绝对路径
  • 'server name' ('mcp-server-example') 可以自定义,在 Claude Desktop 中用于标识这个 MCP 服务器。
  • 'command' 和 'args' 必须正确配置,Claude Desktop 才能找到并启动 MCP 服务器。

基本使用方法

  1. 启动 MCP 服务器: 在终端中,进入 'mcp-server' 项目目录,并确保虚拟环境已激活,运行以下命令启动服务器:

    uv run main.py

    服务器启动后,会监听来自 MCP 客户端的请求。

  2. 连接 MCP 客户端: 配置并启动 MCP 客户端(例如 Claude Desktop),客户端会根据配置文件尝试连接到 MCP 服务器。

  3. 使用 'get_docs' 工具: 在 MCP 客户端中,你可以指示 LLM 模型使用 'get_docs' 工具。例如,在 Claude Desktop 中,你可以向 Claude 提问类似以下的问题:

    使用 get_docs 工具,查询 Langchain 中关于 Memory 的文档。

    LLM 客户端会将你的请求转换为 MCP 协议的工具调用,发送给 MCPServer。MCPServer 执行 'get_docs' 工具,检索相关文档内容,并将结果返回给 LLM 客户端,最终 Claude 会根据检索到的文档内容给出回答。

注意: 'get_docs' 工具依赖 Serper API 进行网络搜索,请确保 Serper API 密钥配置正确,并且 API 额度充足。

信息

分类

AI与计算