mcpField
A
Amtsblick

Amtsblick

リモート
amtsblick.aicodelabs.dev地図・旅行03 週間前に更新
リポジトリ公式サイト

Amtsblick について

Amtsblickは、オーストリアの自治体位置情報と天気予報、河川水位データを組み合わせる個人運営のオープンソースMCPサーバーです。出典、取得時刻、単位を含む地域情報を求めるAIアシスタント向けですが、公式の警報サービスではありません。

主な機能

  1. 01名称、コード、座標で自治体を検索
  2. 02天気予報と短時間降水の表示
  3. 03近隣の水位観測所と河川観測所の検索
  4. 04州別に高水位の状況を分類
  5. 05出典、ライセンス、時刻、単位を掲載

活用シーン

  1. 01オーストリアの自治体の天気を確認
  2. 02近隣の水位観測所と現在水位を検索
  3. 03州ごとの高水位状況を確認

MCP 対応

地点検索、天気、降水量、水位のツールをMCPクライアントに公開します。応答には出典とデータ処理の説明が含まれ、公式警報サービスではないことも明記されます。

設定

リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。

エンドポイントhttps://amtsblick.aicodelabs.dev/mcp
インストールコマンドをコピー
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。

パッケージ
nugetAmtsblick0.1.3-beta

ツール

8
パラメーター型必須説明
ortstringはいGemeindename, optional "Name, Bundesland"; oder fünfstellige GKZ; oder Koordinate "Breite, Länge", z. B. "48.04, 14.42". Bei einem Namen gilt die Prognose für den Gemeindemittelpunkt.
stundenintegerいいえVorhersagezeitraum in Stunden ab jetzt, 1 bis 61. Standard 48.

詳細

Amtsblick

Amtsblick は、オーストリアの公的データを場所ごとに結び付ける MCP サーバーです。AI アシスタントが自治体を尋ねると、出典表記、データ時点、単位とともに、天気や水位を取得します。

Amtsblick は個人によるオープンソースプロジェクトであり、行政機関による公式サービスではありません。

フェーズ 1 では、共通の基盤(場所一覧、出典表記、キャッシュ、利用枠)、天気モジュール(GeoSphere Austria)、水位モジュール(eHYD の水位計)を提供します。以降のモジュールも同じ方式で追加します。

免責事項。 Amtsblick は公式サービスでも警報サービスでもありません。回答には第三者のデータが使われており、遅延、不完全、または誤りを含む場合があります。また、公式の悪天候警報や洪水警報に代わるものではありません。GeoSphere Austria および各州の警報サービスが優先されます。このソフトウェアは保証なしで提供されます(LICENSE を参照)。運用者は、各データソースの利用規約を自ら遵守する責任を負います。 Amtsblick は個人プロジェクトです。Statistik Austria、GeoSphere Austria、BMLUK、および各州の水文サービスは本プロジェクトに関与しておらず、本プロジェクトやデータの加工を承認していません。

ツール

ツール用途
ort_finden(text)名前、GKZ、または座標で自治体を検索
quellen()データソース、ライセンス、表記、最終取得時刻、残りのリクエスト枠
wetter_prognose(ort, stunden = 48)6 時間単位の予報と日別の値
niederschlag_jetzt(ort)今後 3 時間の降水量を 15 分間隔で表示
lage_am_ort(ort)天気、ナウキャスト、最寄りの水位計を 1 回の呼び出しで取得
pegel_in_der_naehe(ort, radius_km = 15)周辺の水位観測所を距離順に表示(最大 20 件)
pegel_an_gewaesser(gewaesser)対象の水域にあるすべての観測所
hochwasserlage(bundesland?)水位が上昇している観測所を段階別に表示

ort には自治体名(入力ミスを含む。「St.」と「Sankt」は同じものとして扱われます)を指定します。必要に応じて補足情報 "Name, Bundesland"、5 桁の GKZ、または座標 "Breite, Länge" を付けられます。名前が複数の場所に該当する場合、データの代わりに候補一覧が返されます。

