mcpField
M
mcp-atlas

mcp-atlas

ローカル
github.com/urbankitstudio法務・行政11 週間前に更新

mcp-atlas について

mcp-atlasは、米国の郡の土地筆情報や都市データサービスを、利用可能なクエリURLに対応付けるMCPサーバーです。AIクライアントで所有者、APN、住所、市のデータセットを調べる用途向けで、検証済みのエンドポイント情報を示しますが、土地筆レコード自体は取得しません。

主な機能

  1. 01郡のカバレッジと検索機能の確認
  2. 02曖昧な郡名やFIPSコードの特定
  3. 03土地筆エンドポイントとフィールドの取得
  4. 04所有者検索用クエリURLの生成
  5. 05市の違反、許可、ゾーニングデータの検索

活用シーン

  1. 01デューデリジェンス用の郡土地筆サービスの特定
  2. 02所有者名による土地筆クエリの準備
  3. 03道路名から許可や違反データを探す

MCP 対応

郡・市のデータセットのカバレッジ、エンドポイント情報、フィールド、実行可能なクエリURLを返すツールを提供します。クエリの実行や土地筆レコードの返却は行いません。

設定

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

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

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

パッケージ
npm@urbankitstudio/mcp-atlas0.3.10

ツール

4

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

パラメーター型必須説明
statestringいいえ任意:州の 2 文字略称(例:'IL')または州名の正式名称(例:'Illinois')

詳細

Socket Badge

@urbankitstudio/mcp-atlas

mcp-atlas MCP server

米国の51州(50州とDC)にまたがる499郡の区画ArcGIS RESTエンドポイント(合計497件)にアクセスし、Model Context Protocol(MCP)経由で所有者、APN、住所を検索します。

AI アシスタントが、UrbanKit Studio の手動検証済み郡区画GISサービスのアトラスに直接アクセスできる MCP サーバーです。Claude や Cursor に、対象地域のArcGIS RESTエンドポイント、所有者検索用の正確なクエリURL、区画データを調べるよう依頼できます。ArcGIS REST APIの規約を知っている必要はありません。

対象範囲: 米国の51州(50州とDC)にまたがる499郡、497エンドポイント、そのうち497件が稼働中(アトラス 0.6.40)。470郡にはエンドポイントがあります。残りの29郡については、アトラスに提供できない理由が記録されています(下記「提供できない郡」参照)。


クイックスタート

Claude Desktop

~/Library/Application Support/Claude/claude_desktop_config.json(macOS)または %APPDATA%\Claude\claude_desktop_config.json(Windows)に追加します。

{
  "mcpServers": {
    "mcp-atlas": {
      "command": "npx",
      "args": ["-y", "@urbankitstudio/mcp-atlas"]
    }
  }
}
Cursor

プロジェクトのルートにある .cursor/mcp.json(または全体設定の ~/.cursor/mcp.json)に追加します。

{
  "mcpServers": {
    "mcp-atlas": {
      "command": "npx",
      "args": ["-y", "@urbankitstudio/mcp-atlas"]
    }
  }
}
グローバルにインストール(任意)
npm install -g @urbankitstudio/mcp-atlas

以降は、npx -y @urbankitstudio/mcp-atlas の代わりに mcp-atlas をコマンドとして使用します。


ツール

最初の4つのツールは郡を調べる一連のワークフローで、郡をどれだけ正確に特定できるかによって使い分けます。5つ目の get_city_datasets は別のツールで、郡ではなく都市について回答します。

手元にある情報使用するツール得られる情報
州、または情報なしlist_counties対象となる郡と、その郡で所有者検索が機能するかどうか。URLはありません。
あいまいな郡名、誤記、またはFIPSコードfind_countyその参照に一致するすべての郡。各郡の名前とレコード
正確な州と郡get_parcel_endpointその郡のエンドポイントURL、レイヤー、フィールド、サンプルクエリ
郡と所有者名build_owner_queryその名前を検索する実行可能なURL
都市名と、任意で通り名get_city_datasetsその都市の条例違反、建築許可、ゾーニング案件の各データセットと、実行可能なクエリURL

