使用说明
项目简介
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 作为默认传输协议,方便本地部署和测试。
安装步骤
-
安装 uv 包管理器: 按照仓库 README.md 中的指引安装 'uv' 包管理器。
-
创建项目并安装依赖: 打开终端,执行以下命令:
uv init mcp-server cd mcp-server uv venv .venv/bin/activate # 或 .venv\Scripts\activate (Windows) uv add "mcp[cli]" httpx beautifulsoup4 python-dotenv -
创建 'main.py' 文件: 将仓库提供的 'main.py' 文件内容复制到项目目录下的 'main.py' 文件中。
-
配置 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 服务器。
基本使用方法
-
启动 MCP 服务器: 在终端中,进入 'mcp-server' 项目目录,并确保虚拟环境已激活,运行以下命令启动服务器:
uv run main.py服务器启动后,会监听来自 MCP 客户端的请求。
-
连接 MCP 客户端: 配置并启动 MCP 客户端(例如 Claude Desktop),客户端会根据配置文件尝试连接到 MCP 服务器。
-
使用 '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与计算