项目简介
'mcp-agent-example' 仓库是一个参考项目,旨在展示如何构建和使用基于 Model Context Protocol (MCP) 的服务器,以及如何将其集成到代理(Agent)应用中。仓库中包含一个实现了MCP协议的天气工具服务器示例。
主要功能点
- MCP天气工具服务器: 包含一个可运行的MCP服务器实现 ('weather_mcp.py')。
- 提供实用工具: 天气服务器通过MCP协议提供以下工具供LLM客户端调用:
- 获取用户当前位置(城市、地区、国家、坐标)。
- 获取指定地理坐标的天气预报。
- Stdio传输支持: 服务器通过标准输入/输出(Stdio)传输协议与MCP客户端通信,符合MCP规范。
- 代理集成示例: 仓库还包含一个简单的代理应用 ('mini_tui_agent.py'),演示了如何加载并使用MCP服务器提供的工具与LLM进行交互(注:此部分是客户端示例,服务器功能在 'weather_mcp.py' 中)。
安装步骤
要运行此MCP天气工具服务器示例,您需要安装Python环境及相关的依赖库。
- 确保您已安装 Python 3.8 或更高版本。
- 安装所需的Python库。根据仓库中的代码 ('weather_mcp.py'),需要 'httpx' 和 'mcp.server.fastmcp' (这通常是实现MCP服务器的基础库)。您可能需要通过 pip 或 uv 来安装:
确切的安装命令可能取决于仓库的完整依赖管理配置(如 pyproject.toml),请参考仓库根目录下的说明(如果提供)。pip install httpx mcp-server-fastmcp # 或者如果您使用 uv uv pip install httpx mcp-server-fastmcp - 确保您的系统环境中可以执行 Python 脚本。
服务器配置
为了让MCP客户端能够连接并使用此天气工具服务器,客户端需要以下配置信息。这些信息通常以 JSON 格式提供给MCP客户端库:
- 'name': 服务器的友好名称。
- 'command': 启动服务器进程的命令。
- 'args': 传递给启动命令的参数列表。
对于 'weather_mcp.py' 提供的天气服务器,典型的客户端配置示例如下(不包含代码块,仅为配置内容及注释):
{ "name": "Weather Server", // 服务器的名称,用于客户端区分不同的MCP服务器 "command": "uv", // 启动服务器进程的命令,这里使用uv运行Python脚本 "args": ["run", "weather_mcp.py"] // 传递给uv命令的参数,指示运行weather_mcp.py脚本 }
客户端框架会使用 'command' 和 'args' 来启动 'weather_mcp.py' 脚本,并通过 Stdio 建立通信。运行 'weather_mcp.py' 需要已安装前面提到的依赖。
基本使用方法
MCP客户端(如仓库中的代理示例或您自己的LLM应用)在通过上述配置连接到天气服务器后,即可发现并调用服务器暴露的工具。
- 客户端启动天气服务器进程(基于配置中的 'command' 和 'args')。
- 服务器启动后,会通过Stdio向客户端声明其能力(如提供的工具列表及其描述)。
- LLM客户端根据需要,通过发送JSON-RPC请求调用服务器提供的工具,例如 'get_user_location' 或 'get_forecast'。
- 服务器执行相应的Python函数(如 '@mcp.tool' 标记的函数),并将结果通过JSON-RPC响应返回给客户端。
简而言之,此 'weather_mcp.py' 脚本就是一个独立的MCP服务器程序,它接收来自客户端的工具调用请求,执行相应逻辑,并将结果返回。客户端(如 'mini_tui_agent.py')负责启动这个服务器进程并与其进行交互。
信息
分类
网页与API