find_county と get_parcel_endpoint は、郡ごとに同じレコードを返します。違いは郡の指定方法です。find_county は不確かな参照を受け付け、複数の候補を返す場合があります。一方、get_parcel_endpoint は正確な州と郡の組み合わせを受け取り、1つの郡について回答します。すでに郡がわかっている場合は、find_county を使う必要はありません。

このサーバーはクエリを実行せず、区画レコードも返しません。取得先のURLを伝えるだけです。URLからデータを取得するのはご自身で行ってください。

提供できない郡

find_county、get_parcel_endpoint、build_owner_query は、エンドポイントを返せない郡に対して、1つの回答を返します。これは、ホスト版 UrbanKit MCP サーバー、REST API、uks CLI が返すものと同じです。この回答は @urbankitstudio/atlas 0.6.38 の coverageAnswer() によるものです。

  • アトラスにレコードがない場合(誤記もここに該当します):「This county is not in the UrbanKit atlas」と表示し、まずスペルを確認するよう促します。
  • アトラスに郡の記録があるものの、提供可能なデータが公開されていない場合(公開表示が利用規約で禁止されているShelby TN、区画番号しかないColumbia PAなど):理由を1文で説明し、最後に確認した日付、次回確認日が設定されている場合はその日付、郡の担当窓口、および郡がデータを販売している場合は独自の製品を案内します。

どちらの場合も、郡の追加を無料でリクエストする方法を案内します。ホスト版MCPサーバーの request_county にそのまま渡せる本文、または POST https://urbankitstudio.com/api/atlas/request を用意しています。リクエストしても、郡が追加されるとは限りません。list_counties には引き続き、提供対象の郡のみが表示されます。

list_counties

対象範囲を確認します。「この郡は対象ですか?」「そこで何を検索できますか?」という質問に答えます。エンドポイント URL やフィールド名を含めず、郡ごとに1行で表示します。

ParameterTypeRequiredDescription
statestringNo2文字の略称(IL)または正式名称(Illinois)

プロンプトの例:「Illinois で対象となる郡をすべて一覧表示してください」

出力例:

ST | County               | Slug                     | Coverage
--------------------------------------------------------------------
IL | Kane                 | kane-county              | owner+APN
IL | Cook                 | cook-county              | APN only
IL | DuPage               | dupage-county            | owner+APN
...

各 Coverage ラベルが示す内容:

LabelMeaning
owner+APNbuild_owner_query が少なくとも1つのエンドポイントの URL を返します
APN only (county publishes no owner name)確認済みの記録によると、その郡は利用可能な所有者名を提供していません
location queries only属性検索に対応するエンドポイントはありません。区画はジオメトリで特定でき、所有者フィールドも返されます
APN only (owner column not searchable)所有者列はありますが、その郡では名前による検索対象としていません。区画 ID または位置情報によるクエリで取得できます
APN onlyエンドポイントに所有者列の記載がありません

find_county

正確に指定できない郡名を特定します。対象となるすべての郡を対象に、部分一致または誤記された名前、「County State」という形式の語句、または5桁の FIPS コードをあいまい検索します。一致した郡をそれぞれ表示するため、参照先が曖昧な場合は選択肢の一覧が返されます。一致ごとに、その郡の記録(エンドポイント URL、検索可能なフィールド名、所有者フィールド、サンプルクエリ、ライセンス)が含まれます。

ParameterTypeRequiredDescription
querystringYes郡名(Kane)、郡名と州名(Kane IL)、または FIPS コード(17089)

プロンプトの例:「Illinois の Kane County の区画エンドポイントを探してください」


get_parcel_endpoint

郡が特定できている場合に使う、標準の検索ツールです。完全な ArcGIS REST URL、レイヤーインデックス、検索可能なフィールド、所有者フィールド(または所有者検索を提供しない理由)、レイヤーが州全域または地域で共有されている場合は郡の Scope: 条件、汎用サンプルの ?where=…&f=json クエリ、および郡の UrbanKit ディープリンクを返します。所有者名を指定する場合は、サンプルクエリを手動で編集せず、build_owner_query を使用してください。

