Skip to main content
Glama
HasData

Google Maps MCP Server

Google Maps MCP Server

ホスト型 Model Context Protocol(MCP)サーバーで、Claude、Cursor、Windsurf、その他あらゆる MCP クライアントに、読み取り専用の Google Maps ツールを 6 つ提供します。場所の検索、場所の詳細取得、レビュー・写真・投稿の取得、個々のレビュー投稿者の履歴の追跡を、すべて構造化 JSON として行えます。Google Cloud プロジェクトは不要、課金を有効にする必要もありません。

https://mcp.hasdata.com/api/mcp?apis=google_maps

Glama score tool contract MCP Tools npm PyPI License

目次

Related MCP server: MCP Google Maps

必要なもの

カスタムヘッダーを付けて streamable HTTP に対応した MCP クライアントと、ダッシュボードから取得する HasData API キーが必要です。キーはカードなしで無料作成でき、トライアルは 5 クレジット換算で約 200 回分をカバーします。これ以外は不要です。これはリモートサーバーなので、最も簡単な方法は URL とヘッダーを指定することだけです。実行するコンテナも、フローの中のどこにも Google Cloud プロジェクトや API キーも不要です。stdio のみのクライアントは、代わりに @hasdata/google-maps-mcp(npm)または hasdata-google-maps-mcp(PyPI)のランチャーを使用できます。

クイックスタート

URL

https://mcp.hasdata.com/api/mcp?apis=google_maps

Transport

HTTP, streamable

Auth header

x-api-key: HASDATA_API_KEY

サーバー URL はすべてのクライアントで共通です。私たちは Claude Code と Claude Desktop で実際に運用しています。以下の各項目は、各クライアントがリモートサーバーについて定めているドキュメントの形式に従ったものです。

OAuth に対応したクライアントは、同じ URL をコネクタとして追加し、設定ファイルにキーを書かずにサインインできます。

claude mcp add --transport http google-maps "https://mcp.hasdata.com/api/mcp?apis=google_maps" \
  --header "x-api-key: HASDATA_API_KEY"

Claude Desktop は設定ファイルからローカル(stdio)サーバーのみを読み込むため、リモートサーバーへは stdio ランチャーを介して接続します。@hasdata/google-maps-mcp パッケージがそのランチャーで、環境からキーを読み取ります。

claude_desktop_config.json:

{
  "mcpServers": {
    "google-maps": {
      "command": "npx",
      "args": ["-y", "@hasdata/google-maps-mcp"],
      "env": { "HASDATA_API_KEY": "YOUR_KEY" }
    }
  }
}

Node ではなく Python の場合?ランチャーを PyPI パッケージに置き換えてください。uvx が手動インストールなしで実行します:

{
  "mcpServers": {
    "google-maps": {
      "command": "uvx",
      "args": ["hasdata-google-maps-mcp"],
      "env": { "HASDATA_API_KEY": "YOUR_KEY" }
    }
  }
}

OAuth に対応したクライアントは、代わりに URL をカスタムコネクタとして追加し、ランチャーを省略できます。

.cursor/mcp.json:

{
  "mcpServers": {
    "google-maps": {
      "url": "https://mcp.hasdata.com/api/mcp?apis=google_maps",
      "headers": { "x-api-key": "HASDATA_API_KEY" }
    }
  }
}

~/.codeium/windsurf/mcp_config.json:

{
  "mcpServers": {
    "google-maps": {
      "serverUrl": "https://mcp.hasdata.com/api/mcp?apis=google_maps",
      "headers": { "x-api-key": "HASDATA_API_KEY" }
    }
  }
}
{
  "mcpServers": {
    "google-maps": {
      "url": "https://mcp.hasdata.com/api/mcp?apis=google_maps",
      "type": "streamableHttp",
      "headers": { "x-api-key": "HASDATA_API_KEY" },
      "disabled": false
    }
  }
}

.vscode/mcp.json:

{
  "servers": {
    "google-maps": {
      "type": "http",
      "url": "https://mcp.hasdata.com/api/mcp?apis=google_maps",
      "headers": { "x-api-key": "HASDATA_API_KEY" }
    }
  }
}

~/.gemini/settings.json:

{
  "mcpServers": {
    "google-maps": {
      "httpUrl": "https://mcp.hasdata.com/api/mcp?apis=google_maps",
      "headers": { "x-api-key": "HASDATA_API_KEY" }
    }
  }
}

プロンプト例

以下は、回数が別途示されていない限り、それぞれ 1 回のツール呼び出しです。

シアトル中心部近くのコーヒーを Google Maps で検索して、評価、レビュー件数、ウェブサイト付きで上位 10 件を教えて。

1 回の呼び出し、5 クレジット。検索結果には placeId と dataId がすでに付いており、以下の後続処理ではルックアップの手順が不要です。

