关于 weather
weather 是 MCP Quickstart Resources 仓库中的精简天气 MCP 服务示例,提供五种语言版本,供开发者学习构建 MCP 服务,并将美国国家气象局的预报和警报作为工具提供。
主要功能
- 01提供 Python、TypeScript、Go、Rust 和 Ruby 示例
- 02天气预报查询工具
- 03天气警报查询工具
- 04通过 stdio 通信
- 05验证服务和工具响应的冒烟测试
适用场景
- 01学习实现天气 MCP 服务
- 02尝试调用预报和警报工具
- 03比较不同语言的服务示例
MCP 相关
提供两个 MCP 工具:get_forecast 和 get_alerts(TypeScript 中为 get-forecast 和 get-alerts),数据来自美国国家气象局 API。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
2收录的工具列表 · 更新于 2 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| state | string | 是 | 两字母州代码(例如 CA、NY) |
详细介绍
MCP 快速入门资源
五种语言的 Model Context Protocol(MCP)示例服务和客户端。这些示例配套两篇官方教程:
- 构建 MCP 服务 – 一个简单的 MCP 天气服务,通过 US National Weather Service API 提供两个工具
- 构建 MCP 客户端 – 一个由大模型驱动的聊天机器人 MCP 客户端,可连接任意 stdio 服务,并让 Claude 调用其工具
此仓库包含什么
每个示例都位于独立目录中,并附有自己的 README,介绍前置条件、设置方法和运行方式:
| 语言 | 天气服务(MCP 服务) | 聊天机器人(MCP 客户端) |
|---|---|---|
| Python | weather-server-python | mcp-client-python |
| TypeScript | weather-server-typescript | mcp-client-typescript |
| Go | weather-server-go | mcp-client-go |
| Rust | weather-server-rust | mcp-client-rust |
| Ruby | weather-server-ruby | mcp-client-ruby |
所有服务都通过 stdio 通信,并提供相同的两个工具:get_forecast 和 get_alerts(在 TypeScript 中为 get-forecast 和 get-alerts)。
所有客户端都会启动一个服务、列出其工具,并进入交互式聊天循环,让 Claude 调用这些工具。Python、TypeScript 和 Ruby 客户端需要提供服务脚本的路径;Go 和 Rust 客户端则需要提供要运行的命令及其参数。
注意:这些示例客户端需要 ANTHROPIC_API_KEY 才能运行。未提供密钥时,每个客户端仍会连接并列出服务的工具,然后退出,因此你可以在没有凭据的情况下验证 MCP 连接。
你可以跨语言自由组合,例如,Python 客户端可以驱动 TypeScript 服务。每个客户端的 README 都列出了其支持的服务启动方式。
tests 目录包含在 CI 中对这些示例运行的冒烟测试。有关测试的运行方式,请参阅 tests/README.md。
前置条件
每个示例只需要相应语言的工具链。若要在整个仓库中工作(例如,运行冒烟测试),你需要:
- Node.js 24+ 和 npm
- Python 3.10+ 和 uv
- Go 1.25+
- Rust 1.88+ 和 Cargo
- Ruby 3.4+ 和 Bundler
运行测试
./tests/smoke-test.sh
冒烟测试会验证每个服务都能启动并响应 MCP 请求(包括根据各工具声明的 schema 验证结构化工具结果),还会验证 Python、TypeScript 和 Ruby 客户端能连接到模拟服务并列出工具。测试通过 GitHub Actions 在每个拉取请求上自动运行。
贡献
欢迎贡献。提交更改的步骤:
- Fork 仓库,并从
main创建一个分支。 - 进行更改。示例应保持精简——它们旨在讲解协议,而非提供生产级服务。
- 如果更改了某个示例的行为、设置或依赖项,请相应更新该示例的 README。
- 运行
./tests/smoke-test.sh,并确保测试通过。 - 针对
main发起拉取请求,说明更改内容及原因。
请遵循以下惯例,这些惯例与更广泛的 Model Context Protocol 贡献指南一致:
- 确保文档清晰、简洁且技术准确。 在适当时加入代码示例,并测试你添加的命令和链接。
- 披露 AI 辅助情况。 如果你在准备贡献内容时使用了任何形式的 AI 辅助,请在拉取请求或议题中说明。关于披露内容,请参阅 AI_POLICY.md。
- 保持尊重。 本项目遵循 MCP 社区的行为准则。如有疑虑,可发送邮件至 [email protected]。
安全须知
这些示例有意保持精简。如果通过网络(HTTP/SSE/WebSocket)公开 MCP 服务,请添加身份验证和基本安全措施(CORS 允许列表、请求大小限制、超时、速率限制和日志脱敏)。请参阅 SECURITY.md。
许可证
MCP 项目正在从 MIT License 过渡到 Apache-2.0。新的代码贡献采用 Apache-2.0 许可,文档(规范除外)采用 CC-BY-4.0 许可。作者尚未同意重新授权的早期贡献仍采用 MIT License。完整条款请参阅 LICENSE。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。