ParameterTypeRequiredDescription
statestringYes2文字の略称または正式名称
countystringYes郡名(Kane または Kane County)

プロンプトの例:「Illinois の Cook County の ArcGIS REST エンドポイントを教えてください」


build_owner_query

所有者名を指定して検索する唯一のツールです。個人名または会社名を、郡で確認済みの所有者/納税者フィールドに UPPER(field) LIKE UPPER('%NAME%') として設定します。これは大文字と小文字を区別しない部分一致検索で、取得または開くことのできる URL を返します。Connecticut の地域統合レイヤーなど、州全域または地域で共有されているレイヤーでは、郡のスコープ条件を前置して AND で結合し、(scope) AND UPPER(field) LIKE … とすることで、その郡の行だけを返します。

検索結果が得られない、または処理が停止するクエリを渡す代わりに、エンドポイントを利用できない理由を示します。

  • 確認済みの記録によると、その郡は利用可能な所有者名を提供していません。
  • レイヤーは属性検索にまったく対応していません(代わりに位置情報でクエリしてください)。
  • 所有者列は名前による検索に対応していません(代わりに区画 ID または位置情報でクエリしてください)。
ParameterTypeRequiredDescription
statestringYes2文字の略称または正式名称
countystringYes郡名
owner_namestringYes所有者/納税者名(部分一致)

プロンプトの例:「Illinois 州 Kane County で 'Smith' が所有する物件の ArcGIS クエリを作成してください」

出力例:

County:       Kane, Illinois
Owner field:  TaxName
WHERE clause: UPPER(TaxName) LIKE UPPER('%SMITH%')

Query URL:
https://gistech.countyofkane.org/arcgis/rest/services/KanePINList/MapServer/0/query
  ?where=UPPER(TaxName)%20LIKE%20UPPER('%25SMITH%25')
  &outFields=PIN,TaxName,SiteAddress,SiteCity,MailingAddress
  &returnGeometry=false&f=json&resultRecordCount=25

get_city_datasets

市の規則違反、建築許可、ゾーニング案件のデータセットです。市のスラッグ(fort-worth)または名前(Fort Worth、Fort Worth, TX)を指定し、必要に応じて kind と通りの住所を指定すると、その市で検証済みの各データセットが返されます。返される情報は、エンドポイントとプロバイダー(Socrata、ArcGIS、CKAN、CARTO)、住所の照合に使われる列、日付フィールド、データセットの定義に含まれるフィルター、対象範囲と鮮度に関する注記です。また、通りを指定すると、市独自のサーバーに対して実行できる query_url も返されます。対象となるすべての市を一覧表示するには、city を省略してください。

パラメーター型必須説明
citystring (max 80)いいえ市のスラッグまたは名前。対象の市を一覧表示するには省略します
statestring (max 40)いいえ2 文字のコード、または州名。同じ名前が 2 つの州で使われている場合に指定します
kindviolations | permits | zoningいいえ指定した種類のデータセットのみを返します
streetstring (max 120)いいえ通りの住所のみ。例:Commerce または 600 Commerce St。最初のカンマ以降は切り捨てられるため、住所全体を渡しても安全です
  • 2 つの市で同じ名前が使われている場合、候補とともに found: false, ambiguous: true が返されます。state を指定して再度実行してください。レジストリにない市の場合は、その州、または参照情報に郡名がある場合はその郡の対象市とともに found: false が返されます。
  • ポイント検索(ポリゴンの案件記録または現在のゾーニングマップ)の場合、query_url は null になります。その場合、データセットの query_template に {LON},{LAT} プレースホルダーを埋めるリクエストが含まれています。
  • 対象範囲は郡ではなく市の境界内です。これらのテーブルには所有者データは含まれません。区画の所有者情報には、上記の郡ツールを使用してください。
  • 郡ツールと同様、このツールは何も取得しません。アトラスパッケージの情報を返し、実行用の URL を提供します。Socrata は匿名の呼び出しを制限するため、大量に利用する場合は独自の X-App-Token ヘッダーを送信してください。
  • ホスト型の UrbanKit MCP が提供するものと同じツールで、公開されている入力とレスポンスキーも同じです。stdio サーバーはこのスキーマの引数を厳密に検証します。kind は小文字の violations、permits、zoning のいずれかである必要があります。