ChIJAb0KE0RrkFQRuI4X0By5Mcw の詳細を取得して:営業時間、サービスオプション、価格帯、メニューリンク。

1 回の呼び出し、5 クレジット。

その場所の最新レビューを新しい順に読んで、よく出てくるトピックを教えて。

1 回の呼び出し、5 クレジット。レスポンスには Google 自身のトピッククラスタと、それぞれの言及数が含まれ、ランキングもデータ内にあります。

最上位レビューの投稿者を取り上げ、その人がレビューした他のすべての場所と、そのときに残した評価を一覧にして。

1 回の呼び出し、5 クレジット。レビューには投稿者の contributorId が含まれ、これは contributor ツールが受け取る入力と正確に一致します。

その場所の写真フィードと、そのビジネスの最近の投稿を取得して。

2 回の呼び出し。写真は 5 クレジット、投稿は 10 クレジット。

これらのチェーンが安く済む理由は 2 つあります。検索はすべての結果で placeId と dataId を返し、詳細・レビュー・写真・投稿の呼び出しには別途の解決手順が不要です。また、レビューには投稿者の contributorId が含まれており、「このレビューを書いたのは誰か」から「その人の全履歴」まで、1 回の呼び出しで移動できます。

ツール

6 つのツールはすべて読み取り専用です。以下のサンプルは実際の呼び出しから抜粋したもので、中の数値は場所のレビューが増えると変動します。形として捉えてください。各ツール名は、そのエンドポイントリファレンスへのリンクです。

サンプルはペイロードであり、レスポンス全体ではありません。tools/call の結果には 1 つのテキストブロックが含まれ、そのテキスト自体が url、status、text、json を持つ JSON で、スクレイピングされたデータは json の下にあります。生の JSON-RPC レスポンスからは、result.content[0].text をパースし、その後に .json をたどります。チャットクライアントはこれを展開してくれますが、エンドポイントと直接通信するコードでは自分で行う必要があります。

ツールのうち 4 つは、placeId と dataId のどちらでも場所を指定できます。検索はすべての結果で両方を返します。一般的なフローは、検索を 1 回行い、その後、保持しているどちらかの ID を再利用する詳細・レビュー・写真・投稿の呼び出しを行う形です。

Google Maps を検索する

hasdata_google_maps_search_performMapSearch

クエリに一致する場所を、Google Maps のランキング順に返します。

パラメータ

型

必須

備考

q

string

はい

自由記述のクエリ。例:coffee、plumber

ll

string

地図の中心とズームを @lat,lng,zoomz で指定。例:@47.6062,-122.3321,14z。検索を特定の場所に固定する方法です

gl / hl

string

2 文字の国コードと言語コード

domain

string

問い合わせ先の Google ドメイン。例:google.com

start

number

ページング用の結果オフセット。20 刻み。ll も設定する必要があります

各結果には position、title、placeId、dataId、address、gpsCoordinates、rating、reviews、type、types、price、website、thumbnail、openState、workingHours、serviceOptions が含まれ、Google が表示する場合には menu リンクも含まれます。

位置情報はクエリではなく ll に指定します。地図の中心とズームはそこに置いてください。「coffee」だけでは、Google があなたの位置と判断した場所の結果が返ります。ズームの数字は、結果を取得する範囲を広げたり狭めたりします。

{
  "localResults": [
    {
      "position": 1,
      "title": "Howdy Y'all Coffee (Central Library)",
      "placeId": "ChIJAb0KE0RrkFQRuI4X0By5Mcw",
      "dataId": "0x54906b44130abd01:0xcc31b91cd0178eb8",
      "address": "1000 4th Ave Fl 3, Seattle, WA 98104",
      "rating": 4.9,
      "reviews": 117,
      "type": "Coffee shop",
      "website": "https://howdyyallcoffee.com/",
      "workingHours": {
        "timezone": "America/Los_Angeles",
        "days": [ { "day": "Friday", "time": "10 AM–4 PM" } ]
      }
    }
  ]
}

場所の詳細を取得する

hasdata_google_maps_place_getPlaceDetails

placeId によって 1 つの場所を完全に取得します。

パラメータ

型

必須

備考

placeId

string

はい

検索結果の placeId

hl

string

言語コード

domain

string

Google ドメイン

検索結果が持つものと同じフィールドに加え、images 配列を持つ単一の placeResults オブジェクトを返します。不要な検索を実行せずに、1 つの場所の完全なレコードを取得する方法です。

場所のレビューを取得する

hasdata_google_maps_reviews_getMapReviews

場所のレビューフィードをページ単位で返します。

パラメータ

型

必須

備考

placeId

string

場所。placeId または dataId のどちらかが必要です

dataId

string

代わりに dataId で場所を指定

sortBy

string

デフォルトは mostRelevant。その他に newestFirst、ratingHigh、ratingLow

topicId

string

