Weather MCP Server with FastMCP
使用说明(Markdown格式)
项目简介
- 本仓库中实现了一个基于 MCP 的服务器示例(天气服务),使用 FastMCP 框架搭建,提供 weather 相关工具供 LLM 客户端调用。服务器端定义了两个工具:获取天气预报(get_weather)与获取警报(get_alerts),通过 MCP 的工具注册机制暴露给客户端。
主要功能点
- MCP 服务器核心能力:注册工具、接收并处理 JSON-RPC 风格请求、返回 JSON-RPC 响应、支持与 Gemini/外部服务的集成调用。
- 工具注册与执行:通过装饰器注册工具函数,客户端可通过工具名称调用。
- 外部数据获取:示例中集成了天气数据获取(对接公开天气 API 的调用逻辑),并具备简单的返回格式处理。
- 安全与鉴权提示:在示例中包含对 Gemini API 的密钥注入与环境变量设置,引导安全地进行外部 API 调用。
安装步骤
- 安装依赖
- pip install mcp fastmcp google-genai httpx nest_asyncio
- 配置环境变量
- 设置 GEMINI_API_KEY(若使用 Gemini 功能)
- 运行服务器
- 在仓库中找到对应的服务器脚本(例如 custom_mcp_tools_integration_with_fastmcp_marktechpost.py)后直接运行
- 命令示例(无需代码块,便于理解):在终端执行 python custom_mcp_tools_integration_with_fastmcp_marktechpost.py
- 客户端配置(MCP 客户端需要的配置,仓库服务器端既有客户端示例的配置信息)
- 客户端在启动连接 MCP 服务器时需要一个 JSON 配置,包含服务器名称、启动命令和参数等信息。配置示例(JSON)如下: { "server_name": "weather", "command": "python", "args": ["custom_mcp_tools_integration_with_fastmcp_marktechpost.py"], "notes": "MCP 服务器名称与脚本文件对应,客户端使用此信息建立连接与调用工具。无需代码块展示给最终用户。" }
- 以上配置仅用于说明 MCP 客户端如何连接服务器,实际客户端实现可能会有不同的字段命名,请以具体客户端文档为准。
基本使用方法
- 启动服务器后,客户端即可通过 MCP 协议调用以下工具:
- get_weather(latitude: float, longitude: float) -> str
- get_alerts(state: str) -> str
- 客户端通过 MCP 请求调用工具并获取结果,服务器返回的 JSON-RPC 响应包含相应的结果文本。
- 服务器支持外部网络请求(示例中通过公开天气 API 获取数据),需要确保运行环境能够联网。
注意事项
- 根据实际环境配置 Gemini API Key(若需要)与网络代理设置,以确保外部 API 调用成功。
- 生产环境应增加鉴权、速率限制和错误处理等完善机制。
关键词 weather, tool invocation, JSON-RPC, FastMCP, Gemini
分类ID 6