プロンプトの例:「Dallas の 600 Commerce St にある未処理の建築許可は、どこから取得できますか?」

出力例(抜粋):

{
  "found": true,
  "city": { "slug": "dallas", "name": "Dallas", "state_abbrev": "TX", "county_slug": "dallas-county" },
  "street": "600 Commerce St",
  "datasets": [
    {
      "kind": "permits",
      "provider": "socrata",
      "endpoint": "https://www.dallasopendata.com/resource/e7gq-4sah.json",
      "address_field": "street_address",
      "street_used": "600 Commerce St",
      "query_url": "https://www.dallasopendata.com/resource/e7gq-4sah.json?$where=upper(street_address)%20like%20upper('%25600%20Commerce%20St%25')&$limit=30"
    }
  ]
}

会話例

ユーザー: イリノイ州 Kane County の物件についてデューデリジェンスを行っています。「Blackstone」が所有する区画をすべて見つけられますか?

Claude(mcp-atlas を使用):

  1. get_parcel_endpoint を呼び出し → gistech.countyofkane.org の URL を取得し、所有者フィールドが TaxName であることを確認します
  2. owner_name=Blackstone を指定して build_owner_query を呼び出し → すぐに使える取得用 URL が返されます
  3. 必要に応じて URL を取得し、区画の結果を整形します

アトラスの対象範囲

アトラスは UrbanKit Studio が管理しています。すべてのエンドポイントは手動で検証されています。所有者/納税者フィールドを持つ郡では名前による検索ができ、PIN のみを扱う郡では APN/区画番号による検索ができます。

対象範囲の全体マップ:https://urbankitstudio.com/parcel-atlas


データ

アトラスのデータはパッケージに埋め込まれています(起動時のネットワーク呼び出しはありません)。基盤となる @urbankitstudio/atlas SDK は、プログラムから使用できるよう別途公開されています。


Socket が警告する内容と、そのうち当プロジェクトに該当するもの

Socket のサプライチェーンスキャナーは、このパッケージを70点台半ばと評価しています。詳細を確認すると、警告の一覧が表示されます。各警告を確認した結果は次のとおりです。

警告該当箇所内容
usesEval当プロジェクトではありませんsrc/ 内に eval も new Function もありません。依存関係に起因するものです。
unmaintained (21)当プロジェクトではありません推移的依存関係の最終公開年は2017~2021年です。
mixedLicense当プロジェクトではありませんBSD-3-Clause AND ISC として公開されている依存関係です。
noTests設計上、当プロジェクトに該当しますfiles には dist のみが含まれます。テストスイートは test/ にあり、CI で実行されます。テストを tarball に含めるほうが問題です。
networkAccess、filesystemAccess、envVars、shellAccess当プロジェクトに該当しますMCP サーバーは stdio 経由でクライアントと通信し、自身の設定を読み取ります。これらの機能がなければ、サーバーは役割を果たせません。
unpopularPackage、noV1当プロジェクトに該当しますダウンロード数と 0.x のバージョンが原因です。どちらも時間が経てば解消しますが、コードの問題ではありません。

脆弱性とライセンスの評価はいずれも 100、品質は 99 です。バッジに表示される数値は サプライチェーン のサブスコアであり、最も大きな減点要因はダウンロード数です。セキュリティバッジを装った人気度の指標にすぎません。数値ではなく、上記の一覧を確認してください。

4つのアクセスに関する警告は、サーバーが自身の設定を読み取り、stdio 経由でクライアントと通信するために必要なものです。それ以上のことは行いません。クエリを実行することも、荷物のレコードを返すこともありません。

ライセンス

MIT — © 2026 UrbanKit Studio

コメント

MCP は初めてですか?

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

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