topics 配列の id を使って 1 つのトピックに絞り込む

hl

string

言語コード

nextPageToken

string

前回のレスポンスの pagination.nextPageToken

placeInfo、topics 配列、reviews 配列、pagination を返します。各レビューには reviewId、rating、snippet、date、isoDate、link、images、user オブジェクトが含まれ、オーナーが返信している場合には response も含まれます。

topics は、レビューが何に言及しているかを Google 自身がクラスタリングしたもので、各項目に keyword と mentions 数が付いています。テーマは全レビューを読む必要なく事前にカウントされています。トピックの id を topicId として渡せば、そのトピックに言及したレビューのみを読むことができます。

各レビューの user には contributorId が含まれます。これは contributor ツールが受け取る入力であり、「これを書いたのは誰か」から「その人が書いたすべて」まで 1 回の呼び出しでたどれます。

{
  "placeInfo": { "title": "Howdy Y'all Coffee (Central Library)", "rating": 4.9, "reviews": 117 },
  "topics": [
    { "keyword": "earl grey matcha", "mentions": 26, "id": "bew1w_KAk5U" },
    { "keyword": "friendly baristas", "mentions": 17, "id": "FOw-91tYieQ" }
  ],
  "reviews": [
    {
      "reviewId": "…",
      "rating": 5,
      "snippet": "…",
      "isoDate": "2026-07-06T19:49:00.657Z",
      "user": { "name": "Angela Li", "contributorId": "106033685843245983748" },
      "response": { "isoDate": "2026-07-07T04:44:34.000Z", "snippet": "Thank you!! 🥺☺️" }
    }
  ],
  "pagination": { "nextPageToken": "…" }
}

投稿者のレビューを取得する

hasdata_google_maps_contributor_reviews_getMapReviews

1 人の投稿者が書いたすべてのレビューを、その人が評価したすべての場所にわたって返します。

パラメータ

型

必須

備考

contributorId

string

はい

レビューの user オブジェクトの contributorId

num

number

返すレビュー件数

gl / hl

string

国コードと言語コード

nextPageToken

string

前回のレスポンスのトークン

contributor オブジェクトを返します。これには name、level、points と contributions の内訳が含まれ、reviews 配列の各エントリは独自の placeInfo を持ち、追アのルックアップなしで各レビューがどのプレイスに関するものかを確認できます。これは、レビューフィードだけではできない、レビュアーの信頼性とレビューネットワークの分責を支えるツールです。一のユーザーの公的レビュー履歴を読取るため、結果の利活は Goog le の利活規約と適法に従って行っください。

Get place photos

hasdata_google_maps_photos_getMapPhotos

あるプレイスの写フィード。

パラメータ

型

必

備考

placeId

string

対のプレイス。placeId または dataId のいずれか必です。

dataId

string

代わに dataId として指するプレイス。

categoryId

string

categries 配列の id を使して、1つのカテゴリに絞り込ます。

hl

string

言コード

nextPageToken

string

前のレスポンスからのトークン

categries 配列(All、Latest、Videos、Menu とプレイス固のもの)、各エントリが image と thumbnail の URL を持 photos 配列、そして pagination を返します。

Get place posts

hasdata_google_maps_posts_getMapPosts

ビジネス自が Google リスティングに投した投と更情。

パラメータ

型

必

備考

placeId

string

対のプレイス。placeId または dataId のいずれか必です。

dataId

string

代わに dataId として指するプレイス。

hl

string

言コード

nextPageToken

string

前のレスポンスからのトークン

posts 配列を返します。

ほとんどのプレイスは何も投しないため、空の posts 配列が一です。投があと想する前に、その長さを確してくだい。

エラーと失のパターン

ツール呼出しで HTTP エラーコードがクライアントに表されることはほんどありません。MCP レイヤーは 200 で応し、失を結の内に isError を true に設し、理をテキスとして含めます。エージェントは、ステータス行を期するであろ場でメッセージを読取ます。

誤たキーは、接失ではなくツール出力として表します。 ツール一は空でないキーを受入れ、クライアントはハンドシェークを完了して緑色を表します。その、最のツール呼出しが isError: true とテキス HasData API error: 401 Unauthorized を返ます。その文に注してくだい。それ以前のフローでは問が報されないからです。

唯の実の HTTP エラーは キー欠 です。認はすべのツールより先に実され、接続自が 401 で失します。

スキーマに違する引は、リクエストにな前拒されます。 q なしの検は、isError: true とフィルド名を指するテキス MCP error -32602: Input validation error を返ます。データは取されず、課も生しません。

レビュー、写、投の呼出しにはプレイスが必要です。 れら3つは placeId または dataId を受取り、どらも送らないと、両のフィルドを指する 422 を返ます。必件が件的であり、スキーマが単な必リストとして現できないからです。どらかを渡してだい。

解できないプレイス ID は、空データではなく明なエラーになります。 isError: true と HasData API error: 400 Bad Request を返し、requestMetadata.status は error に設されます。配列の長さではなくフラグを確してだい。

空の posts は実のデタです。 ほとんどのリスティングには投がないため、呼出しは status ok と空の配列で成功します。そのプレイスには単に何も投されていないだけです。

データを含結には、サポートで引する価のある requestMetadata.id にえて、その正確な呼出しの保されたアーティファクトへの html および json リンクも含れます。

料、無料、制限

検、プレイス詳、レビュー、投者レビュー、写は 成功した呼出しごとに 5 クレジット かかます。投は 10 です。レスポンスサイズによって料は変りません。レビューが満載の1ページも、1件だけのページも同コストです。

無料トライアルは カード不要で30日間1,000クレジット で、5クレジット率で200回の呼出しに相します。そのも、アクティブなアカウントは残高が100を下るびに毎日100クレジットが補されるため、低ボリュームのエージェントは無料階層で無期限に動します。

有料プランは 月額 $49 からで、200,000クレジット(5クレジット呼出し40,000回分)です。クレジット単価はボリュームに応じて下がり、現の数字は 料金ページ にあります。

プランは同時実行数も設します。無料トライアルは同時1リクエスト、Startup は 15、Business は 30、Growth は 50、高ボリュームプランは 200 から 1,500 です。同時実行数のみがスロットルです。分間リクエスト数の別の上限はなく、トライアルが他の方法で速度制限されたり削減されたりすることもありません。無人で動するものでは、オーバーフローケースに防的に対処してください。プレイスを横断してファンアウトするエージェントは、あなたよりも先に上限に達するからです。

ページングは呼出しのびにコストがかかます。レビューは1ページ約10件なのて、100件のレビューはおそ10回の呼出しで50クレジットです。一方、写は1ページ20件です。無料トライアルは、それを実感するまでにかなり持ちます。

ツールの選

?apis=google_maps は、正確にれら6つのツールを公します。パラメータはリストを受取り、?apis=google_maps,google_serp はマップツールにえて Google 検を追します。パラメータを略すると、HasData が公するすべて(現57ツール)を取できます。

絞り込んだリストの方が通は良いデフォルトです。6つのツールから選ぶモデルは、57の中から選ぶモデルよりも正確に選ぶことが多く、ツールの説明自も毎ターンコンテキストを消費します。

較

他のはとんどの Google Maps MCP サーバーは、公式の Google Maps Platform をラップしており、それが実に較検すべき選択です。

れらのサーバーは、あなた自の Google Cloud 資格情で Places、Routes、Geocoding API を呼出します。実行するには、Google Cloud プロジェクトを作成し、カードで課を有効化し、各 API をオンにして、キーとそのクォータを管理する必要があります。ルーティング、ジオコーディング、住検が必要な場合は、それが適なツールです。このサーバーはれらを行いません。

このサーバーは、Google Maps が訪者に表するものを読取り、パースして返します。Google Cloud プロジェクトも、有効化する課も、管理する API ごとのクォータもありません。また、Platform が提しないデータにも到します。小さな固定サンプルではなく完全なレビューフィード、単一レビュアーの全履、写フィード、ビジネスの投などです。

公式 Platform ラッパー

このサーバー

セットアップするもの

Google Cloud プロジェクト、課、API ごとのキーとクォータ

API キー1つ、一度だけ

ルーティング、ジオコーディング、住検

あり

提なし

レビュー

プレイスごとの少量の固定サンプル

トピッククラスタ付きのページングされたフィード

レビュアーの履歴

利不可

可能(contributorId による)

写真と投

制的

写真フィードとビジネスの投

出力

Platform スキーマ準の JSON

訪者が見るものをパースした JSON

コスト

Google の呼出しごとの料が請に計上

呼出し5クレジット、投は10

判断は2つの行に帰着します。道順が必要な場合や、住を座に変する必要がある場合、このサーバーは役に立たず、Platform が役に立ちます。最の数件の背後のレビューや、レビュアーが評した全プレイスでの人物像が必要な場合、Platform は役に立たず、これが役に立ちます。

このサーバーが行わないこと。 ルーティングなし、ジオコーディングなし、住検なし、距マトリクスなし、書込もありません。マップを読むだけです。

よくある問

Google Maps MCP サーバーとは何ですか?

Google Maps のデータを、AI クライアントが呼出せるツールとして公するサーバーです。クライアントは Model Context Protocol を介してツール呼出しを送り、サーバーはデータを取して構造化された JSON を返し、モデルは結を扱い、HTML ページを見ることはありません。これは6つの読取りのみツールを公し、リモートで動きます。クライアントは URL に接し、ローカルプロセスを起しません。

公式の Google Maps MCP サーバーはありますか?

Google は汎用のものを公していません。Google Maps Platform(自分の Cloud プロジェクトで呼出す有料 API 群)があり、いくつかのコミュニティ MCP サーバーがそれをラップしています。このサーバーは Cloud プロジェクトが不要なホステッド型の代替案です。

Google Cloud プロジェクトや Maps API キーは必要ですか?

いいえ。唯一の認証情報は HasData キーのみです。作成する Google Cloud プロジェクトも、有効化する課金も、管理する API ごとのクォータもありません。

placeId と dataId の違いは何ですか?

これらは Google が同じプレイスに対して使う2つの ID です。検索結果には毎回両方が返り、詳細、レビュー、写真、投稿の各ツールはどちらでも受け付けます。検索結果から好きな方を保持し、再利用してください。

最初のページだけでなくすべてのレビューを取得するにはどうすればよいですか?

各レスポンスの pagination.nextPageToken を読み取り、それが返ってこなくなるまで nextPageToken として渡し続けます。各ページが1回の呼び出しです。

何かをホストまたは実行する必要がありますか?

いいえ。これは streamable HTTP 上のリモート MCP サーバーです。インストールするものも、Python 環境も、再起動するプロセスもありません。

データはライブですか、キャッシュされていますか?

ライブです。各呼び出しはリクエスト時に取得し、独自の requestMetadata.id を持ちます。同ジ呼び出しを2回行うと、保存されたコピーの再生ではなく、別々の2回の取得になります。

1つのサーバーを複数の Google サーフェスに使えますか?

はい。apis パラメータはリストを受取り、?apis=google_maps,google_serp でマップツールと Google 検索を同時にエージェントへ提供します。

API キーは失効しますか?

いいえ。キーは失効しません。必用になったら、いつでもダッシュボードでローテートできます。

これは Google と関わりがありますか?

いいえ。HasData は独立したサービスであり、Google との提携、Google による推奨、またはスぽンサーを受けてはいません。Google および Google Maps は各々の所有者の商標です。ツールは公的に利活可能なデータのみを扱い、結果の利活については、Google の利活規約と適用される法に従う責任があなたにあります。

HasData リンク

プロダクトページ

Search、Reviews、PhotosおよびPosts

サーバードキュメント

MCPサーバーのドキュメント

1つのサーバーに全57ツール

HasData/hasdata-mcp

クライアントウォークスルー

MCPクライアントとインテグレーション

その他の解析対象サーフェス

さらに53のスクレイパーAPI

プランとクレジット料金

プランとクレジット料金

キーと利用方法

HasDataダッシュボード

npm上のNodeランチャー

@hasdata/google-maps-mcp

PyPI上のPythonランチャー

hasdata-google-maps-mcp

開発

このリポジトリは、リモートサーバーの設定とドキュメントです。ビルドステップはなく、コンテナ化するものもありません。ただし、コントラクトテストは含まれています。READMEは、特定のパラメータを持つ6つのツールを約束しています。また、上流のツールリストはここでのコミットなしに変更される可能性があり、その場合、このファイルはあなたに静かに嘘をつくことになります。テストはその約束を検証し、CIで毎週、そしてすべてのプッシュ時にも実行されます。

HASDATA_API_KEY=your_key_here npm test

PowerShellの場合:

$env:HASDATA_API_KEY = "your_key_here"; npm test

最後のチェックは実際の呼び出しを行い、5クレジットを消費します。これは、正しい理由で失敗し得るカナリアの価格です。ツールの一覧表示は、空でないキーであれば成功し、ツールの一覧表示のみを行るテストは、失効したキーでもグリーンのままです。

コントリビューティング

ツールテーブルとレスポンスサンプルの修正が最も有用な貢献です。なぜなら、それらの部分は乖離しやすいからです。実行した呼び出しと、受け取ったレスポンスを含めてください。フォークからのプルリクエストは、キーなしでテストスイートを実行し、ライブチェックはレッドになる代わりにスキップされます。

ライセンス

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

Available Tools

6 tools
hasdata_google_maps_contributor_reviews_getMapReviewsgoogle_maps_contributor_reviews: GET /AInspect

Get Map Contributor Reviews

Lists all Google Maps reviews authored by a specific Local Guide / contributor by contributorId, with language/country targeting and nextPageToken pagination. Returns per-review rating, text, date, place name, place address, placeId, photos, and owner responses. Use for reviewer reputation checks, detecting fake/bot review patterns, local-guide activity analysis, and building review-author profiles for trust scoring.

