Token导航 LogoToken导航TokenDH.com
Open Meteo MCP Ts logo
地图位置stdio官方级别未说明来源级核验

Open Meteo MCP Ts

MCP Server

@modelcontextprotocol/inspector

一个基于TypeScript/Node.js的天气数据服务,提供天气预报、雪况、空气质量指标和位置搜索功能,适用于AI助手集成。

工具数

11

提示词数

0

GitHub Stars

0

资源数

0
天气预报TypeScriptClaudeClaude DesktopClaude

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

schlpbch

提供方

schlpbch

最后核验

2026/5/17 20:22

运行时

Node.js

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

npx @modelcontextprotocol/inspector node dist/main.js

详细介绍

打开Meteo MCP TypeScript

![Tests](https://github.com/schlp/open-meteo-mcp-ts) ](https://nodejs.org) ](https://www.docker.com) ![License](LICENSE)

TypeScript/Node.js的实现 模型上下文协议(MCP) 服务器 开放天气 天气数据。提供AI助手,如 克劳德提供全面的天气预报、雪况、空气质量 例如位置、度量和位置搜索能力。

现代堆栈:此TypeScript实现在Node.js 20 LTS+上运行 完全支持Docker。最初用Deno编写,迁移到Node.js(2026年2月) 为了更广泛的生态系统兼容性。早期版本可在 python.

特性

11 MCP工具

  • 🌤️ 天气预报:当前状况、小时和每日预报

(温度、降水、风、紫外线)

  • ❄️ 雪况:雪深、降雪量和适合滑雪的山地天气

度假村

  • 🌫️ 空气质量:空气质量指数(欧洲和美国)、污染物(PM2.5、PM10、O3、NO2)、紫外线

花粉数据索引

  • 🗺️ 位置搜索:使用模糊搜索和国家过滤的地理编码
  • 📊 天气警报:极端条件(热、冷、冷)的自动警报,

风暴、紫外线)

  • 🏔️ 瑞士地点:100多个瑞士城市和山区的预配置数据

通过

  • 📈 历史天气:用于分析的过去天气数据
  • 🌊 海洋条件:海洋天气、海浪、洋流
  • 🧭 舒适度指数:基于温度的人体舒适度计算,

湿度、风

  • 🌅 天文数据:日出、日落、黄金时段、蓝色时段
  • 🔀 位置比较:比较多个地点的天气

4 MCP资源

  • weather://codes -WMO天气代码参考(28个代码)
  • weather://parameters -可用的API参数文档
  • weather://aqi-reference -空气质量指数量表与健康

建议

  • weather://swiss-locations -100多个瑞士城市、山脉、滑雪胜地

坐标

3个MCP提示

  • 滑雪旅行天气 -滑雪旅行计划,包括雪况和度假村

建议

  • 计划户外活动 -天气感知活动规划(徒步旅行、骑自行车、,

等等)

  • 天气感知旅行 -结合天气的旅行计划

安装

先决条件

  • 20.0.0或更高
  • 8.0.0或更高版本(或npm/yarn)
  • 不需要API密钥(Open-Meteo是免费的)

本地设置

# Clone the repository
git clone https://github.com/schlp/open-meteo-mcp-ts.git
cd open-meteo-mcp-ts

# Install dependencies
pnpm install

# Run tests
pnpm test

# Start the server
pnpm start

用法

使用克劳德桌面

配置Claude Desktop以使用MCP服务器:

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json 视窗: %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "open-meteo": {
      "command": "node",
      "args": ["/path/to/open-meteo-mcp-ts/dist/main.js"]
    }
  }
}

或者使用Docker:

{
  "mcpServers": {
    "open-meteo": {
      "command": "docker",
      "args": ["run", "--rm", "-i", "open-meteo-mcp:latest"]
    }
  }
}

重新启动Claude Desktop,天气工具将可用。

与MCP检查员一起

首先构建项目,然后进行交互式测试:

pnpm build
npx @modelcontextprotocol/inspector node dist/main.js

这将打开一个web界面来测试所有工具、资源和提示。

发展

可用命令

# Development with hot reload (tsx)
pnpm dev

# Run tests
pnpm test

# Watch mode for tests
pnpm test:watch

# Generate coverage report
pnpm coverage

# Linting (ESLint)
pnpm lint

# Format code (Prettier)
pnpm fmt

# Type checking (TypeScript)
pnpm check

# Build TypeScript to JavaScript
pnpm build

项目结构

open-meteo-mcp-ts/
├── src/
│   ├── main.ts          # Entry point (MCP server initialization)
│   ├── server.ts        # MCP tools, resources, prompts
│   ├── client.ts        # Open-Meteo API client
│   ├── models.ts        # Zod schemas and TypeScript types
│   ├── helpers.ts       # Utility functions
│   └── data/            # JSON resources
├── tests/               # Test suite (168 tests)
├── dist/                # Compiled JavaScript (generated)
├── .github/
│   └── workflows/       # CI/CD configuration
├── package.json         # Node.js/pnpm configuration
├── tsconfig.json        # TypeScript configuration
├── Dockerfile           # Docker image definition
├── docker-compose.yml   # Docker Compose configuration
├── DEPLOYMENT.md        # Deployment guide
└── README.md            # This file