各回答は簡潔な JSON オブジェクトです。zusammenfassung の行で始まり、quellen と hinweise で終わります。quellen の各項目には、出典、ライセンス本文へのリンク付きライセンス情報、指定された表記、リンク、データセット、該当する場合は DOI、データ時点、Amtsblick によるデータ加工方法が含まれます。

導入方法

方法は 4 通りあります。ホスト型サーバーは https://amtsblick.aicodelabs.dev で稼働しています。パッケージは NuGet.org と MCP Registry に io.github.haraldrohan/amtsblick として登録されています。

方法対象前提条件状態
URL コネクターclaude.ai、Claude Desktop、Claude モバイルなし利用可能
MCP Bundle(.mcpb)Claude Desktop、ローカル環境なし。 .NET も不要利用可能(プレビュー版)
dnx による NuGet パッケージClaude Code、VS Code、Visual Studio.NET 10 SDK利用可能(プレビュー版)
ソースコードから開発.NET 10 SDK利用可能
連絡先

User-Agent は Amtsblick/<version> (+<Repo-URL>; <Kontaktadresse>) です。連絡先は各インスタンスの運用者のものであるため、リポジトリには記載されていません。Amtsblick をローカルで運用する場合は、環境変数 Amtsblick__Kontakt で設定してください。 連絡先が設定されていない場合、水位モジュールはデータを取得しません。 天気と場所の検索は、連絡先がなくても動作します。ホスト型サーバーでは運用者が設定しています。

claude.ai、Claude Desktop、Claude モバイル:URL コネクター

設定 → コネクター → 独自のコネクターを追加し、URL として https://amtsblick.aicodelabs.dev/mcp を指定してください。ログインは不要です。

Claude Desktop ローカル:MCP Bundle

GitHub リリースからamtsblick-<version>-<plattform>.mcpbをダウンロードし、ダブルクリックします。Claude Desktop はインストール時に連絡先のメールアドレスを尋ねます。インストール済みの .NET は不要です。 プラットフォーム:win-x64、osx-arm64(Apple Silicon)、osx-x64(Intel Mac)、linux-x64。サイズはそれぞれ約45 MBです。

初回起動時に、Amtsblick は Statistik Austria の自治体境界データを一度だけダウンロードします(ダウンロード約90 MB、ディスク上で60 MB、所要時間は1~2分)。 その間、ツールは自治体データの読み込み中であることを知らせる応答を返します。読み込み後、データは%LOCALAPPDATA%\Amtsblickまたは ~/.local/share/Amtsblickに保存されます。

Claude Code
# gehosteter Server
claude mcp add --transport http amtsblick https://amtsblick.aicodelabs.dev/mcp

# lokal über NuGet
claude mcp add amtsblick --env [email protected] -- dnx [email protected] --yes
VS Code および Visual Studio

.vscode/mcp.jsonまたは.mcp.jsonに記述します。

{
  "servers": {
    "amtsblick": {
      "type": "stdio",
      "command": "dnx",
      "args": ["[email protected]", "--yes"],
      "env": { "Amtsblick__Kontakt": "[email protected]" }
    }
  }
}

ホスト型サーバーを使う場合は、代わりに{ "type": "http", "url": "https://amtsblick.aicodelabs.dev/mcp" }を指定します。 現在のパッケージバージョンはNuGet.orgに記載されています。

ソースコードから

前提条件:.NET 10 SDK。

dotnet build -c Release
dotnet test

サーバーは引数なしでstdio経由で起動します。Claude Code で使うには、ルートフォルダーに.mcp.jsonファイルを作成します(連絡先のメールアドレスが含まれるため、Gitの対象外です)。

{
  "mcpServers": {
    "amtsblick": {
      "type": "stdio",
      "command": "dotnet",
      "args": ["C:\Pfad\zu\Amtsblick\src\Amtsblick.Server\bin\Release\net10.0\Amtsblick.Server.dll"],
      "env": { "Amtsblick__Kontakt": "[email protected]" }
    }
  }
}

Claude Desktop の場合は、同じエントリをclaude_desktop_config.jsonに記述します。クライアントがサーバーを読み込んでいる間はDLLがロックされます。新しくビルドする前にクライアントを閉じるか、コピーからサーバーを起動してください(dotnet publish -o <Ordner>)。

自治体データはサーバーが初回起動時に自動でダウンロードします。手動で行う場合はscripts/import-gemeinden.shを実行します(Windowsではscripts\import-gemeinden.ps1)。データはリポジトリ内のdata/に保存されます。

セルフホスト

# direkt
[email protected] dotnet run --project src/Amtsblick.Server -c Release -- --http

# als Container
docker build -t amtsblick .
docker run --rm -p 8080:8080 -e [email protected] amtsblick

MCP エンドポイントは/mcp(ステートレスな Streamable HTTP)、状態確認用のエンドポイントは/healthです。 /では簡単なスタートページを、/datenschutzではプライバシー通知を返します。 直接起動した場合、サーバーはhttp://localhost:5210でリッスンし、コンテナー内ではポート8080でリッスンします。

  • **HTTPS:**ホスティングプロバイダーまたは前段のリバースプロキシで提供します。サーバー自体が対応するのはHTTPのみです。
  • **認証なし:**サーバーが読み取るのは公開データのみです。クライアントIPごとにレート制限が適用されます(Http:AnfragenProMinute、既定値60)。超過すると429を返します。
  • **Originの確認:**ブラウザーからのリクエストはHttp:ErlaubteUrspruenge(既定値は https://claude.ai、https://claude.com)およびlocalhostからのみ受け付けます。それ以外には403を返します。Originヘッダーのないリクエスト(サーバー間通信)は許可されます。
  • ホスト名:AllowedHostsには*ではなく公開ホスト名を指定してください(DNSリバインディング対策)。プロキシの背後で運用する場合はHttp:HinterProxyを有効にし、レート制限がX-Forwarded-ForからクライアントIPを取得するようにします。
  • **ログ:**記録するのはメソッド、パス、ステータスコード、所要時間のみです。IPアドレス、リクエスト内容、場所は記録しません。
  • **水位データの事前読み込み:**コンテナーではModule:Wasser:Vorladenが有効です。データは1時間ごとに取得され、取得頻度は1時間に1回のままです。
  • **独自インスタンス:**Amtsblickを自分でホストする場合は、ご自身が運営者となります。Http:Betreiberにご自身の情報を設定し、ビルド前にDATENSCHUTZ.mdを独自のプライバシー通知に置き換えてください。リポジトリ内のファイルはプロジェクト所有者のインスタンスに適用されます。

設定

src/Amtsblick.Server/appsettings.json の Amtsblick セクション。各設定は環境変数としても指定できます(: は __ に置き換えます)。

設定デフォルト説明
Kontakt空User-Agent 用の連絡先アドレス。Wasser モジュールでは必須です
RepoUrlhttps://github.com/haraldrohan/AmtsblickUser-Agent に記載するプロジェクト URL
DatenVerzeichnis空自治体データと最新の水位の保存場所。空の場合はリポジトリ内の data/、それ以外の場合はユーザーのローカルアプリケーションデータフォルダー内の Amtsblick です
AutoImporttrue自治体データがない場合、起動時に自動で読み込みます
Module:Wetter:AktivtrueWetter モジュールと lage_am_ort
Module:Wasser:AktivtrueWasser モジュール
Module:Wasser:Vorladenfalseホスト環境のみ:バックグラウンドで毎時水位データを事前読み込みします
Http:AnfragenProMinute60HTTP トランスポートにおけるクライアント IP ごとのレート制限
Http:ErlaubteUrspruengehttps://claude.ai, https://claude.comブラウザーからのリクエストを受け付けるオリジン
Http:HinterProxyfalse前段のプロキシからの X-Forwarded-For を使ってクライアント IP を取得します
Http:Betreiber空ホームページでの開示に使用する運営者の名前、住所、連絡先

起動時に無効になっているモジュールは登録されません。そのツールは表示されず、データの取得も行いません。Module:Wasser:Aktiv は即座にも反映されます。実行中にプログラムファイルと同じ場所にある appsettings.json の値を false にすると、再起動しなくても eHYD からの以降の取得がすべて停止します。

データソースとライセンス表示

使用しているのは、以下の利用許諾済みデータソースのみです。すべて CC BY 4.0 のもとで提供されており、クレジットを表示すれば商用利用も自由です。データにはデータソースのライセンスが適用されます(NOTICE を参照)。コードは MIT ライセンスです。

データソースデータセット表示(原文どおりに記載)根拠
Statistik AustriaOGDEXT_GEM_1、OGDEXT_POLBEZ_1データソース:Statistik Austria — data.statistik.gv.at利用規約
GeoSphere Austrianwp-v2-1h-1km (DOI)、nowcast-v1-15min-1km (DOI)データソース:GeoSphere Austria - https://data.hub.geosphere.at利用規約、データセットごとのライセンス
eHYD(権利者:BMLUK および各州)i000501:pegel_aktuellデータソース:ehyd.gv.atINSPIRE メタデータ

CC BY 4.0 の要件は、各回答で 2 つの方法により満たしています。要約の末尾には、ライセンスとライセンス文へのリンク、およびデータを換算・要約または加工した旨を表示します。詳細は quellen フィールドに記載します。そこには指定された文言でのクレジット、ライセンスとライセンス文へのリンク、データソースへのリンク、および Amtsblick が変更した内容を記載します。

  • Statistik Austria:境界データから自治体の中心点を算出し、行政区名の表記を統一し、ウィーンを全体として追加しました。
  • GeoSphere Austria:単位を換算しました。予報ではさらに、u/v から風を算出し、値を時間帯ごとおよび日ごとにまとめました。
  • eHYD:ステータスコードを状況、傾向、最新性に置き換え、自治体と距離を追加し、場所、水域、または水位に基づいて選択しました。

回答を共有または公開する場合は、これらの情報を引き継いでください。また、すべての天気の回答には「公式の荒天警報ではありません。」、すべての水位の回答には「公式の警報ではありません。各州の警報サービスが優先されます。」という注意書きが含まれます。

制限と取得パターン

GeoSphere Austria(天気)
  • Dataset API の制限は、インスタンス全体で共有される毎秒 5 件、毎時 240 件のリクエストです。超過すると、API は 429 を返します。
  • Amtsblick は毎秒最大 4 件のリクエストを送信し、x-ratelimit-remaining-hour と x-ratelimit-remaining-second を評価します。現在の状況は quellen() で確認できます。
  • 残りのリクエスト数が 20 件未満になると、キャッシュからのみ応答します。その旨は応答に記載されます。
  • キャッシュキーは、データセットと小数点以下 2 桁に丸めた座標です。地名の場合は自治体の中心点を使用します。予報は 3 時間、またはメタデータから新しい実行が確認されるまで有効です。Nowcast は 15 分間有効です。同じ地点への同時リクエストは、1 回の取得を共有します。
  • メタデータ(last_forecast_reftime)は、データセットごとに 15 分間に 1 回まで確認します。Nowcast の実行時刻が 1 時間以上前の場合、niederschlag_jetzt は「Nowcast は現在最新ではありません」という注記を付けて応答し、時間予報に切り替えます。
  • 取得に失敗した場合、同じ地点へのリクエストは 1 分間再試行しません。
  • GeoSphere の応答が遅い場合、ツール呼び出しはデータを最大 8 秒(メタデータは 3 秒)待ち、その時点で得られたデータを返します。たとえば、niederschlag_jetzt は予報の時間値で応答します。取得処理はバックグラウンドで続行され、次の問い合わせに備えてキャッシュを更新します。このために 2 回目の取得は行いません。
  • 取得するパラメーター:予報は 2t, tp, rain, sf, snowlmt, 10u, 10v, 10fg, tcc, sund、Nowcast は rr, pt, t2m, ff, fx です。kg/m² → mm(1:1)、m/s → km/h、10u/10v → 風速と風向、秒 → 分に変換します。気象記号 sy は出力せず、降水タイプ pt は生の値のまま返します。GeoSphere が公式のコード表を公開していないためです。
eHYD(Peg​​el)

gis.lfrz.gv.at の robots.txt は User-agent: * / Disallow: / です。これはウェブサイトのクローリングを規定するものであり、API の利用はこのサービス向けに公開されているライセンス(CC BY 4.0)によって規定されます。Amtsblick はクローリングを行わず、オープンデータサービスとして公開されているエンドポイントのみを、次のように控えめに呼び出します。

  • 全データの取得は 60 分あたり最大 1 回です。 ホスティング環境では、すべてのユーザーでこの取得を共有します。最新のデータと最後に試行した時刻は data/pegel_aktuell.json に保存されるため、再起動後も制限が適用されます。これは、クライアントがプログラムの起動ごとにサーバーを再起動する stdio では特に重要です。独自のデータディレクトリを持つ複数のインストールは、それぞれ別に数えられます。
  • 最初のツール呼び出しで取得を行い、その後 60 分間は保存データのみを読み込みます。同時に行われる呼び出しは、同じ取得が完了するまで待機します。
  • ツール呼び出しがない場合、インスタンスが稼働中でも取得は行いません。バックグラウンドタイマー(Module:Wasser:Vorladen)はホスティング環境での運用を想定しており、デフォルトでは無効です。
  • 失敗した試行もその時間帯の取得として数え、再試行は行いません。次の試行まで、最後に取得したデータを返し、veraltet: true として示します。
  • 呼び出すのは 3 つの固定アドレスのみです。/collections(Collection ID の特定のため 1 回だけ呼び出し、その後は ID を保存します)、/collections/{id}/items、および OGC API が利用できない場合に限り WFS レイヤー i000501:pegel_aktuell です。応答内のリンクはたどりません。ホストが 403 または 429 を返した場合、2 つ目の方法で再取得することはありません。
  • すべてのリクエストには連絡先を含む User-Agent を付けます。連絡先がない場合、取得は行いません。
  • このモジュールは設定ですぐに無効にできます(上記を参照)。

各 Pegel の応答には、最後に取得したデータの時点が示されます。値は Hydrographischer Dienst の値より最大 1 時間古い場合があります。水位状況(低水位/中水位、増水、洪水レベル 1~3)、傾向、データの新しさは、ソースの gesamtcode に基づきます。Amtsblick は独自の警戒レベルを算出しません。文書化されていないコードは「不明」と表示されます。

両サービスの事前確認記録は、docs/vorab-pruefung.md にあります。

Statistik Austria(自治体)

インポートスクリプトからのみ取得し、稼働中には取得しません。地理データではウィーンは 23 の区として登録されています。Amtsblick は市全体を検索できるよう、旧市街の中心地点を使って「Wien」(GKZ 90001)を集約データとして追加します。

データ保護(プライバシーポリシー)

Amtsblick はリクエストやユーザーデータを保存せず、テレメトリーも送信しません。メモリには取得済みソースデータのみが保存され、ディスクには自治体データと最後に取得した Pegel データのみが保存されます。ソースに送信されるのは、座標(0.01° 単位に丸めたもの)または全データの取得リクエストのみです。ホスティングサーバーが記録するのは、IP アドレスを除くメソッド、パス、ステータスコード、所要時間のみです。詳細な説明は DATENSCHUTZ.md にドイツ語と英語で記載されています。ホスティングサーバーでは /datenschutz から閲覧できます。

構成

src/Amtsblick.Core            Ortsmodell, Quellenvermerk, Cache, HTTP-Basis, Kontingent, Kern-Tools
src/Amtsblick.Modules.Wetter  GeoSphere-Adapter und Tools
src/Amtsblick.Modules.Wasser  eHYD-Adapter und Tools
src/Amtsblick.Server          MCP-Host (stdio und Streamable HTTP), lage_am_ort, Import, NuGet-Paket
tests/                        Tests je Projekt; Fixtures sind gespeicherte Antworten der echten Dienste
scripts/                      Import der Referenzdaten, Bau der Programmdateien und MCP Bundles
packaging/                    Manifest für das MCP Bundle
docs/                         Prüfprotokoll, Stand der Auslieferung
infra/                        Einrichtung und Beschreibung des Hostings in Azure
data/                         importierte Referenzdaten (nicht eingecheckt)

テストはすべてネットワーク接続なしで実行できます。

ライセンス

コード:MIT。データ:各ソースのライセンスについては NOTICE を参照してください。

貢献に関するガイドライン:CONTRIBUTING.md。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。