ParametersJSON Schema
NameRequiredDescriptionDefault
glNoThe two-letter country code for the country you want to limit the search to. Provide one exact documented value (245 allowed), e.g. `ac`, `af`.
hlNoThe two-letter language code for the language you want to use for the search. Provide one exact documented value (159 allowed), e.g. `af`, `ak`.
numNoNumber of results per page, ranging from 10 to 200.
contributorIdYesGoogle Maps Contributor ID.
nextPageTokenNoDefines the next page token. It is used for retrieving the next page results.

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It describes the return fields and pagination but does not mention rate limits, errors, or authentication. It implies read-only via the GET method in the title but not explicitly in the description.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise, with a clear verb, resource, and use-case sentence. It avoids fluff and is well-structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given there is no output schema, the description lists the return fields (rating, text, date, place name, place address, placeId, photos, owner responses) and mentions pagination. It does not cover error handling or limitations, but for a simple GET endpoint it is reasonably complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

All five parameters are described in the schema, and the description adds extra details such as the valid range for 'num' (10-200) and the purpose of 'nextPageToken'. This goes beyond simply restating the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function: listing Google Maps reviews authored by a specific contributor. It uses a specific verb ('Lists') and resource ('reviews authored by a specific Local Guide / contributor'), distinguishing it from the sibling tool for place reviews (hasdata_google_maps_reviews_getMapReviews).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit use cases ('Use for reviewer reputation checks, detecting fake/bot review patterns, local-guide activity analysis, and building review-author profiles for trust scoring'). It does not explicitly compare with sibling tools, but the contributor focus makes the intended scenario clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

hasdata_google_maps_photos_getMapPhotosgoogle_maps_photos: GET /AInspect

Get Place Photos

Fetches the photo gallery of a Google Maps place by dataId or placeId, paginated with nextPageToken and filterable by categoryId (all, latest, menu, by owner, videos, street view). Returns each photo with image URL, thumbnail, upload date, uploader, and photoId. Use for restaurant-menu extraction, venue/ambience visual audits, building rich place detail pages, and sourcing up-to-date imagery for POI listings.

ParametersJSON Schema
NameRequiredDescriptionDefault
hlNoThe two-letter language code for the language you want to use for the search. Provide one exact documented value (159 allowed), e.g. `af`, `ak`.
dataIdNoGoogle Maps data ID. Either dataId or placeId should be set.
placeIdNoUnique reference to a place on Google Maps. Either dataId or placeId should be set.
categoryIdNoFilters photos by category.
nextPageTokenNoToken for fetching the next page of photos.

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations present, the description carries the disclosure burden. It discloses pagination via nextPageToken, filtering by categoryId, and the per-photo return fields (image URL, thumbnail, upload date, uploader, photoId). It does not cover auth, rate limits, or error behavior, but the read-only fetch semantics are clear from 'Fetches.'

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded, with the core fetch behavior first and use cases last. The opening heading duplicates the tool title slightly, but the remaining sentences are information-dense and each earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given there is no output schema, the description compensates by listing return fields and pagination behavior. It covers the main parameters (dataId/placeId, categoryId, nextPageToken) and provides use cases; only the optional hl parameter and required-parameter rules are left to the schema, which documents them adequately.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3. The description adds meaning by enumerating categoryId values ('all, latest, menu, by owner, videos, street view'), clarifying the dataId/placeId alternative, and tying nextPageToken to pagination. This goes beyond the schema descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource: 'Fetches the photo gallery of a Google Maps place.' It clearly distinguishes this tool from sibling Google Maps tools such as reviews, posts, and place details by centering on photos. The scope (by dataId or placeId) is unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives concrete use cases: 'restaurant-menu extraction, venue/ambience visual audits, building rich place detail pages, and sourcing up-to-date imagery for POI listings.' This tells an agent when the tool is valuable, but it does not explicitly name alternatives or state when not to use it, so it stops short of full routing guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

hasdata_google_maps_place_getPlaceDetailsgoogle_maps_place: GET /AInspect

Get Place Details

Fetches full Google Maps place data by placeId with optional domain/language localization. Returns name, address, coordinates, phone, website, categories, hours, rating, review count, price level, photos, popular times, attributes/amenities, plus_code, and map URL. Use for local SEO audits, POI enrichment, lead generation, competitor mapping, and building location-aware agents.