部署

使用Docker部署以供生产使用。多阶段构建优化了安全性 以及尺寸。

快速入门-Docker

# Build the image
docker build -t open-meteo-mcp:latest .

# Run the container
docker run -it open-meteo-mcp:latest

# Or use Docker Compose
docker-compose up -d

快速入门-Node.js

# Install and build
pnpm install
pnpm build

# Run in production
pnpm start

# View logs
node dist/main.js

部署.md 包括Docker在内的详细说明, docker编写和裸Node.js选项。

测试

全部168项测试通过:

$ pnpm test
✔ 168 passed | ✖ 0 failed (1.1s)

测试覆盖率

  • 6测试:空气质量边缘案例
  • 21测试:API客户端(模拟)
  • 9测试:地理编码功能
  • 48测试:辅助功能
  • 12项测试:集成改进
  • 26测试:模型验证(Zod模式)
  • 22次测试:服务器集成(工具、资源、提示)
  • 24次测试:服务器工具调用处理程序(所有11个MCP工具)

API使用

示例:获取天气

import { OpenMeteoClient } from "./src/client.js";

const client = new OpenMeteoClient();

// Search for location
const location = await client.searchLocation("Zurich");
const zurich = location.results![0];

// Get weather forecast
const weather = await client.getWeather(
  zurich.latitude,
  zurich.longitude,
  7, // forecast days
  true, // include hourly
  "Europe/Zurich", // timezone
);

console.log(`Current temperature: ${weather.current_weather.temperature}°C`);
console.log(`Condition: ${weather.current_weather.weathercode}`);

示例:获取空气质量

const airQuality = await client.getAirQuality(
  47.3769, // Zurich latitude
  8.5417, // Zurich longitude
  5, // forecast days
  true, // include pollen
  "Europe/Zurich",
);

console.log(`European AQI: ${airQuality.current.european_aqi}`);
console.log(`PM2.5: ${airQuality.current.pm2_5} μg/m³`);

技术栈

  • 运行时: 20.0.0+(从Deno迁移,

2026年2月)

  • 包管理器: 8+
  • MCP-SDK:

@模型上下文协议/sdk

日期fns tz

  • 构建:通过TypeScript tsc
  • 测试:Node.js本机测试运行器
  • 代码检查:ESLint与TypeScript插件
  • 格式化:更漂亮
  • HTTP客户端:带有gzip压缩的本机Fetch API
  • 部署:Docker(多阶段Alpine构建,200MB镜像)

演出

Python版本的主要改进:

  • 响应时间加快50% (目标:≤125ms P95)
  • 💾 内存使用率降低30% (目标:≤70 MB)
  • 📊 吞吐量提高40% (目标:≥280 RPS)
  • 🚀 冷启动速度提高60% (目标:≤160ms)

docs/PERFORMANCE.md 详细的基准测试(即将发布 很快)。

迁移历史

python→ TypeScript(原始重写)

TypeScript实现与 Python版本:

特性Python(FastMCP)TypeScript
MCP工具1111✅
MCP资源44✅
MCP提示33✅
测试137168✅
Gzip压缩

Deno → Node.js(2026年2月)

迁移到Node.js 20 LTS+以实现更广泛的生态系统兼容性:

特性Deno(v4.0.0)Node.js(v4.1.0)
运行时Deno 1.40+Node.js 20 LTS+
包管理器JSR/NMPpnpm/NMP
构建系统esbuildtsc
测试运行器deno测试节点--测试
部署Deno部署Docker
测试计数144168✅

关键变化

  • 运行时:Deno→ Node.js 20 LTS+实现通用兼容性
  • 包管理器:迪诺→ pnpm用于性能和一致性
  • 构建:通过tsc进行TypeScript本机编译
  • 部署:Deno部署→ Docker(多阶段构建)
  • 命令行界面:deno任务命令→ pnpm命令
  • 重大变更:无-MCP协议完全兼容

贡献

欢迎投稿!拜托:

  1. 分叉存储库
  2. 创建要素分支(git checkout -b feature/amazing-feature)
  3. 提交更改(git commit -m 'Add amazing feature')
  4. 推送到分支(git push origin feature/amazing-feature)
  5. 打开拉取请求

开发指南

  • 遵循Prettier风格指南(pnpm fmt)
  • 为新功能添加测试
  • 更新文档
  • 确保所有测试通过(pnpm test)
  • 运行类型检查(pnpm check)
  • 跑linting(pnpm lint)

许可证

MIT许可证-请参阅 许可证 文件以获取详细信息。

致谢

标准

相关项目

实施

服务器示例

公共交通一体化

支持

______________________________________________________________________

建于❤️ Claude Code社区

目录标签

目录标签

天气预报TypeScriptClaude本地部署雪况分析空气质量监测位置搜索AI集成

支持客户端

Claude DesktopClaude

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

none

运行时(runtime,运行环境)

Node.js

来源包(packageName,安装包名)

@modelcontextprotocol/inspector

工具数量(toolCount,工具数)

11

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdionone部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP