使用说明
项目简介
本项目是一个基于 Model Context Protocol (MCP) 的服务器示例,使用 Python 的 FastMCP 框架构建。它演示了如何创建一个 MCP 服务器,该服务器可以注册和执行工具,从而扩展大型语言模型 (LLM) 的能力。本项目包含两个主要的服务器示例:
- 基础工具服务器 (server.py): 提供简单的数学计算工具(加法、减法)和一个模拟的 Slack 消息获取工具,用于演示工具注册和调用的基本功能。
- 天气代理服务器 (weather.py): 集成美国国家气象局 (NWS) API,提供获取指定州的天气警报和指定经纬度位置的天气预报工具,展示如何构建更实用的、基于外部数据源的工具。
主要功能点
- MCP 服务器实现: 使用 FastMCP 框架快速搭建 MCP 服务器。
- 工具注册与执行: 通过装饰器简单注册 Python 函数为 MCP 工具,并支持客户端调用执行。
- 基础工具示例: 提供加法、减法等基础数学运算工具。
- 天气信息工具: 集成 NWS API,提供天气警报和天气预报查询工具。
- Stdio 传输协议: 服务器默认使用 Stdio 传输协议与客户端通信。
安装步骤
- 安装 Node.js 和 npx: 请确保你的系统中已安装 Node.js 和 npm (或 npx)。MacOS 用户可以使用 'brew install node' 安装。
- 安装 Python 和 uv: 安装 Python 3.11 或更高版本。然后使用 pip 安装 uv 包管理器:'pip install uv'。
- 克隆仓库: 使用 Git 克隆本项目到本地:
git clone https://github.com/thelearningdev/build-ai-agents-with-mcp-apr-2025 cd build-ai-agents-with-mcp-apr-2025 - 创建虚拟环境并安装依赖: 在项目根目录下创建 Python 虚拟环境并安装项目依赖:
uv venv uv sync
服务器配置
MCP 客户端需要配置 MCP 服务器的启动命令和参数才能连接。以下是针对 'server.py' 和 'weather.py' 两个服务器示例的配置信息:
-
基础工具服务器 (server.py) 配置:
{ "server name": "BasicToolsServer", "command": "uv", "args": ["run", "--with", "mcp[cli]", "mcp", "run", "server.py"] }参数说明:
- 'server name': 自定义服务器名称,用于客户端识别。
- 'command': 启动服务器的命令,这里使用 'uv run'。
- 'args': 传递给 'uv run' 命令的参数,包括:
- '--with mcp[cli]': 指定使用 mcp 命令行工具。
- 'mcp run': 运行 mcp 服务器。
- 'server.py': 指定要运行的服务器代码文件。
-
天气代理服务器 (weather.py) 配置:
{ "server name": "WeatherAgentServer", "command": "uv", "args": ["run", "--with", "mcp[cli]", "mcp", "run", "weather.py"] }参数说明: 与基础工具服务器配置相同,但 'args' 中指定运行 'weather.py' 文件。
注意: 以上配置信息为 JSON 格式,MCP 客户端需要读取并解析这些配置来启动和连接到 MCP 服务器。实际使用时,请根据 MCP 客户端的具体要求进行配置。
基本使用方法
- 启动 MCP 服务器: 根据你想要运行的服务器示例,使用相应的配置信息启动 MCP 服务器。例如,在终端中执行命令 'uv run --with mcp[cli] mcp run server.py' 可以启动基础工具服务器。
- 配置 MCP 客户端: 在 MCP 客户端中,配置服务器连接信息,包括服务器启动命令和参数(参考上面的服务器配置)。
- 客户端连接与工具调用: 启动 MCP 客户端,客户端将根据配置连接到 MCP 服务器。连接成功后,客户端可以列出服务器提供的工具,并调用这些工具来扩展 LLM 的功能。
- 查看示例客户端代码: 仓库的 'clients' 目录下提供了 'anthropic_client.py' 和 'adk_with_mcp_gemini.py' 客户端示例,可以参考这些示例了解如何与 MCP 服务器交互。
信息
分类
网页与API