气象MCP服务器
一种模型上下文协议(MCP)服务器,为人工智能助手和应用程序提供天气信息和时间工具。
概述
此MCP服务器使用两个主要工具实现了简单的天气服务:
- 天气信息:获取任何城市的当前天气数据
- 时间服务:检索当前时间戳
该服务器使用TypeScript和官方MCP SDK构建,演示了如何创建可供Claude Desktop和其他MCP兼容客户端使用的自定义工具。
特性
- 🌤️ 天气数据:获取全球任何城市的天气信息
- ⏰ 时间服务:获取ISO格式的当前时间戳
- 🔒 输入验证:使用Zod模式进行稳健的参数验证
- 🚀 TypeScript:完全类型安全和现代JavaScript功能
- 📡 stdio运输:通过标准输入/输出进行通信,实现无缝集成
安装
先决条件
- Node.js 18+
- npm或yarn包管理器
设置
- 克隆存储库
git clone
cd my-mcp-server- 安装依赖项
npm install- 构建项目
npm run build用法
发展
在开发模式下运行服务器:
npm run dev生产
启动内置服务器:
npm start与Claude Desktop集成
将此服务器添加到您的Claude Desktop配置中:
{
"mcpServers": {
"weather-server": {
"command": "node",
"args": ["/path/to/my-mcp-server/build/index.js"]
}
}
}可用工具
get_weather
检索指定城市的天气信息。
参数:
city(string,必填):获取天气的城市units(字符串,可选):温度单位-“公制”或“英制”(默认为“公制”)
示例响应:
Weather in London:
Temperature: 18°C
Conditions: Partly cloudy
Humidity: 65%get_time
以ISO 8601格式返回当前时间戳。
参数: 无
示例响应:
Current time: 2025-01-08T14:30:25.123Z项目结构
my-mcp-server/
├── index.ts # Main server implementation
├── package.json # Project dependencies and scripts
├── tsconfig.json # TypeScript configuration
├── build/ # Compiled JavaScript output
└── README.md # This file技术细节
依赖项
- @模型上下文协议/sdk:用于服务器实现的官方MCP SDK
- 轴:用于外部API调用的HTTP客户端
- 动物圈:运行时类型验证和解析
建筑
服务器遵循MCP规范:
- 工具注册:工具通过注册
ListToolsRequestSchema处理器 - 工具执行:工具调用通过以下方式处理
CallToolRequestSchema处理器 - 错误处理:正确的MCP错误代码和验证
- 运输:使用stdio传输进行通信
天气数据
目前返回模拟天气数据用于演示目的。要与真实天气API集成,请执行以下操作:
- 注册天气服务(例如,OpenWeatherMap)
- 替换中的模拟数据生成
get_weather案件 - 添加正确的API密钥处理和HTTP请求
脚本
npm run build-将TypeScript编译为JavaScriptnpm run dev-构建并运行开发模式npm start-运行已编译的服务器
贡献
- 分叉存储库
- 创建要素分支(
git checkout -b feature/amazing-feature) - 进行更改
- 构建和测试(
npm run build) - 提交您的更改(
git commit -m 'Add amazing feature') - 推到分支(
git push origin feature/amazing-feature) - 打开拉取请求
许可证
该项目是开源的,可在 MIT许可证.
了解更多
______________________________________________________________________
内置于❤️ 使用TypeScript和模型上下文协议
