🌤️ FastMCP气象服务器
使用FastMCP和TypeScript构建的生产就绪天气MCP服务器,与Claude Desktop、VS Code和Cursor无缝集成。
✨ 特性
- 🌍 实时天气数据 -获取全球任何城市的当前天气
- 🔒 类型安全 -使用TypeScript和Zod验证构建
- 📊 进度报告 -内置天气请求进度跟踪
- 📝 结构化日志记录 -带上下文的全面日志记录
- 🛠️ 易于测试 -用于开发和调试的内置CLI工具
- 🔌 通用集成 -适用于Claude Desktop、VS Code和游标
- ⚡ 快速发展 -比传统MCP SDK快5倍
🚀 快速开始
先决条件
- Node.js 20.18.1或更高版本 (关键要求)
- OpenWeatherMap API密钥 (免费套餐:1000次/天)
安装
git clone https://github.com/abhilashsahoo/fastmcp-weather-server.git
cd fastmcp-weather-server
npm install设置
- 获取OpenWeatherMap API密钥:
- 注册地址: openweathermap.org/api - 从仪表板复制API密钥
- 创建环境文件:
cp .env.example .env- 将API密钥添加到
.env:
OPENWEATHER_API_KEY=your_api_key_here发展
测试您的服务器:
npm run dev尝试交互式CLI:
get_weather {"city": "London"}使用可视化界面进行调试:
npm run inspect生产建设:
npm run build🔧 MCP客户端集成
克劳德桌面
- 查找您的配置文件:
- macOS: ~/Library/Application Support/Claude/claude_desktop_config.json - 窗户: %APPDATA%\Claude\claude_desktop_config.json
- 添加此配置:
{
"mcpServers": {
"weather": {
"command": "npx",
"args": ["tsx", "/absolute/path/to/fastmcp-weather-server/src/server.ts"],
"env": {
"OPENWEATHER_API_KEY": "your_actual_api_key_here"
}
}
}
}- 重新启动Claude Desktop并测试:
What's the weather like in Tokyo?VS代码
- 安装MCP扩展
- 创建
.vscode/settings.json:
{
"mcp.servers": {
"weather": {
"command": "npx",
"args": ["tsx", "./src/server.ts"],
"cwd": "${workspaceFolder}",
"env": {
"OPENWEATHER_API_KEY": "your_actual_api_key_here"
}
}
}
}光标IDE
- 创建
.cursor/mcp.json:
{
"servers": {
"weather": {
"command": "npx",
"args": ["tsx", "./src/server.ts"],
"env": {
"OPENWEATHER_API_KEY": "your_actual_api_key_here"
}
}
}
}📋 可用脚本
| 脚本 | 描述 |
|---|---|
npm run dev | 使用CLI启动FastMCP开发服务器 |
npm run inspect | 打开可视化调试界面 |
npm run test-direct | 无需CLI即可直接测试服务器 |
npm run build | 将TypeScript编译为JavaScript |
npm start | 运行已编译的服务器 |
🛠️ api参考
工具
get_weather
获取全球任何城市的最新天气信息。
参数:
city(字符串,必填):城市名称(例如“伦敦”、“纽约”)
退货:
- 包含温度、条件、湿度和风速的格式化天气数据
例子:
{
"city": "London"
}答复:
🌤️ Weather in London:
🌡️ Temperature: 15°C (feels like 13°C)
☁️ Conditions: partly cloudy
💧 Humidity: 65%
💨 Wind Speed: 3.2 m/s🐛 故障排除
常见问题
| 问题 | 解决方案 |
|---|---|
| Node.js版本错误 | 更新到Node.js 20.18.1+: winget upgrade OpenJS.NodeJS |
| 找不到服务器 | 检查MCP客户端配置中的绝对路径 |
| API关键错误 | 在中验证API密钥 .env MCP客户端环境部分 |
| 模块分辨率错误 | 删除 node_modules 然后跑 npm install |
| FastMCP CLI问题 | 试试看 npm run test-direct 不使用CLI进行测试 |
Windows特定
通过PowerShell更新Node.js:
# Using Chocolatey
choco upgrade nodejs
# Using Winget
winget upgrade OpenJS.NodeJS
# Using nvm-windows
nvm install 20.18.1 && nvm use 20.18.1测试步骤
- 直接测试服务器:
npm run test-direct - 使用FastMCP CLI进行测试:
npm run dev - 视觉界面测试:
npm run inspect - 使用Claude Desktop进行测试: 重启克劳德,询问天气情况
📊 项目结构
fastmcp-weather-server/
├── src/
│ └── server.ts # Main FastMCP server
├── dist/ # Compiled JavaScript (generated)
├── .env # Environment variables (create from .env.example)
├── .env.example # Environment template
├── .gitignore # Git ignore rules
├── package.json # Dependencies and scripts
├── tsconfig.json # TypeScript configuration
└── README.md # This file🌟 详细功能
FastMCP优势
- 零配置: 使用单个构造函数的服务器设置
- 内置测试: 包括CLI和web界面
- 进度报告: 实时进度更新
- 结构化日志记录: 使用数据对象进行上下文日志记录
- 类型安全: Zod模式验证
- 错误处理: 用户友好的错误消息
天气数据
- 实时更新: OpenWeatherMap的当前状况
- 全球覆盖范围: 全球任何城市的天气
- 综合数据: 温度、湿度、风、条件
- 速率限制: 每天1000个免费请求
🚀 部署
发展
npm run dev # Test with FastMCP CLI生产
npm run build # Compile TypeScript
npm start # Run compiled server环境变量
| 变量 | 描述 | 必填 |
|---|---|---|
OPENWEATHER_API_KEY | OpenWeatherMap API密钥 | 是 |
NODE_ENV | 环境(开发/生产) | 否 |
📈 演出
- 请求: 1000个天气电话/天(免费套餐)
- 响应时间: 平均\<500ms
- 内存使用情况: \<50MB
- 客户支持: 克劳德桌面,VS代码,光标
🤝 贡献
- 分叉存储库
- 创建特征分支:
git checkout -b feature/amazing-feature - 提交您的更改:
git commit -m 'Add amazing feature' - 推到分支:
git push origin feature/amazing-feature - 打开拉取请求
📝 许可证
此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。
🙏 致谢
- FastMCP -令人惊叹的MCP框架
- OpenWeatherMap -免费天气API
- 模型上下文协议 -MCP规范
🔗 相关项目
- FastMCP -TypeScript MCP框架
- FastMCP沸腾板 -初学者模板
- MCP服务器 -官方MCP服务器
______________________________________________________________________
内置于❤️ 使用FastMCP和TypeScript

