mcpField
M
mapsdata

mapsdata

ローカル
github.com/CloudCorpRecords地図・旅行03 日前に更新

mapsdata について

mapsdataは、HasDataを介してGoogle Mapsの場所や投稿者のデータを取得するローカルブリッジです。MCPサーバーとCLIから、読み取り専用の検索や詳細取得を利用できます。

主な機能

  1. 01キーワードや座標で場所を検索
  2. 02場所の詳細、営業時間、評価を取得
  3. 03口コミ、写真、投稿を閲覧
  4. 04Local Guideの口コミを一覧表示
  5. 05CLIまたはMCPでツールを利用

活用シーン

  1. 01指定地域の近くで店舗を検索
  2. 02施設の評価や営業時間を確認
  3. 03口コミや施設写真を調査
  4. 04Local Guideの口コミ履歴を確認

MCP 対応

MCPクライアントに読み取り専用のGoogle Mapsツールを6種類提供し、呼び出しをHasDataのホスト型MCPサーバーへ転送します。CLIからの実行にも対応します。

設定

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

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

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

パッケージ
npm@reneturcios/mapsdata0.1.0
ocighcr.io/cloudcorprecords/mapsdata:0.1.0

ツール

6

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

パラメーター型必須説明
glstringいいえ検索対象を限定する国の 2 文字の国コードです。ドキュメントに記載された値を正確に 1 つ指定してください(245 種類に対応)。例:`ac`、`af`。
hlstringいいえ検索に使用する言語の 2 文字コードです。ドキュメントに記載された値(159 種類)のいずれかを正確に指定してください。例:`af`、`ak`。
numnumberいいえ1 ページあたりの結果数です。10~200 の範囲で指定します。
contributorIdstringはいGoogle Maps の投稿者 ID。
nextPageTokenstringいいえ次のページの結果を取得するためのページトークンを指定します。

詳細

mapsdata

mapsdataは、Google MapsのデータをJSONで返す、ホスト型のHasData Google Maps MCP サーバーへの小規模なローカルブリッジです。キーワードで場所を検索し、必要に応じてGPS座標の周辺に絞り込み、評価、営業時間、電話番号、ウェブサイトを含む場所の基本情報を取得できます。その後、placeIdを使って場所の詳細、レビュー、写真ギャラリー、最新の投稿や特典を取得できます。6つ目のツールでは、1人のローカルガイド投稿者が書いたレビューをすべて一覧表示し、レビュアーのプロフィールや信頼性を確認できます。

このブリッジは、場所のデータを独自に保持しません。稼働中のエンドポイントから取得した内容そのままの上流サーバーのツール一覧をローカルで提供し、各ツールの呼び出しを上流に転送して、結果を変更せずに返します。ツール群が読み取り専用で扱うのは、Google Mapsで公開されている場所とレビュアーのデータのみです。投稿、メッセージ送信、予約のツールはありません。

ツール

  • hasdata_google_maps_search_performMapSearch — Google Maps検索を実行します。必須:q。任意:domain、gl、hl、start(オフセットによるページ指定)、ll(GPS座標を@lat,lng,zoomz形式で指定。startを指定する場合は必須)。placeId、名前、住所、座標、評価、レビュー数、価格帯、カテゴリ、電話番号、ウェブサイト、営業時間、サムネイルを含む場所の基本情報を返します。
  • hasdata_google_maps_place_getPlaceDetails — 1つの場所の詳細を取得します。必須:placeId。任意:domain、hl、fetchWebResults(場所のパネルに表示されるウェブ検索結果も返します)。名前、住所、座標、電話番号、ウェブサイト、カテゴリ、営業時間、評価、レビュー数、価格帯、写真、属性、plus codeを返します。
  • hasdata_google_maps_reviews_getMapReviews — dataIdまたはplaceIdを指定して、1つの場所のレビューをページ単位で取得します。任意:hl、sortBy(mostRelevant、newestFirst、ratingHigh、ratingLow)、topicIdによる絞り込み、nextPageToken。投稿者、評価、テキスト、日付、いいね数、オーナーからの返信、写真、ローカルガイドのフラグを返します。
  • hasdata_google_maps_photos_getMapPhotos — dataIdまたはplaceIdを指定して、1つの場所の写真ギャラリーを取得します。nextPageTokenでページ指定でき、categoryIdで絞り込めます。各写真の画像URLとサムネイルを返します。
  • hasdata_google_maps_posts_getMapPosts — dataIdまたはplaceIdを指定して、1つの場所の最新のGoogle Maps投稿(特典、イベント、お知らせ)を取得します。hlで対象言語を指定できます。投稿ごとにタイトル、説明、画像、投稿日、リンク、ビジネス名を返します。
  • hasdata_google_maps_contributor_reviews_getMapReviews — 1人のローカルガイドが投稿したレビューをすべて取得します。 必須:contributorId。任意:hl、gl、 num(1ページあたり10~200件)、nextPageToken。 レビューごとに評価、テキスト、日付、場所の名前と住所、 写真、オーナーからの返信を返します。

