open-signals について
open-signalsは、地図や公共・環境データを扱う開発者やエージェント向けの公開データカタログ兼サービスです。出典、取得時刻、ライセンスを付けた形式にデータを整え、CLI、REST、MCP、GeoJSONから利用できます。
主な機能
- 01公開データソースのカタログ
- 02出典とライセンス付きの標準化された観測値
- 03災害・水文・気象などの取得処理
- 04REST APIとOpenAPI仕様
- 05GeoJSONレイヤーと静的データセット
- 06検索とデータ取得のCLI
活用シーン
- 01取得処理の実装前にデータ範囲とライセンスを確認
- 02地図向けに地震や洪水の観測値を取得
- 03現在の水位や気象データを参照
- 04MCP経由でエージェントに公開データセットを提供
MCP 対応
`/mcp`でストリーマブルHTTPによるステートレスな読み取り専用MCPサーバーを提供します。ツールでデータソース、観測値、場所を検索し、レイヤーやデータセットを一覧・取得できます。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://open-signals.civops.io/mcpclaude mcp add --transport http civops-platform-open-signals https://open-signals.civops.io/mcp{"mcpServers":{"civops-platform-open-signals":{"type":"http","url":"https://open-signals.civops.io/mcp"}}}Cursor で開く{"servers":{"civops-platform-open-signals":{"type":"http","url":"https://open-signals.civops.io/mcp"}}}VS Code で開く{"mcpServers":{"civops-platform-open-signals":{"type":"http","url":"https://open-signals.civops.io/mcp"}}}{"mcpServers":{"civops-platform-open-signals":{"serverUrl":"https://open-signals.civops.io/mcp"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
ツール
9| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| query | string | いいえ | 名前、ID、対象範囲、トピック、ライセンスの注記との照合に使う語句。 |
| topic | string | いいえ | トピックを 1 つ指定します。例:weather、water、fires、flights、energy。 |
| license | enum | いいえ | public_domain | open | non_commercial | restricted | unknown |
| fetchable | boolean | いいえ | true:このサーバーが現在取得できるソースのみ。false:カタログに登録されたソースのみ。 |
詳細
open-signals
地図とエージェントですぐに使える公開データです。各観測値には、データの出所、取得日時、適用されるライセンスが記録されています。
open-signals は 3 つの要素で構成されています。
-
カタログ:公開データソースの一覧(
catalog/sources.json)です。各項目には、API、対象範囲、更新頻度、必要なキー、ライセンスが記載されています。気象、水、氷、災害、航空機、船舶、衛星、エネルギー、排出量、届出、貿易などを網羅しています。新たなフェッチャーを書く前に確認する一覧です。 -
フェッチャー:現在読み取っているデータソース向けのフェッチャーです。それぞれが上流からの応答を、reading という統一形式に変換します。
{ "id": "noaa-coops:9063085:2026-10-10", "at": "2026-10-10", "metric": "water_level", "value": 2.762, "unit": "ft above LWD", "summary": "Lake Erie at Toledo 2026-10-10: mean 2.76 ft above low water datum (…)", "place": { "id": "coops-toledo", "name": "Lake Erie at Toledo", "lat": 41.6936, "lng": -83.4723 }, "fields": { "station": "9063085", "datum": "LWD", "readings": 155 }, "source": { "id": "noaa-coops", "name": "NOAA CO-OPS water levels", "url": "https://tidesandcurrents.noaa.gov/…", "fetched_at": "2026-10-10T19:12:03Z", "license": "public_domain" } } -
利用方法:CLI、OpenAPI の説明を備えた REST API、エージェント向け MCP サーバー、GeoJSON マップレイヤーを利用できます。実行時の依存関係はなく、Node 20 以降が必要です。
使い方
https://open-signals.civops.io でパブリックインスタンスが稼働しています(REST は /v1、MCP は /mcp)。パブリックドメインおよびオープンなデータソースのみを提供し、上流サービスのキーは保持せず、IP ごとにレート制限を適用しています。https://open-signals.civops.io/v1/layers/volcanoes?elevated=true をお試しください。
git clone https://github.com/Civops-Platform/open-signals && cd open-signals # Node 20+, no npm install needed
alias open-signals='node bin/open-signals.mjs'
open-signals sources fires # search the catalogue
open-signals sources --topic water --fetchable
open-signals fetch usgs-earthquakes --min 4.5 --window week
open-signals fetch noaa-coops --coops 8518750 # any CO-OPS station
open-signals fetch open-meteo --lat 41.5 --lng -81.7
open-signals layer water_level # GeoJSON
open-signals serve --port 3290 # REST + MCP
fetch と layer は、お手持ちのキー(NASS_API_KEY、EBIRD_API_KEY)を使ってご利用のマシン上で実行します。CLI は各データソースのライセンスを表示するため、取得したデータをどのように利用できるかを確認できます。
REST
GET /v1/sources?query=&topic=&license=&fetchable= | カタログを検索 |
GET /v1/sources/{id} | 1 件の項目を取得 |
GET /v1/hubs | データソースを収集するプロジェクト(下記) |
GET /v1/places?tag= | 名前付きの場所を GeoJSON で取得 |
GET /v1/readings?source={id}&place=&tag=&lat=&lng=&coops=&usgs=&ebird=&state=&bbox=&metric=&since=&limit= | 観測値を取得 |
GET /v1/layers · GET /v1/layers/{id}?date= | マップレイヤーを GeoJSON で取得 |
GET /openapi.json | 完全な説明 |
CESMII i3X
同じレイヤーを、https://open-signals.civops.io/i3x/v1 にある読み取り専用の CESMII i3X 1.0 エンドポイントでも提供しています。アドレス空間にはルート、レイヤーごとのフォルダー、場所またはイベントごとのオブジェクトがあります。各オブジェクトの値は、その場所またはイベントの最新の観測値(値、品質、タイムスタンプ)で、データソースとライセンスも含まれます。履歴には、その場所について保持しているすべての観測値が含まれます。サブスクリプションでは、同期とサーバー送信イベントのストリームに対応しています。
CESMII の適合性テストスイート(ビルド 6、2026 年 10 月 10 日実行)では、i3X 1.0 Compatible と評価されています。50 件合格、0 件失敗、10 件スキップです(レポート)。スキップされたのは書き込みテストです。完全な準拠には書き込みが必要ですが、公開データを再公開するサーバーには書き込むものがありません。
仕様ではデータエンドポイントで認証が必須とされているため、無料のパブリック読み取り専用トークンを用意しています。
os-public-read(Authorization: Bearer os-public-read を送信してください)。GET /i3x/v1/info には認証は不要です。
静的データセット
変化の緩やかなデータは、リアルタイムで取得するのではなく、GeoJSON ファイルとして提供されます。過去 20 年分の山火事焼失区域(NIFC WFIGS および USFS MTBS。州ごとに 1 ファイル)、郡ごとの公有地の割合(USGS PAD-US 4.1)、連邦政府のキャンプ場(RIDB)、火災気象観測所(RAWS)があり、いずれもパブリックドメインです。GET /v1/datasets は、データソース、ライセンス、パーツとともに一覧を返します。GET /v1/datasets/{id}/{part} は 1 つのパーツ(2 文字の州名、または all)を返します。デプロイ時には、ファイルと index.json を格納したフォルダーを OPEN_SIGNALS_DATA_DIR で指定します。形式については src/datasets.js を参照してください。
MCP
POST /mcp はストリーム可能な HTTP トランスポート(JSON-RPC 2.0)を使用します。ステートレスで、認証は不要です。すべてのツールは読み取り専用です。
search_sources、get_source、list_hubs、list_placesget_readings、list_layers、get_layerlist_datasets、get_dataset_part
クライアントに追加するには:
{ "mcpServers": { "open-signals": { "type": "http", "url": "https://open-signals.civops.io/mcp" } } }
ライセンス:サーバーが再配信する内容
コードは Apache-2.0 です。**データのライセンスを再設定する権利はありません。**各ソースには独自の利用条件があり、データを読み取るたびにライセンスも付随します。稼働中のサーバーはデータを再配信するため、次の基準を適用します。
| ライセンス | 例 | 提供 |
|---|---|---|
public_domain | NOAA、USGS、USDA、NASA FIRMS、SEC | 常に提供 |
open | CC BY、ODbL(OpenStreetMap、adsb.lol、ECMWF、GDELT) | 常に提供。帰属表示も付随します |
non_commercial | Open-Meteo free tier、eBird、OpenSky | OPEN_SIGNALS_NONCOMMERCIAL=1 の場合のみ(非商用のデプロイを運用している場合) |
restricted | Google 3D Tiles、TomTom | 提供しません |
unknown | まだ審査されていないもの | 提供しません |
拒否されたソースは、ライセンスと理由を添えて 451 を返します。CLI で自分用に取得する場合は再配信に当たらないため、この制限は適用されません。
現在のフェッチャー
| ソース | 内容 | キー |
|---|---|---|
usgs-earthquakes | 期間とマグニチュードの下限を指定した、世界各地の地震 | — |
usgs-volcanoes | 監視対象の米国の全火山の警戒レベルと航空カラーコード | — |
noaa-nwps | 範囲内にあるNOAAの全観測所の河川水位と洪水カテゴリ(観測値および予測値) | — |
epa-echo | コンプライアンス状況と罰金を含む、州内のEPA規制対象主要施設 | — |
openfda-recalls | 過去60日間のFDAによる食品、医薬品、医療機器のリコール。企業のZIPコードで検索 | — |
usaspending | 過去30日間に新たに発注された連邦契約のうち金額上位100件。履行場所のZIPコードで検索 | — |
gbif | 過去2週間のオープンライセンス(CC0、CC-BY)の野生生物と植物の観察記録。世界各地を対象に、分類群と範囲で検索 | — |
nasa-eonet | 世界各地の自然現象(嵐、山火事、火山、洪水、氷)の最新位置 | — |
world-bank | 首都の位置における国別の世界銀行指標:GDP成長率、インフレ率、製造業、輸出、FDI、失業率 | — |
emsc | EMSC-CSEMによる世界各地の地震(ヨーロッパに最も集中、CC BY 4.0)。期間とマグニチュードの下限を指定 | — |
noaa-ibtracs | 活動中のすべての熱帯低気圧について、各海盆における最新のベストトラック位置 | — |
eurostat | 国別の鉱工業生産(指数または前年同月比)。最新月の首都の値 | — |
gem-trackers | Global Energy Monitor Global Integrated Power Tracker(CC BY 4.0、2026-08リリース):50 MW以上の稼働中または建設中の発電所を、国、燃料、状態別に表示(2021年以降更新されていないWRIデータベースを置き換え) | — |
openfema | 過去90日間のFEMA災害宣言。郡(または州)の地点で検索 | — |
usda-ams-barge | ミシシッピ川、イリノイ川、オハイオ川、アーカンソー川の7つの閘門における、週ごとの下流向け穀物輸送量(USDA AMS、USACE LPMS由来) | — |
bts-border-crossings | 米国とカナダ、米国とメキシコの各入国港における入国トラック、列車、車両の台数。最新月 | — |
epa-tri | 有害物質排出目録:州内の施設ごとの敷地内排出量。最新報告年 | — |
epa-campd | EPAのキー不要一括ファイルによる、州内の発電所ごとのCO2、SO2、NOx排出量。最新月 | — |
noaa-coops | 任意のCO-OPS観測所の水位(五大湖ではLWD、潮汐観測所ではMLLW) | — |
usgs-water | 任意のUSGS観測所の河川流量と水位 | — |
glerl | 五大湖の氷被覆(12月から5月) | — |
usda-nass | 全国および州別の毎週の作物生育状況と作柄 | NASS_API_KEY(無料) |
open-meteo | 任意の場所の日別天気。過去92日分と今後7日分 | —(非商用) |
waterfowl-wsi | Open-Meteoのデータを用いた、アヒルの気象厳しさ指数(Schummer et al. 2010) | —(非商用) |
ebird | 過去7日間にeBird地域で報告された水鳥 | EBIRD_API_KEY(無料、非商用) |
open-meteo-flood | 世界各地の約100か所の大河川地点における、今日のGloFAS河川流量。過去1週間の変化と30日間のアンサンブル最高値を含む | —(非商用) |
open-meteo-air | 大都市150か所における、CAMSによる現在のモデル推定大気質:米国AQI、欧州AQI、PM2.5、PM10 | —(非商用) |
adsb-lol | adsb.lol受信ネットワーク(ODbL)からの航空機のリアルタイム位置。任意の地点周辺(mode=area)、世界各地の軍用機フラグ付き航空機すべて(mode=military)、または航空機の位置精度から推定した1°グリッドごとのGPS干渉(mode=gps、GPSJam方式)。FAAのLADDおよびPIAプライバシープログラム対象の航空機は提供されません | — |
nasa-firms | キー不要のNASA FIRMSグローバルファイルによるVIIRS熱検知:過去24時間の火災(mode=fires)、過去7日のうち3日以上に高温を記録した約1 kmの地点(mode=persistent、産業施設、フレア、火山からの派生データ)、およびGlobal Energy Monitorの4つのトラッカーに含まれるすべての高温地点について、熱が検知された日数、所有者、親会社を表示。対象は高炉・DRI製鉄所(mode=steel)、セメント窯(mode=cement)、化学工場(mode=chemicals)、油田・ガス田(フレアリング、mode=oil_gas)。すべて派生データ | — |
nws-alerts | 有効なNational Weather Serviceの注意報、警報、勧告。郡ごと、警報ごとに1地点。州、種類、または事象で検索 | — |
usbr-rise | 西部の約215か所の貯水池における、Reclamation Bureauの日次貯水量(RISE)と過去1週間の変化。Reclamation地域別に検索 | — |
digitraffic-ais | フィンランド海域およびバルト海南部における船舶のリアルタイム位置(Fintraffic、CC BY 4.0)。船名、種類、目的地を含む。プレジャーボートは提供されません | — |
corroboration | 派生データ:同じ事象を独立した2つのソース、または1つのソースで確認。USGSとEMSCの地震(USGSネットワークから中継された解も1件として計上)、およびFIRMS衛星熱検知と照合した米国の山火事事案 | — |
smithsonian-gvp | Smithsonian Volcanoes of the World:1900年以降に噴火した世界各地の火山と、現在噴火中の火山 | —(非商用) |
観測値、モデル値、派生値
センサーの読み取り値と、そこから導き出された結論は同じものではないため、読み取り値にはどちらなのかが示されています。
basis がない場合は、何らかの機器(計器、地震計、受信機)による観測値です。basis: "modelled" はモデルの出力です(Open-Meteo の気象、GloFAS の流量、CAMS の大気質)。basis: "derived" は他の読み取り値から推定されたもので、何を基にしたのかを derived_from で示します(航空機の NACp に基づく GPS 干渉、モデル化された気象に基づく duck Weather Severity Index、FIRMS の検出に基づく継続的な高温と製鉄所の熱、および裏付け。裏付けでは、1 つのイベントに関する 2 つの情報源を組み合わせ、見かけ上の 2 つ目の情報源が実際には 1 つ目の情報源を中継しているだけの場合にそれを示します)。レイヤーのフィーチャーには必ず basis が含まれます。
カタログの残りの項目も一覧にありますが、まだデータを取得していません。最も有益な貢献はフェッチャーの追加です。CONTRIBUTING.md をご覧ください。
ハブ
catalog/hubs.json には、毎回ゼロから検索しなくて済むよう、ウォッチしているプロジェクトが記載されています。
- God's Eye View(Bilawal Sidhu、Sameh Khamis)
- World Monitor
- OSIRIS、WorldWideView
- Shadowbroker、ULTOR、Gemini / Claude Earth(God's Eye View のレシピを基にしたコミュニティ製ビルド)
- 公式の MCP Registry、awesome-mcp-servers
- Source Cooperative、AWS Open Data レジストリ、Data.gov、public-apis
これらのいずれかを通じて情報源が見つかった場合、そのエントリーの found_via に記録されます。
実行方法
npm test # offline, upstreams stubbed
npm run test:live # every fetcher against its real upstream, then REST and MCP
PORT=3290 npm start
| 変数 | 意味 |
|---|---|
PORT | デフォルトは 3290 |
OPEN_SIGNALS_NONCOMMERCIAL=1 | このデプロイは非商用であり、非商用の情報源を再公開する場合があります |
RATE_LIMIT_PER_MIN | クライアント IP ごとの制限。デフォルトは 60 |
TRUST_PROXY=1 | プロキシの背後にある場合、X-Forwarded-For からクライアント IP を読み取ります |
レスポンスは情報源、場所、パラメーターごとにメモリ内にキャッシュされます(地震は 2 分、週次の情報源は最大 6 時間)。これにより、上流サービスへのアクセスを適切な頻度に抑えます。
保証について
open-signals は、公共機関やプロジェクトが公開した情報を、そのまま提供します。読み取り値は、上流で遅延していたり、暫定値だったり、修正されたり、誤っていたりする場合があります。本ソフトウェアは現状のまま提供されます(LICENSE をご覧ください)。また、誤った読み取り値が許容されない航行、安全、その他の判断には使用しないでください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。