mcpField
O
osm-tagging-schema-mcp

osm-tagging-schema-mcp

ローカル
github.com/gander-tools地図・旅行8今日更新

osm-tagging-schema-mcp について

AI エージェントや LLM アプリケーション向けの OpenStreetMap タグスキーマ MCP サーバーです。概念実証としてローカルのスキーマデータを検索し、決定的な検証や形式変換を行います。OSM のネットワークには接続せず、サーバー内で AI も実行しません。

主な機能

  1. 01タグのキーと値の検証
  2. 02タグ値とプリセットの参照
  3. 03タグとプリセットの検索
  4. 04タグ集合の比較
  5. 05フラット形式と JSON の変換

活用シーン

  1. 01一般的な OSM タグのスキーマ適合確認
  2. 02プリセットと詳細の参照
  3. 03異なるタグ集合の比較
  4. 04フラット形式と JSON の相互変換

MCP 対応

タグの検証、参照、検索、比較、形式変換を行う MCP ツールをクライアントに公開します。stdio と HTTP に対応し、@openstreetmap/id-tagging-schema に含まれるスキーマデータを使って応答します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"gander-tools-osm-tagging-schema": {
"command": "npx",
"args": [
"-y",
"@gander-tools/osm-tagging-schema-mcp"
]
}
}
}
起動コマンドnpx -y @gander-tools/osm-tagging-schema-mcp

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npm@gander-tools/osm-tagging-schema-mcp3.0.1

ツール

9

掲載時のツール一覧 · 2 週間前に更新

