项目简介

本项目 'mcp-server-poc' 是一个 Model Context Protocol (MCP) 服务器的 Proof-of-Concept (POC) 实现。它演示了如何构建一个 MCP 服务器,为支持 MCP 标准的 AI 助手(如 Cursor IDE)提供自定义工具和资源,扩展 AI 助手的能力。

主要功能点

  • 文档检索工具 (get_docs): 允许 AI 助手检索 LangChain, LlamaIndex, 和 OpenAI 的官方文档,帮助开发者快速查找技术文档。
  • Web 抓取工具 (crawl_web): 提供网页抓取能力,允许 AI 助手获取指定 URL 的网页内容,用于信息整合或作为上下文信息。
  • 集成 Google Serper API: 使用 Google Serper API 作为文档检索工具的底层搜索引擎,保证搜索结果的相关性和时效性。
  • 标准 MCP 服务器实现: 遵循 MCP 协议,可以通过 JSON-RPC 与 MCP 客户端通信,提供工具注册和执行能力。
  • Stdio 传输: 使用标准输入输出 (stdio) 作为默认的传输协议,方便集成到各种支持 MCP 客户端的应用中。

安装步骤

  1. 克隆仓库:

    git clone https://github.com/TarcisioPhilips/mcp-server-poc.git
    cd mcp-server-poc
  2. 创建并激活虚拟环境:

    # 创建 Python 3.11 虚拟环境
    python -m venv venv
    
    # 激活虚拟环境 (Windows)
    .\venv\Scripts\Activate.ps1
    
    # 激活虚拟环境 (macOS/Linux)
    source venv/bin/activate
  3. 安装依赖包:

    pip install -r requirements.txt
  4. 配置环境变量: 在项目根目录下创建 '.env' 文件,并添加 Serper API 密钥:

    SERPER_API_KEY=YOUR_SERPER_API_KEY

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

服务器配置

MCP 客户端(例如 Cursor IDE)需要配置 MCP 服务器的启动命令才能连接。以下是 'mcp.json' 配置文件示例,用于配置 'mcp-server' 服务器:

{
    "mcpServers": {
        "mcp-server": {
            "command": "python",
            "args": [
                "ABSOLUTE/PATH/TO/main.py"
            ]
        }
    }
}
  • 'command': 启动 MCP 服务器的命令,这里使用 'python' 解释器。
  • 'args': 传递给 'command' 的参数,这里指定了 'main.py' 脚本的绝对路径 'ABSOLUTE/PATH/TO/main.py'。请将 'ABSOLUTE/PATH/TO/main.py' 替换为你的 'main.py' 文件的实际绝对路径。
    • Windows 路径示例: 'C:\Users\username\path\to\main.py' (注意使用双反斜杠)
    • macOS/Linux 路径示例: '/Users/username/path/to/main.py'

将以上配置添加到 MCP 客户端的配置文件中(例如 Cursor IDE 的 '~/.cursor/mcp.json' 或 'C:\Users<username>.cursor\mcp.json'),并重启客户端即可连接到 MCP 服务器。

基本使用方法

  1. 启动 MCP 服务器: 在项目根目录下运行命令:

    python main.py

    服务器将会在后台运行,等待 MCP 客户端连接。

  2. 在 MCP 客户端中使用工具: 以 Cursor IDE 为例,在编辑器中你可以通过 '@' 符号触发工具调用。例如,要使用 'get_docs' 工具搜索 LangChain 文档,可以输入类似以下内容:

    @get_docs(query="Chroma DB", library="langchain")

    MCP 客户端会将这个请求发送到 MCP 服务器,服务器执行 'get_docs' 工具,并将结果返回给客户端,最终显示在编辑器中。你可以根据 'get_docs' 和 'crawl_web' 工具的描述,在 MCP 客户端中灵活调用这些工具,增强 AI 助手的功能。

信息

分类

网页与API