設定

  • HASDATA_GOOGLE_MAPS_MCP_URL(任意)— 上流エンドポイントを上書きします。デフォルトは https://mcp.hasdata.com/mcp?apis=google_mapsです(クエリ文字列も固定されたURLの一部です)。この上書き用の仕組みは、今回の再構築で独自に追加し、その旨を明記したものです。
  • HASDATA_API_KEY(任意)— 設定すると、すべての上流リクエストに呼び出し元自身のHasData APIキーを指定するx-api-key: <key>ヘッダーが付与されます。設定されていない場合、キーのヘッダーは送信されません。ヘッダー名と環境変数名は、元のレジストリ記録に記載されているものです。この環境変数からキーを転送する仕組みは、今回の再構築で独自に追加し、その旨を明記したものです。元のツール群はキーなしで取得されました。
転送の仕組み

最初のツール呼び出し時に、クライアントは上流サーバーとのストリーミング可能な HTTP セッションを開始します。まず JSON-RPC の initialize リクエスト(protocolVersion 2025-03-26、 clientInfo name mapsdata)を送信し、続いて notifications/initialized 通知を送り、その後、呼び出し元の引数を 変更せずに含めた tools/call リクエストを送信します。上流サーバーが Mcp-Session-Id ヘッダーを付けて initialize に応答すると、 その値はセッションの後続のすべてのリクエストに含まれ、プロセスの 存続期間中は同じセッションが再利用されます。応答は通常の JSON または サーバー送信イベントとして届く場合があり、どちらも読み取られます。

上流サーバーからの成功結果は、上流サーバーが設定した isError フラグも含め、 そのまま転送されます。失敗(JSON-RPC エラー、2xx 以外のステータス、 読み取り不能な応答、または完了できないリクエスト)は、 テキストが mapsdata error: で始まる isError の結果として返されます (この表示は、この再構築版独自のラベル付き再現です)。

CLI

各ツールは、1 つの JSON 引数文字列を受け取るサブコマンドとしても実行できます。

npx @reneturcios/mapsdata hasdata_google_maps_search_performMapSearch '{"q":"coffee near Union Square","hl":"en"}'
npx @reneturcios/mapsdata hasdata_google_maps_place_getPlaceDetails '{"placeId":"ChIJN1t_tDeuEmsRUsoyG83frY4"}'
npx @reneturcios/mapsdata --version

終了コード:成功時は 0、isError の結果の場合は 1、使用方法に誤りがある場合は 2 です。

MCP サーバー

npx -y @reneturcios/mapsdata mcp

MCP クライアントの設定:

{
  "mcpServers": {
    "mapsdata": {
      "command": "npx",
      "args": ["-y", "@reneturcios/mapsdata", "mcp"]
    }
  }
}

Docker

docker run -i ghcr.io/cloudcorprecords/mapsdata
docker run --rm ghcr.io/cloudcorprecords/mapsdata --version

コンテナの既定のコマンドは mcp です。そのため、最初の形式では stdio MCP サーバーとして動作し、それ以外の引数は通常どおり CLI に渡されます。

開発

npm install
npm run build
npm test
npm run dev

テストスイートはすべて、スタブ化された JSON-RPC 上流サーバーに対して実行されます。実際のネットワーク呼び出しは行いません。

ライセンス

MIT — LICENSE を参照してください。

コメント

MCP は初めてですか?

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

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