パラメーター型必須説明
tagsstringはいOpenStreetMap タグのフラットテキスト形式で、各行に key=value のペアを 1 つ記述します。各行には、"key=value" 形式のタグをちょうど 1 つ記述してください。コメント行(# で始まる行。無視されます)、空行(スキップされます)、さまざまな改行コード(LF、CRLF、CR)に対応しています。値に等号が含まれる場合、区切り文字として扱われるのは最初の = のみです。例:"amenity=restaurant\nname=Test Cafe\ncuisine=italian\n# This is a comment\nopening_hours=Mo-Su 10:00-22:00"。すべてのキーと値の前後の空白は削除されます。空の値はエラーになります。

詳細

OpenStreetMap タグ付けスキーマ MCP サーバー

Test Fuzzing Release Docker

npm downloads GitHub Release

TypeScript MCP SDK OSM Schema

Code Quality NPM Provenance SLSA 3

License: GPL-3.0 Last Commit GitHub Issues GitHub PRs

これは何ですか?

これは、AI エージェントや LLM アプリケーション向けに特別に設計されたModel Context Protocol(MCP)サーバーです。AI システムと、公式の @openstreetmap/id-tagging-schema ライブラリが提供する包括的な OpenStreetMap タグ付けナレッジベースをつなぐ役割を果たします。

プロジェクトの状況

このプロジェクトは概念実証です。特定の領域では実用的な価値を提供する一方、ほかの領域には既知の不足点があります。どちらについても、以下で率直に説明しています。

  • 最新のタグ付けスキーマである @openstreetmap/id-tagging-schema v7 に対応しています。
  • より優れた代替ツールを開発中です。当初の予定より遅れて公開されますが、日程は確約していません。

バグの報告やアイデアの提案は、issueを開くか、discussionを開始してください。

動作の仕組み

サーバーは stdio(デフォルト)または HTTP で動作し、タグ付けスキーマを MCP ツールとして公開します。各ツールは @openstreetmap/id-tagging-schema に同梱されているスキーマデータ(プリセット、フィールド、非推奨タグ、翻訳)を読み取り、そのデータに基づいて決定論的に回答します。OSM へのネットワークアクセスはなく、サーバー内に AI もありません。AI エージェントがツールを呼び出し、結果を解釈します。

検証では、タグがスキーマに照らしてチェックされます。キーが既知かどうか、値が一致するフィールドで許可されているかどうか、キーまたは値が非推奨で置き換え案があるかどうかを確認します。

できることとできないこと

このツールには制限があります。利用する前に、どのような動作を期待できるか確認してください。回答の根拠はスキーマデータのみであり、実際に使われているタグや OSM wiki にあるタグの一部は網羅されていません。

ツールできること制限
validate_tagよく使われるタグは 100% 受け入れられます。誤った deprecated 警告はほぼありません(99.2%)。wiki で非推奨とされるタグの約 20% しか検出できません。タイプミスや外国語の値も有効として受け入れられます(カスタムタグが許可されているため)。railway=platform と railway=station は誤って非推奨と判定されます
validate_tag_collectionvalidate_tag と一貫した結果を返します(100%)。validate_tag と同じ不足があります。制御文字は報告されません
suggest_improvementsよく使われるタグの 92% でプリセットが一致しますタイプミスや外国語の値では、問題の報告ではなく候補が提示されることがほとんどです
get_tag_valuestaginfo の値の 97% が含まれます。不正なキーと上限値は拒否されますリストに含まれていない taginfo の値が少数あります
search_tags名前からキーの 60% を見つけますあいまい検索の説明に反して、タイプミスは許容されません。コロンを含むキー(addr:street)は見つからないことがよくあります。limit が 0 または負の値でも、常に拒否されるわけではありません。access は key のない keyMatches 項目を返します
search_presetsよく使われるタグの 69% でプリセットが見つかります(上位 3 件では 56%)。複数単語のクエリ(bicycle parking)では何も返されないことがあります。順位付けは弱く、limit が 0 または負の値でも、常に拒否されるわけではありません
get_preset_detailsよく使われるタグの 93% にプリセットが存在し、不明な ID は常に拒否されます人気のあるタグの一部(例:historic=*、craft=grinding_mill、`railway=stop)にはプリセットがありません
compare_tagsローカル計算と一致します(100%)。テキスト入力と JSON 入力で同じ結果が得られます任意のタグセットを比較するため、タグが間違っているとは判定しません。不正な入力のみ拒否されます
flat_to_json;、スペース、=、Unicode、:、/ を含め、情報を損なわずに変換します重複キーと制御文字は黙って受け入れられます
json_to_flat情報を損なわずに往復変換できます(100%)。不正な入力は拒否されますキーはアルファベット順に並べ替えられず、入力順が維持されます

すべてのツールで、不正な入力によってサーバーがクラッシュすることはありませんでした。エラーは読みやすい形式で返されるか、空のリストが返されます。

概要

決定論的なロジックで十分な場面で役立ちます。たとえば、形式の変換、タグセットの比較、プリセットや値の読み込み、一般的なタグの検証です。苦手な分野は、非推奨タグの検出と検索(タイプミス、複数の単語、コロン付きのキー)です。

これは何ではないか

⚠️ 重要な補足:

  • 単体で動作するアプリケーションではありません:このサーバーを活用するには、Claude Code や Claude Desktop などの AI システムとの連携が必要です。ユーザーインターフェイスもウェブフロントエンドもありません。
  • 人が直接使用するためのものではありません:仲介する AI エージェントがなければ、このツールはエンドユーザーに価値を提供しません。LLM アプリケーションからのプログラムによるアクセス専用に設計されています。

ユーザー向けの OSM タグ付けツールをお探しの場合は、代わりに iD エディター または JOSM をご検討ください。

インストール

Claude Code にサーバーを追加します(stdio):

# npx
claude mcp add --transport stdio osm-tagging-schema -- npx -y @gander-tools/osm-tagging-schema-mcp

# Docker
claude mcp add --transport stdio osm-tagging-schema -- docker run -i --rm ghcr.io/gander-tools/osm-tagging-schema-mcp:latest

HTTP トランスポート

stdio がデフォルトです。HTTP 経由(ストリーミング可能、Docker イメージではポート 3000)で提供するには、TRANSPORT=http を設定します。

変数デフォルト意味
TRANSPORTstdiostdio または http
PORT3000HTTP ポート
HOST0.0.0.0HTTP バインドアドレス
CORS_ORIGINShttp://localhost:6274,https://mcp.ziziyi.com許可する CORS オリジン(カンマ区切り)
LOG_LEVELINFOSILENT、ERROR、WARN、INFO、DEBUG
docker run --rm -p 3000:3000 -e TRANSPORT=http ghcr.io/gander-tools/osm-tagging-schema-mcp:latest

エンドポイント:GET /health(稼働状態)、GET /ready(スキーマの読み込み状態)、GET /version。

ライセンス

GNU General Public License v3.0 — 詳細については LICENSE ファイルをご覧ください。

コメント

MCP は初めてですか?

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

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