AQICN MCP Server について
AQICN MCP Serverは、World Air Quality Indexプロジェクトの大気質データをLLMに提供します。都市名や座標での検索と、測定ステーションの検索に対応しています。
主な機能
- 01都市名によるAQIデータ取得
- 02座標によるAQIデータ取得
- 03測定ステーションの検索
- 04汚染物質と測定情報の取得
活用シーン
- 01都市の大気質を確認
- 02地点周辺のAQIを調査
- 03測定ステーションの情報を検索
MCP 対応
このMCPサーバーは、都市名や座標による大気質検索と測定ステーション検索のためのAQICNツールを公開します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
AQICN MCP サーバー
これは、World Air Quality Index(AQICN)プロジェクトの大気質データツールを提供する Model Context Protocol(MCP)サーバーです。LLM が世界中の都市や座標のリアルタイムな大気質データを取得できるようにします。
インストール
Smithery 経由でのインストール
Smithery 経由で AQICN MCP Server を Claude Desktop に自動的にインストールするには:
npx -y @smithery/cli install @mattmarcin/aqicn-mcp --client claude
推奨の uv を使用したインストール(手動)
Python 環境の管理には uv の使用をおすすめします。
# Install the package and dependencies
uv pip install -e .
環境の設定
プロジェクトのルートに .env ファイルを作成します(.env.example をコピーできます)。
# .env
AQICN_API_KEY=your_api_key_here
または、環境変数を直接設定できます。
# Linux/macOS
export AQICN_API_KEY=your_api_key_here
# Windows
set AQICN_API_KEY=your_api_key_here
サーバーの実行
開発モード
サーバーのテストとデバッグを最も手早く行うには、MCP Inspector を使用します。
mcp dev aqicn_server.py
Claude Desktop との連携
サーバーの準備ができたら、Claude Desktop にインストールします。
mcp install aqicn_server.py
直接実行
テストやカスタムデプロイの場合:
python aqicn_server.py
利用可能なツール
1. city_aqi
指定した都市の大気質データを取得します。
@mcp.tool()
def city_aqi(city: str) -> AQIData:
"""Get air quality data for a specific city."""
入力:
city:大気質データを取得する都市名
出力: 次の情報を含む AQIData:
aqi:大気質指数の値station:測定局名dominant_pollutant:主要な汚染物質(利用可能な場合)time:測定時刻coordinates:測定局の緯度と経度
2. geo_aqi
座標を使って、指定した場所の大気質データを取得します。
@mcp.tool()
def geo_aqi(latitude: float, longitude: float) -> AQIData:
"""Get air quality data for a specific location using coordinates."""
入力:
latitude:場所の緯度longitude:場所の経度
出力: city_aqi と同じ
3. search_station
キーワードを使って大気質の測定局を検索します。
@mcp.tool()
def search_station(keyword: str) -> list[StationInfo]:
"""Search for air quality monitoring stations by keyword."""
入力:
keyword:測定局を検索するキーワード(都市名、測定局名など)
出力: 次の情報を含む StationInfo のリスト:
name:測定局名station_id:測定局の一意の識別子coordinates:測定局の緯度と経度
使用例
MCP Python クライアントを使用する場合:
from mcp import Client
async with Client() as client:
# Get air quality data for Beijing
beijing_data = await client.city_aqi(city="beijing")
print(f"Beijing AQI: {beijing_data.aqi}")
# Get air quality data by coordinates (Tokyo)
geo_data = await client.geo_aqi(latitude=35.6762, longitude=139.6503)
print(f"Tokyo AQI: {geo_data.aqi}")
# Search for stations
stations = await client.search_station(keyword="london")
for station in stations:
print(f"Station: {station.name} ({station.coordinates})")
貢献
お気軽にイシューやプルリクエストを作成してください。変更には適切なテストとドキュメントを含めてください。
ライセンス
このプロジェクトは MIT License の下でライセンスされています。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。