はじめに
本記事では、Manus と Google Maps Grounding Lite MCP(Model Context Protocol) を組み合わせて、
「AI に地図を“覚えさせる”のではなく、必要なときに“正しい地図情報を取りに行かせる」
という考え方を、できるだけやさしく説明します。
Manus や MCP を初めて触る方でも、「なるほど、そういう仕組みか」と なんとなくイメージが理解できる ことを目標にしています。
本記事の記載内容の各項目については、単なる操作手順ではなく、
- なぜ MCP を使うのか
- Grounding Lite が何を保証しているのか
- Manus が内部でどう振る舞うのか
の概要をできるだけわかりやすく説明することを意識しました。
1. 背景:なぜ「地図 × AI」は意外と難しいのか
従来、LLM に地理情報を扱わせる方法は以下のいずれかでした。
- 事前学習に依存(=情報が古い/曖昧)
- 独自に Maps API を直接呼ぶコードを書く
- 検索結果を人間が要約して渡す
この方法には共通の問題があります。
- データの鮮度・正確性が保証できない
- API ごとに 認証・スキーマ・レスポンス形式がバラバラ
- LLM が「どこまでが事実で、どこからが推論か」を区別できない
ここで登場したのが Model Context Protocol(MCP) です。
2. Model Context Protocol(MCP)とは何か
MCP とは、
LLM と外部ツール・データソースを安全に接続するための共通プロトコル
です。
2.1 MCPの基本構造: APIを直接触らせない仕組み
MCP では、外部サービスは次の3点を定義します。
- tools:LLM が呼び出せる操作
- input schema:引数の構造(JSON Schema)
- output schema:戻り値の構造
LLM は「API を直接呼ぶ」のではなく、
「このツールを、この引数で使いたい」
という宣言的な呼び出しを行います。
2.2 MCPがもたらすメリット
- APIキーやエンドポイントを モデルに渡さなくてよい
- レスポンスが 構造化されているため誤解釈しにくい
- 「推論」と「事実取得」が明確に分離される
この設計思想は、Grounding(事実に基づく回答) を実現するための基盤です。
3. Google Maps Grounding Lite MCP の位置づけ
3.1 Grounding Lite とは: "知っている"ではなく"聞きに行く"
Google Maps Grounding Lite は、
- Google Maps Platform の最新データ
- MCP 仕様に準拠したツール定義
を組み合わせた 公式 MCP サーバー です。
LLM は以下のようなツールを利用できます。
| ツール名 | 内容 |
|---|---|
| search_places | 周辺施設・スポット検索 |
| compute_routes | 徒歩・車などの経路計算 |
| lookup_weather | 指定地点の天気情報取得 |
重要なのは、
LLM が「地図を知っている」のではなく、必要なときに Maps に問い合わせている
という点です。
4. Manus と MCP の接続アーキテクチャ
4.1 データの流れ
[User]
↓ 自然言語
[Manus Agent]
↓ (tool call)
[MCP Connector]
↓ HTTPS
[Google Maps Grounding Lite MCP]
↓
[Maps Platform]
Manus は MCP クライアント として振る舞い、外部の MCP Server(今回は Google)と通信します。
4.2 Manus MCP Connector の役割
Manus 側で行っていることは次の通りです。
- MCP Server のエンドポイント管理
- 認証ヘッダの付与
- tool schema のキャッシュ
- LLM が出力した tool call の検証
LLM 自身は APIキーもURLも知りません。
5. Google Cloud 側の準備
5.1 API 有効化
Google Cloud Console で以下を有効化します。
- Maps Platform
- Maps Grounding Lite API
Grounding Lite は通常の Places API などとは別のエンドポイントとして扱われます。
APIキーの取得方法
- Google Cloud Consoleにアクセス
- プロジェクトを選択または新規作成
- 「APIとサービス」→「ライブラリ」で Maps Grounding Lite API を検索して有効化
- 「APIとサービス」→「認証情報」→「認証情報を作成」→「APIキー」
- 作成されたAPIキーをコピーして「カスタムヘッダー値」に貼り付け
5.2 認証方式
現時点では API Key 認証 が基本です。
- HTTP Header:
X-Goog-Api-Key - IP 制限 / Referer 制限を推奨
OAuth は不要で、サーバー to サーバー前提の設計です。
6. Manus での MCP Connector 設定
6.1 Connector 定義
Name: gmaps-grounding-lite
Endpoint: https://mapstools.googleapis.com/mcp
Headers: X-Goog-Api-Key: ${GOOGLE_MAPS_API_KEY}
ここで重要なのは、
- Manus が MCP Server と直接通信している
- LLM のプロンプトには API Key が一切含まれない
という点です。
6.2 ManusのカスタムMCP設定
上記の内容をManusのカスタムMCP設定画面の各項目に以下のように入力します。
MCP設定 入力内容
| 項目 | 入力値 |
|---|---|
| サーバー名 | Google Maps Grounding Lite |
| トランスポートタイプ | HTTP(そのまま) |
| アイコン(オプション) | 空欄のままでOK(または任意のアイコンURL) |
| 注意(オプション) | 下記参照 |
| サーバーURL | https://mapstools.googleapis.com/mcp |
| カスタムヘッダー名 | X-Goog-Api-Key |
| カスタムヘッダー値 | APIキー(Google Cloud Consoleで取得したもの ) |
注意(オプション)欄の入力例
Google Maps Grounding Lite MCPサーバー。場所検索(search_places)、天気検索(lookup_weather)、ルート計算(compute_routes)の3つのツールを提供。試験運用版のため無料。Google Mapsのソース帰属表示が必要。
実際の設定画面への入力イメージは以下です。
7. MCP ツール呼び出しの内部挙動
7.1 search_places の例
LLM が内部的に生成する tool call(イメージ):
{
"tool": "search_places",
"arguments": {
"query": "イタリアン レストラン",
"location": {
"lat": 43.0621,
"lng": 141.3544
},
"radius_meters": 800
}
}
Manus はこれを MCP Server に転送し、構造化レスポンスを受け取ります。
7.2 LLM の役割分担
- Maps:事実データ
- LLM:要約・順位付け・自然言語化
この分離が hallucination を抑制します。
8. 実用プロンプト設計のコツ
8.1 明示的に MCP 利用を指示する
札幌大通駅周辺で評価の高いイタリアンを5件。
Google Maps Grounding Lite MCP を使用すること。
8.2 LLM に判断させすぎない
- 距離
- 評価
- 件数
は 具体的な数値で指定 すると使用クレジットの無駄な消費が減ります。
9. 制限・注意点
Grounding Lite は現時点では "pre-Genaral Access" です
- クエリ数制限あり
- Google Maps 利用規約に基づく
商用利用時は必ず規約を確認してください。
10. まとめ
Manus × Google Maps Grounding Lite MCP は、
- 「AI が地図を知っている」状態を作るのではなく
- 「必要なときに、正規の地図データを参照する」
という、理想とする AI × 実世界連携の形を提供します。
MCP を理解すると、
- Maps
- カレンダー
- 社内DB
など、あらゆる外部情報を 安全に LLM と接続できるようになります。
Manus は 各種サービスとのコネクタを実装しており、実験・実装のための非常に良いプラットフォームです。
本記事は、Manus で実際に実行したタスクを元にまとめてもらったい内容をベース筆者が加筆・修正をしました。
