使用说明
项目简介
mcp_server 是一个基于 Python FastAPI 框架构建的 MCP (Model Context Protocol) 服务器,旨在为 AI 模型和开发环境之间提供标准化的上下文交互。它通过实现 MCP 协议,简化了 AI 应用的部署和管理,提供了高效的 API 接口,并确保模型输入输出的一致性。该项目支持 JSON-RPC 2.0 协议进行请求-响应通信,并使用 SSE (Server-Sent Events) 实现实时通知。
主要功能点
- 资源管理: 支持托管和管理资源,并提供资源访问能力 (示例代码中 ResourceRouter 提供了资源列表和获取功能,但实际功能需查看完整代码)。
- 工具注册与执行: 允许注册和执行外部工具,扩展 LLM 的能力 (示例代码中 ToolRouter 提供了工具列表和执行功能,包含搜索和文件系统工具示例,但实际工具功能需查看完整代码)。
- Prompt 模板: 支持定义和管理 Prompt 模板,实现可定制的 LLM 交互模式 (示例代码中 PromptRouter 提供了 Prompt 模板的列表、获取、创建、更新和删除功能,包含代码审查和文档生成Prompt模板示例,但实际模板功能需查看完整代码)。
- JSON-RPC API: 基于标准的 JSON-RPC 2.0 协议进行通信。
- SSE 连接: 支持 Server-Sent Events 连接,用于服务器向客户端推送实时通知。
- 会话管理: 支持客户端与服务器之间的会话管理,包括初始化和关闭会话。
- 能力声明: 服务器声明自身支持的 MCP 能力,客户端可以根据能力进行适配。
安装步骤
-
克隆仓库:
git clone https://github.com/freedanfan/mcp_server.git cd mcp_server -
安装依赖:
pip install -r requirements.txt
服务器配置
MCP 服务器的配置主要涉及启动命令和相关参数。以下是针对 'mcp_server' 仓库生成的 MCP 客户端 server_config.json 配置信息,客户端根据此配置连接到 MCP 服务器:
{ "server name": "mcp_server", "command": "python", "args": [ "mcp_server.py" ], "host": "127.0.0.1", "port": 12000 }
参数注释:
- '"server name"': 服务器名称,可以自定义,用于在客户端标识服务器。例如 '"mcp_server"'。
- '"command"': 启动服务器的命令。对于 Python MCP 服务器,通常使用 'python'。
- '"args"': 启动命令的参数列表。
- '"mcp_server.py"': 指定要运行的服务器主程序文件。
- '"host"': 服务器监听的主机地址。默认值为 '"127.0.0.1"' (本地回环地址),表示服务器只接受来自本机的连接。如果需要允许远程客户端连接,可以设置为 '"0.0.0.0"'。
- '"port"': 服务器监听的端口号。默认值为 '12000'。请确保此端口未被其他程序占用。
注意: 如果需要修改服务器的 host 和 port,可以通过设置环境变量 'MCP_SERVER_HOST' 和 'MCP_SERVER_PORT' 来实现,无需修改 'server_config.json'。例如,要将服务器 host 设置为 '0.0.0.0',port 设置为 '8000',可以在启动服务器前执行以下命令:
export MCP_SERVER_HOST=0.0.0.0 export MCP_SERVER_PORT=8000 python mcp_server.py
基本使用方法
-
启动服务器: 在终端中,导航到仓库根目录,并执行以下命令启动 MCP 服务器:
python mcp_server.py服务器默认会在 'http://127.0.0.1:12000' 启动。
-
运行客户端 (可选): 在另一个终端中,导航到仓库根目录,并执行以下命令运行提供的测试客户端 'mcp_client.py',以测试服务器功能:
python mcp_client.py客户端默认连接到 'http://127.0.0.1:12000' 的服务器。如果服务器地址或端口已更改,可以通过设置环境变量 'MCP_SERVER_URL' 来指定客户端连接的服务器地址。例如:
export MCP_SERVER_URL="http://your-server-address:port" python mcp_client.py -
API Endpoint 和 SSE Endpoint:
- JSON-RPC API 接口地址为 '/api'。
- SSE (Server-Sent Events) 接口地址为 '/sse',用于建立 SSE 连接和接收服务器推送的事件。
-
开发扩展: 如果需要添加新的 MCP 方法或集成 AI 模型,可以参考 'README.md' 中 "Development Extensions" 部分的说明进行操作。
信息
分类
AI与计算