项目简介
本项目是一个使用 Python 和 FastMCP 框架实现的 Model Context Protocol (MCP) 服务器示例。它演示了如何通过 MCP 协议向 LLM 客户端提供工具和资源,以增强 LLM 的上下文感知和功能扩展能力。该服务器提供了简单的算术运算工具和动态问候语资源,可作为开发更复杂 MCP 服务器的起点。
主要功能点
- 资源管理: 提供动态问候语资源 'greeting://{name}',允许客户端根据名称获取个性化的问候信息。
- 工具执行: 注册了 'add' 和 'multiply' 两个工具,允许客户端调用执行加法和乘法运算。
- 标准MCP协议: 遵循 Model Context Protocol,支持客户端通过 JSON-RPC 协议进行交互。
- 多种传输协议: 示例代码默认使用 SSE 协议,也支持 Stdio 协议,方便在不同场景下部署和测试。
- 易于扩展: 基于 FastMCP 框架,可以轻松添加更多资源和工具,扩展服务器功能。
安装步骤
- 安装 Python: 确保您的系统已安装 Python 3.10 或更高版本。
- 安装 mcp 库: 使用 pip 包管理器安装 mcp 库。在终端中运行以下命令:
pip install mcp - 保存服务器代码: 从仓库中复制 'servers/mcp_demo.py' 文件,并保存到您本地的合适位置,例如 'mcp_demo.py'。
服务器配置
MCP 服务器需要与 MCP 客户端配合使用。以下是配置 VSCode MCP Client 扩展连接到此服务器的示例配置(在 VSCode 设置中编辑 'mcpClient.servers'):
[ { "type": "stdio", "name": "本地 MCP Demo Server", "enabled": true, "command": "python", // 运行 Python 命令 "args": [ "path/to/mcp_demo.py" // 将 "path/to/mcp_demo.py" 替换为您保存 mcp_demo.py 文件的实际路径 ] } ]
配置参数说明:
- 'type': 连接类型,这里使用 'stdio',因为 'mcp_demo.py' 是一个可以通过命令行运行的脚本。
- 'name': 服务器名称,可以自定义,用于在客户端中标识不同的 MCP 服务器连接。
- 'enabled': 是否启用此服务器连接,设置为 'true' 表示启用。
- 'command': 启动 MCP 服务器的命令。对于 Python 脚本,通常使用 'python' 命令。
- 'args': 传递给启动命令的参数列表。这里指定了 'mcp_demo.py' 脚本的路径。请务必将 'path/to/mcp_demo.py' 替换为您实际保存 'mcp_demo.py' 文件的路径。
如果您希望使用 SSE 协议 (例如用于远程访问),您需要修改 'mcp_demo.py' 中的 'mcp.run(transport='sse')' 并确保网络可访问性,然后在客户端配置中使用 'sse' 类型并提供服务器 URL。
基本使用方法
- 启动 MCP 服务器: 打开终端,导航到 'mcp_demo.py' 文件所在的目录,并运行命令 'python mcp_demo.py' (如果您配置客户端为 'stdio' 类型) 或者运行 'python mcp_demo.py --transport sse' (如果您希望使用 SSE 协议,并需要在客户端配置相应的 SSE URL)。 服务器将开始运行并等待客户端连接。
- 配置并连接 MCP 客户端: 根据您使用的 MCP 客户端(例如 VSCode MCP Client 扩展),配置服务器连接信息,包括服务器类型、名称、启动命令(或 SSE URL)等。确保客户端配置与服务器实际运行方式一致。
- 使用 LLM 客户端与 MCP 服务器交互: 在 LLM 客户端中,您可以利用 MCP 服务器提供的工具和资源来增强 LLM 的能力。例如,您可以指示 LLM 调用 'add' 工具进行加法运算,或者访问 'greeting://yourname' 资源获取问候语。具体的交互方式取决于您使用的 LLM 客户端的功能和界面。
注意: 本示例 'mcp_demo.py' 主要用于演示 MCP 服务器的基本功能,实际应用中您可能需要根据具体需求扩展工具和资源,并考虑更完善的错误处理、安全性等问题。
信息
分类
AI与计算