ParametersJSON Schema
NameRequiredDescriptionDefault
hlNoThe two-letter language code for the language you want to use for the search. Provide one exact documented value (159 allowed), e.g. `af`, `ak`.
domainNoGoogle domain to use. Default is google.com. Provide one exact documented value (195 allowed), e.g. `google.ac`, `google.ad`.
placeIdYesA unique identifier for the place. This ID can be obtained from Google Maps search results.

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the transparency burden. It clearly states that the operation fetches (read-only) and enumerates the returned data fields, while also noting optional domain/language localization. It does not mention rate limits, error behavior, or response format, but for a simple GET-by-ID endpoint the core behavior is adequately disclosed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is efficient and front-loaded: it states the action first, then the returned payload, then the use cases. The field list is long but earns its place because there is no output schema. The redundant heading 'Get Place Details' is a minor blemish.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given three parameters, no output schema, and no annotations, the description supplies the essential return-value list and use cases, so an agent can judge when to call it and what to expect. It could be more complete by pointing to performMapSearch as the way to obtain a placeId or by noting response formatting, but these are not blocking gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already documents all three parameters with 100% coverage, so the baseline is 3. The description adds only a small amount of context by saying the localization parameters are optional and by framing placeId as the lookup key; it does not provide additional parameter-level detail beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific action and resource: it 'Fetches full Google Maps place data by placeId', immediately distinguishing this details-by-ID tool from sibling tools like performMapSearch, getMapReviews, getMapPhotos, and getMapPosts. The explicit field list (name, address, coordinates, phone, categories, hours, etc.) reinforces that this is the comprehensive place-details endpoint, not a focused sub-resource tool.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives concrete application context—'local SEO audits, POI enrichment, lead generation, competitor mapping, and building location-aware agents'—which tells an agent when this enrichment tool is appropriate. It does not explicitly name sibling tools or state when not to use it, so it falls short of full 5-level guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

hasdata_google_maps_posts_getMapPostsgoogle_maps_posts: GET /AInspect

Get Map Posts

Paginated fetch of Google Maps Posts (timeline-style updates such as offers, events, announcements, and notices) for a place by dataId or placeId, with language targeting and nextPageToken pagination. Returns per-post title, description, image, posted_at, link, and source/business name. Use for small-business intelligence, local-marketing monitoring, competitor activity tracking, and surfacing current promotions and events from local merchants.

ParametersJSON Schema
NameRequiredDescriptionDefault
hlNoThe two-letter language code for the language you want to use for the search. Provide one exact documented value (159 allowed), e.g. `af`, `ak`.
dataIdNoGoogle Maps data ID.
placeIdNoUnique reference to a place on a Google Map. Either dataId or placeId should be set.
nextPageTokenNoDefines the next page token. It is used for retrieving the next page results.

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses that the operation is a paginated fetch and enumerates the returned data. However, with no annotations provided, it does not mention authentication requirements, rate limits, or potential side effects, so it does not fully carry the behavioral transparency burden.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise and well-structured. It covers what the tool does, what it returns, and relevant use cases in a compact two-paragraph format without unnecessary filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description is fairly complete for a read-only fetch tool: it names the resource, the identifier options, the pagination mechanism, the return fields, and practical use cases. It could be slightly stronger by explicitly addressing parameter precedence or edge cases, but it is adequate for effective use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already covers all four parameters with descriptions, so the baseline is 3. The tool description adds minor context by mentioning 'by dataId or placeId' and 'nextPageToken pagination,' but it does not significantly enhance what the schema already conveys.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the operation: fetch Google Maps Posts for a place by dataId or placeId. It also specifies the resource type and outlines returned fields, making it easily distinguishable from sibling tools like reviews or photos.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear use cases such as small-business intelligence, local-marketing monitoring, and competitor activity tracking. It does not explicitly mention when not to use it or name alternative sibling tools, but the stated use cases give solid contextual guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

hasdata_google_maps_reviews_getMapReviewsgoogle_maps_reviews: GET /AInspect

Get Map Reviews

Paginated fetch of Google Maps reviews for a place by dataId or placeId, with sort (mostRelevant, newestFirst, ratingHigh, ratingLow), topicId filter, and language. Returns per-review author name and profile link, star rating, text, published/relative date, likes count, owner response, attached photos, and local-guide flag. Use for reputation management, sentiment and topic mining, competitor review benchmarking, and feeding review data into summarization or trust-score LLMs.

ParametersJSON Schema
NameRequiredDescriptionDefault
hlNoThe two-letter language code for the language you want to use for the search. Provide one exact documented value (159 allowed), e.g. `af`, `ak`.
dataIdNoGoogle Maps data ID.
sortByNoParameter used for sorting and refining results.
placeIdNoUnique reference to a place on a Google Map. Either dataId or placeId should be set.
topicIdNoDefines the ID of the topic you want to use for filtering reviews.
nextPageTokenNoDefines the next page token. It is used for retrieving the next page results.

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the transparency burden. It discloses pagination behavior, sort/filter options, mutually exclusive identifiers, and the per-review fields returned. It does not mention rate limits, errors, or read-only guarantees, but the core behavior is adequately described.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well structured: a short title, a functional summary, a list of returned fields, and use cases. It is slightly repetitive in listing parameter names that already appear in the schema, but it remains appropriately sized and easy to scan.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description provides enough context for an agent to select and invoke the tool correctly: purpose, key parameters, pagination token, and expected output fields. It is not exhaustive (no output schema or error scenarios), but it is adequate for the tool's complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema descriptions cover 100% of parameters, so the baseline is 3. The description adds meaningful context beyond the schema, particularly that either dataId or placeId should be set and that pagination is handled via nextPageToken, which improves parameter understanding.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool fetches Google Maps reviews, with resource, operation, and key refinements (dataId/placeId, sorting, topic, language). It is clearly distinguished from sibling tools for photos, posts, place details, and search.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives explicit use cases such as reputation management, sentiment analysis, competitor review benchmarking, and feeding summarization/trust-score LLMs. It does not explicitly say when not to use it versus a sibling, but the resource-specific language makes the context clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

