使用说明
MCP基本示例-气象服务
这是一个演示如何使用FastMCP实现MCP(多云协议)服务器的基本示例。该示例实现了一个简单的天气服务,展示了三个主要的MCP组件:工具、资源和提示。
目的
本项目作为一个学习示例来演示:
- 如何使用FastMCP创建MCP服务器
- 如何实施MCP工具、资源和提示
- MCP服务器的基本结构和实现
实现细节
服务器实现了三个MCP组件来演示不同的交互模式:
-
工具:
get_weather(location: str)- 简单MCP工具示例
- 演示如何使用参数定义工具
- 演示工具返回值
-
资源:
weather://{location}- MCP资源使用示例
- 显示资源URL模式匹配
- 演示资源参数处理
-
提示:
weather_report(location: str)- MCP提示实施示例
- 演示如何创建格式化提示
- 演示提示参数的用法
运行示例
要运行此示例:
- 安装FastMCP库
- 跑
server.py直接
需求
- Python 3.13或更高版本
- 支持CLI的MCP库(
mcp[cli])
项目结构
server.py:MCP服务器实现main.py:运行服务器的入口点pyproject.toml:项目配置.gitignore:Git忽略规则
运行示例
要运行此示例,请执行以下步骤:
-
安装uv包管理器:
# On macOS/Linux curl -fsSL https://uv.rs/install.sh | bash # On Windows winget install uv -
创建并激活虚拟环境:
uv venv .venv source .venv/bin/activate # On Unix/macOS # or .venv\Scripts\activate # On Windows -
安装所需的依赖项:
uv pip install -r pyproject.toml -
使用mcp-dev运行服务器:
mcp dev main.py -
服务器将启动并监听:
- 主机:本地主机(127.0.0.1)
- 端口:8080
- 传输:服务器发送事件(SSE)
-
使用微型代理客户端测试服务器:
tiny-agents run agent.json服务器实现了三个端点:
- 工具:
get_weather(location: str) - 资源:
weather://{location} - 提示:
weather_report(location: str)
- 工具:
-
要停止服务器,请在终端中按Ctrl+C
备注
这是一个返回静态数据的基本示例。在实际应用中,您会:
- 连接到实际数据源
- 实施适当的错误处理
- 添加身份验证和授权
- 实施适当的日志记录
- 添加全面的文档
- 配置SSE之外的不同传输方式
- 添加适当的服务器配置选项
- 实施生产就绪错误处理
- 添加监控和指标
- 配置适当的端口管理
- 添加环境变量支持
- 处理边缘案例和验证
这个例子有意保持简单,以专注于MCP概念,而不是生产考虑。
