使用说明
项目简介
本项目是一个演示性质的MCP(Model Context Protocol)服务器,它对外提供基于邮政编码的天气预报资源。该服务器使用'FastMCP'框架构建,并集成了OpenTelemetry进行链路追踪,方便开发者了解服务器的运行状况和性能。
主要功能点
- 资源管理: 提供 '/resource://{zipcode}/weather' 资源,根据邮政编码返回详细的天气预报信息。
- OpenTelemetry 集成: 使用 OpenTelemetry 进行链路追踪,可以监控请求处理过程,并将追踪数据发送到 Datadog 等后端系统,便于进行性能分析和故障排查。
- SSE 传输协议: 支持基于 Server-Sent Events (SSE) 的实时数据推送。
- 可配置性: 通过环境变量配置天气 API 接口地址、Datadog API 密钥和区域等信息。
安装步骤
- 克隆仓库: 首先,将仓库 'https://github.com/streamfold/mcp-demo-server-otel' 克隆到本地。
- 安装依赖: 进入项目根目录,使用 'uv sync' 命令安装项目依赖。如果未安装 'uv',请先参考 uv 官方文档进行安装。
cd mcp-demo-server-otel uv sync - 配置环境变量: 根据需要配置以下环境变量:
- 'DATADOG_API_KEY': 您的 Datadog API 密钥 (如果需要启用 Datadog 追踪)。
- 'DATADOG_REGION': Datadog 区域,默认为 'us1',可选 'us3', 'us5', 'eu', 'ap1' (如果使用 Datadog 追踪)。
- 'WEATHER_API': 提供天气预报 API 的端点地址,例如 'https://api.weather.gov'。
服务器配置
为了让 MCP 客户端连接到此服务器,您需要提供以下配置信息。这是一个 JSON 格式的配置示例,您需要将其配置到您的 MCP 客户端中。
{ "serverName": "mcp-demo-weather-server", "command": "python", "args": ["main.py"], "transport": "sse", "endpoint": "http://<服务器地址>:<端口>" }
配置参数说明:
- 'serverName': 服务器的名称,可以自定义,用于在客户端标识服务器。例如: '"mcp-demo-weather-server"'。
- 'command': 启动服务器的命令。由于服务器是 Python 应用,这里设置为 '"python"'。
- 'args': 启动命令的参数,指向服务器的主程序文件。这里设置为 '["main.py"]'。
- 'transport': 使用的传输协议。本项目使用 SSE,所以设置为 '"sse"'。
- 'endpoint': 服务器的访问地址,需要替换为实际部署服务器的地址和端口。例如: '"http://localhost:8000"' 或者 '"https://your-server.com"'。 请注意,默认情况下,'mcp.run()' 可能会在本地启动服务器,具体端口请查看服务器运行日志或代码配置(如果指定了端口)。如果部署到 Render 等平台,则 Render 会自动分配地址和端口。
注意: 请根据实际部署情况,将 '<服务器地址>' 和 '<端口>' 替换为您的服务器地址和端口。 如果您在本地运行 'main.py',默认情况下可能会监听本地端口。如果部署到 Render 等云平台,Render 会提供一个公网可访问的地址。
基本使用方法
- 启动服务器: 在配置好环境变量后,在项目根目录下运行 'python main.py' 命令启动 MCP 服务器。
- 使用 MCP Inspector 连接: 您可以使用 MCP Inspector 工具连接到您的 MCP 服务器端点进行测试。在 MCP Inspector 中配置服务器连接信息(server name, command, args, endpoint),然后即可浏览服务器提供的资源。
- 访问天气预报资源: 在 MCP Inspector 或其他 MCP 客户端中,可以使用资源 URI 'resource://<邮政编码>/weather' 来访问特定邮政编码的天气预报信息。例如,访问邮政编码 '10001' 的天气预报,可以使用 URI 'resource://10001/weather'。
示例: 在 MCP Inspector 中输入资源 URI 'resource://10001/weather' 并发送请求,服务器应返回 "The forecast for zipcode 10001 is: ......" 格式的天气预报文本。
信息
分类
开发者工具