hasdata_google_maps_search_performMapSearchgoogle_maps_search: GET /AInspect

Get Google Maps Search Results

Runs a Google Maps search by keyword plus optional GPS coordinates (@lat,lng,zoomz via ll) with language, country, domain, and offset-based pagination (start). Returns the local pack list with placeId, name, address, coordinates, rating, review count, price level, categories, phone, website, hours, and thumbnail. Use for local lead generation, competitor density mapping, market expansion research, hyperlocal directories, and feeding placeIds into the Maps Place, Reviews, or Photos endpoints.

ParametersJSON Schema
NameRequiredDescriptionDefault
qYesSearch query term or phrase.
glNoThe two-letter country code for the country you want to limit the search to. Provide one exact documented value (245 allowed), e.g. `ac`, `af`.
hlNoThe two-letter language code for the language you want to use for the search. Provide one exact documented value (159 allowed), e.g. `af`, `ak`.
llNoGPS coordinates of the location where the search query is to be performed. This parameter is required if the 'start' parameter is present. The format for the `ll` parameter is `@` followed by latitude, longitude, and zoom level, separated by commas. The latitude and longitude should be in decimal degrees, and the zoom level is an integer. Example: `@40.7455096,-74.0083012,14z`.
startNoSpecifies the result offset for pagination purposes. The offset dictates the number of rows to skip from the beginning of the results. This is useful for accessing subsequent pages of search results. For example, an offset of 0 (the default value) returns the first page of results, 20 returns the second page, 40 returns the third page, and so on. This parameter is especially relevant when used in conjunction with the 'll' parameter for location-based searches.
domainNoGoogle domain to use. Default is google.com. Provide one exact documented value (195 allowed), e.g. `google.ac`, `google.ad`.

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It explains the search behavior, return fields, pagination via start, and the dependency between ll and start. It does not mention rate limits or error handling, but for a read-only search API this is acceptable.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise, front-loaded with the main purpose, and structured into three clear sentences: what it does, what it returns, and when to use it. It avoids unnecessary verbosity while covering essential details.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given there is no output schema, the description compensates by enumerating the exact fields returned in the local pack list. It also covers pagination behavior, language/country/domain options, and practical use cases, making it complete for an agent to decide invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Every parameter in the schema has a description that adds significant meaning beyond the type. The ll parameter includes a format example and a conditional requirement, start explains pagination with concrete offsets, and gl/hl/domain include value ranges and examples.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool runs a Google Maps search and returns the local pack list with specific fields. It distinguishes itself from sibling tools like place details, reviews, and photos by focusing on the search entry point.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description lists concrete use cases (local lead generation, competitor density mapping, market expansion research) and hints at follow-up tools by mentioning feeding placeIds into Maps Place, Reviews, or Photos endpoints. It does not explicitly say 'when not to use', but the use-case list is strong enough.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 6 tool updatesv1.0.0
    • First observedhasdata_google_maps_contributor_reviews_getMapReviews
    • First observedhasdata_google_maps_photos_getMapPhotos
    • First observedhasdata_google_maps_place_getPlaceDetails
    • First observedhasdata_google_maps_posts_getMapPosts
    • First observedhasdata_google_maps_reviews_getMapReviews
    • First observedhasdata_google_maps_search_performMapSearch

TDQS

A4.3/5.0

Scored across 6 tools

Disambiguation5/5

Each tool targets a distinct data type: search for places, place details, reviews for a place, reviews by a contributor, photos, and posts. There is no ambiguity between them, even though search and place details both return place info — search is for discovery, place details is for a specific known place.

Naming Consistency5/5

All tool names follow a consistent pattern: hasdata_google_maps_<resource>_get<Action> (or performMapSearch for search). The resource is always a clear noun (search, place, reviews, contributor_reviews, photos, posts), and the action verb is consistent (get) or explicit (performMapSearch). This is highly predictable.

Tool Count5/5

Six tools is a well-scoped count for a Google Maps data extraction server. Each tool covers a distinct endpoint needed for local business intelligence, and none are redundant or trivial. This is within the ideal range and feels complete for the stated purpose.

Completeness5/5

The tool set covers the core lifecycle of Google Maps data: search for places, fetch details for a place, retrieve reviews (both for a place and by a contributor), get photos, and get posts/updates. This is a comprehensive read-only surface for building location-aware agents, lead generation, and reputation management, with no obvious gaps.

Maintenance

ActivityActive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers