项目简介
本仓库提供了一个非常简单的 MCP (Model Context Protocol) 服务器示例,名为 "simple-mcp"。它演示了如何使用 MCP 协议构建一个可以与 LLM (大型语言模型) 客户端交互的后端服务。这个服务器提供了一个名为 'mood' 的工具,可以回答关于服务器心情的问题,并托管了一个简单的文本资源供客户端访问。
主要功能点
- 提供工具 (Tools): 实现了一个名为 'mood' 的工具。当客户端调用这个工具并提问关于心情的问题时,服务器会返回预设的开心回复。这模拟了 MCP 服务器提供外部功能的能力。
- 托管资源 (Resources): 服务器托管了一个名为 'resource1' 的文本资源(内容为“测试”),客户端可以通过 MCP 协议读取这个资源的内容。这展示了 MCP 服务器管理和提供数据访问的能力。
- 基于标准 MCP 协议: 使用 'mcp' Python 库构建,遵循 MCP 协议规范,可以与任何兼容 MCP 协议的客户端进行通信。
- 使用 Stdio 传输协议: 服务器和客户端之间通过标准输入输出 (Stdio) 进行通信,简化了部署和运行。
安装步骤
-
克隆仓库
git clone https://github.com/badboyf/simple-mcp.git cd simple-mcp -
安装必要的 Python 库
虽然示例代码中直接使用了 'mcp' 库,但通常来说,为了确保环境,建议创建一个虚拟环境并安装 'mcp' 库。
# (可选) 创建虚拟环境 python -m venv venv source venv/bin/activate # 或 venv\Scripts\activate (Windows) # 安装 mcp 库 (如果尚未安装) pip install model-context-protocol
服务器配置
MCP 客户端需要配置 MCP 服务器的启动信息才能连接。对于 'simple-mcp' 示例,你需要在 MCP 客户端的配置中指定以下信息。这个配置通常是一个 JSON 格式的配置段,用于描述如何启动和连接到 MCP 服务器。
以下是针对 'simple-mcp' 服务器的 MCP 客户端配置示例:
{ "mcpServers": { "mood": { // 服务器名称,客户端用此名称引用 "command": "python", // 启动服务器的命令 "args": ["server.py"] // 启动服务器命令的参数,这里指定运行 server.py 文件 } } }
配置参数说明:
- 'mcpServers': 定义可用的 MCP 服务器列表。
- '"mood"': 服务器名称 (server name)。这是一个自定义的名称,用于在客户端配置中唯一标识这个 MCP 服务器。客户端在需要调用此服务器的功能时,会使用这个名称。例如,在 'main.py' 的配置中,'"mood"' 就是 'server_name'。
- 'command': 启动命令 (command)。指定用于启动 MCP 服务器的可执行命令。对于 'simple-mcp' 来说,由于服务器是 Python 脚本 'server.py',所以启动命令是 'python'。
- 'args': 命令参数 (args)。一个字符串数组,包含了启动命令需要的参数。对于 'simple-mcp',参数是 '["server.py"]',表示要执行的 Python 脚本文件是 'server.py'。
如何配置到MCP客户端:
具体的配置方法取决于你使用的 MCP 客户端。通常,客户端会读取一个配置文件(例如 'config.py' 中的 'mcp_hub' 变量),你需要在客户端的配置文件中添加或修改 'mcpServers' 部分,将上述 JSON 配置信息添加到客户端的配置中。
基本使用方法
-
启动 MCP 服务器: 在仓库根目录下,运行 'server.py' 脚本以启动 MCP 服务器。
python server.py服务器启动后,会在控制台中保持运行状态,等待客户端连接和请求。
-
运行 MCP 客户端: 仓库中的 'main.py' 文件是一个简单的 MCP 客户端示例。你需要先配置 'config.py' 文件,例如设置 OpenAI API 相关的配置 (如果需要使用 LLM 功能),然后运行 'main.py'。
# (可选) 配置 config.py 文件,例如设置 api_key, api_base, model 等 (如果 main.py 中使用了 LLM 功能) python main.py'main.py' 客户端会读取 'config.py' 中的 'mcp_hub' 配置,并尝试连接并使用 'mood' 服务器提供的工具和资源。你可以根据 'main.py' 的提示进行交互,例如输入 "你好吗" 来测试 'mood' 工具。
注意: 'main.py' 客户端示例使用了 Langchain 和 OpenAI,如果运行 'main.py' 遇到问题,请确保已经正确配置了 OpenAI API 并且安装了 'langchain_openai' 等相关库。本示例的核心是 'server.py' 提供的 MCP 服务器实现。
信息
分类
开发者工具