Skip to main content
Glama
KDimkuz

mcp-weather-connector

by KDimkuz

mcp-weather-connector

MCP-サーバーで、AIエージェントに Open-Meteo 経由で天気予報へのアクセスを提供します。Open-Meteo は、APIキーも登録も不要な公開APIです。

意図的に小さく設計されています。このリポジトリのテーマは、エージェント向けのツールレイヤーがどのように構成されるかであり、天気ではありません。ここでの天気は、モデルと外部の世界との間にある信頼の境界を示すための、分かりやすい題材です。

これは何のためか

Model Context Protocol とは、言語モデルに外部のサービスでアクションを実行する権限を与える方法です。その権利が出現すると、「モデルがツールに無効なデータを渡し、その瞬間に外部のサービスが503を返したらどうなるのか」という問題が生じます。

このコードで明示的に示されている3つの判断は次のとおりです。

モデルからの入力は信頼されていません。 モデルは空文字列、10キロバイトの巨大な文字列、制御文字を渡す可能性があります。そうしたものはすべて、外部のAPIではなく、server.py 内でネットワーク呼び出しの前に切り捨てられます。

Errorの種類に応じて区別されます。 4xx を再試行しても意味がありません。リクエスト側のエラーであり、再試行で修正されるものではないからです。5xx は一時的な障害が多いため、間隔を置いて 1 回だけ再試行します。この判断は _get_json にあり、呼び出し回数を検証するテストで確認されています。

外部には生のJSONではなくテキストが渡されます。 エージェントには補って解釈する余地がなく、言い換えて伝える際に誤る可能性もありません。必須フィールドがない200応答は、空の値を返す理由ではなく、障害として扱われます。

もう1点、範囲外の日数はエラーとして扱われるのではなく、境界値に丸められます。モデルが30日分の予報を求めてきた場合、エラーメッセージで対話を終わらせるよりは、7日分を返す方が有益です。

Related MCP server: open-meteo-mcp-server

ツール

ツール

説明

current_weather(city)

現在の天気: 気温、体感温度、湿度、風

forecast(city, days=3)

1〜7日間の予報(降水を含む)

locate(query)

都市が存在するかを確認し、国を補足する

locate はただ1つのシナリオのために存在します。エージェントが表記に確信が持てないときは、静かに別の都市の天気を返すよりも、ユーザーに確認する方が良い、というものです。

Инструкция インストール

pip install -e .

Claude Desktop への接続

claude_desktop_config.json 内:

{
  "mcpServers": {
    "weather": {
      "command": "mcp-weather"
    }
  }
}

アプリを再起動すると、ツールが利用可能なリストに表示されます。

開発

pip install -e ".[dev]"
pytest
ruff check .

テストでは、実際に壊れがちなケースをカバーしています: 空の入力、過大サイズの入力、数値以外の日数、再試行なしの4xx、1回だけ再試行される5xx、2回目の試行で成功、ペイロードがない200応答、未知の天気コードです。HTTP は respx でモックされているため、テストでネットワークは必要ありません。

構造

src/mcp_weather/
    client.py    — работа с Open-Meteo: типы, повторы, разбор ответа
    server.py    — MCP-слой: валидация входа и форматирование вывода
tests/
    test_tools.py

ネットワークコードは意図的にMCPレイヤーから分離されています。クライアント自体は単体でテストでき、エージェント用ツールは、明確な関数に対する薄いラッパーのままです。

ライセンス

MIT

Install Server
A
license - permissive license
A
quality
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • A
    license
    Not graded
    quality
    F
    maintenance
    Enables AI assistants to retrieve current weather, forecasts, and summaries for any global location using the Open-Meteo API, with no API key required.
    21
    Creative Commons Zero v1.0 Universal
  • A
    license
    A
    quality
    D
    maintenance
    Provides comprehensive access to Open-Meteo weather APIs, including forecasts, historical data, air quality, marine weather, and geocoding, enabling LLMs to retrieve weather information and location data.
    17
    668
    1
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Provides live weather data (current conditions, forecasts) and city geocoding through Open-Meteo API, enabling AI assistants to answer weather queries without an API key.
    MIT

View all related MCP servers

Related MCP Connectors

  • Global weather via Open-Meteo: forecast, ERA5 archive, marine, air quality, geocoding, elevation.

  • US weather & geo for AI agents: forecasts, alerts, earthquakes, elevation, geocoding. No keys.

  • Real-time weather conditions and multi-day forecasts via Open-Meteo — free, no API key required

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/KDimkuz/mcp-weather-connector'

If you have feedback or need assistance with the MCP directory API, please join our Discord server