mcpField
W
weather

weather

本地服务
github.com/dingw1982地图与出行07 周前更新

关于 weather

weather 是 MCP Quickstart Resources 仓库中的精简天气 MCP 服务示例,提供五种语言版本,供开发者学习构建 MCP 服务,并将美国国家气象局的预报和警报作为工具提供。

主要功能

  1. 01提供 Python、TypeScript、Go、Rust 和 Ruby 示例
  2. 02天气预报查询工具
  3. 03天气警报查询工具
  4. 04通过 stdio 通信
  5. 05验证服务和工具响应的冒烟测试

适用场景

  1. 01学习实现天气 MCP 服务
  2. 02尝试调用预报和警报工具
  3. 03比较不同语言的服务示例

MCP 相关

提供两个 MCP 工具:get_forecast 和 get_alerts(TypeScript 中为 get-forecast 和 get-alerts),数据来自美国国家气象局 API。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"dingw1982-weather": {
"command": "npx",
"args": [
"-y",
"@dingw1982/mcp-quickstart-ts"
],
"env": {
"YOUR_API_KEY": "<YOUR_API_KEY>"
}
}
}
}
启动命令npx -y @dingw1982/mcp-quickstart-ts
需要配置的环境变量
YOUR_API_KEY密钥Your API key for the service

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npm@dingw1982/mcp-quickstart-ts1.0.1

工具

2

收录的工具列表 · 更新于 2 周前

参数类型必填说明
statestring是两字母州代码(例如 CA、NY)

详细介绍

MCP 快速入门资源

五种语言的 Model Context Protocol(MCP)示例服务和客户端。这些示例配套两篇官方教程:

  • 构建 MCP 服务 – 一个简单的 MCP 天气服务,通过 US National Weather Service API 提供两个工具
  • 构建 MCP 客户端 – 一个由大模型驱动的聊天机器人 MCP 客户端,可连接任意 stdio 服务,并让 Claude 调用其工具

此仓库包含什么

每个示例都位于独立目录中,并附有自己的 README,介绍前置条件、设置方法和运行方式:

语言天气服务(MCP 服务)聊天机器人(MCP 客户端)
Pythonweather-server-pythonmcp-client-python
TypeScriptweather-server-typescriptmcp-client-typescript
Goweather-server-gomcp-client-go
Rustweather-server-rustmcp-client-rust
Rubyweather-server-rubymcp-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 在每个拉取请求上自动运行。

贡献

欢迎贡献。提交更改的步骤:

  1. Fork 仓库,并从 main 创建一个分支。
  2. 进行更改。示例应保持精简——它们旨在讲解协议,而非提供生产级服务。
  3. 如果更改了某个示例的行为、设置或依赖项,请相应更新该示例的 README。
  4. 运行 ./tests/smoke-test.sh,并确保测试通过。
  5. 针对 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。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。