Mapbox

公式

Mapbox API(ジオコーディング、POI検索、ルート案内、等時圏など)を通じて地理空間インテリジェンスを活用できます。

Mapbox MCPで何ができますか?

  • ジオコーディングと場所の検索 — search_and_geocode_tool を使って、住所を座標に変換したり、コーヒーショップやガソリンスタンドなどの POI を検索したりできます。
  • ルートを取得 — directions_tool を使って、交通状況、代替ルート、通行除外を考慮した車、徒歩、自転車のルートを取得できます。
  • 到達可能なエリアを検索 — isochrone_tool を使って、指定した時間または距離内に到達できる範囲を示す等時間圏ポリゴンを生成できます。
  • 座標の位置情報を取得 — ground_location_tool を使って、座標がどの近隣地域にあるか、近くにどの POI があるか、どこまで到達できるかを一度の呼び出しで確認できます。
  • チャットに地図を表示 — render_map_tool を使って、ルート、検索結果、カスタム GeoJSON をライブのインタラクティブな地図として表示できます。
  • カテゴリを調べる — mapbox://categories を使って、英語、日本語、スペイン語のカテゴリ ID リストを確認できます。

ドキュメント

Mapbox MCP Server

npm version

Mapbox API 向けの Model Context Protocol (MCP) を実装した Node.js サーバーです。

AI アプリケーションで地理空間インテリジェンスを活用

Mapbox MCP Server は、Mapbox の包括的な位置情報インテリジェンスプラットフォームにシームレスにアクセスできるようにすることで、あらゆる AI エージェントやアプリケーションを地理空間を認識するシステムへと変えます。このサーバーを使うと、AI は場所を理解して推論し、現実世界を移動し、次のような豊富な地理空間データにアクセスできます。

  • グローバルジオコーディング:住所や地名を座標に変換し、その逆も実行
  • POI(興味のある地点)検索:世界中の数百万件の事業所、ランドマーク、場所を検索
  • マルチモーダルルーティング:リアルタイム交通情報を利用した自動車、徒歩、自転車のルート検索
  • 移動時間マトリックス:アクセシビリティを分析し、物流を最適化
  • ルート最適化:複数の立ち寄り先を訪問する最適な順序を検索(巡回セールスマン問題)
  • マップマッチング:GPS の軌跡を道路網にスナップして、見やすいルートを表示
  • 等時間圏の生成:特定の時間または距離の制約内で到達可能なエリアを可視化
  • ライブのインタラクティブマップ描画(render_map_tool):ルート、検索結果、独自の GeoJSON を、チャット内の実際の Mapbox GL JS マップに表示
  • 静的マップ画像:場所、ルート、地理データを視覚的に表現
  • オフライン地理空間計算:API 呼び出しなしで距離、面積、方位、バッファー、空間分析を実行

AI 旅行アシスタント、物流最適化ツール、位置情報ベースのレコメンダーなど、「場所」を理解する必要があるアプリケーションを構築する場合、Mapbox MCP Server が実現に必要な空間インテリジェンスを提供します。Claude Desktop や VS Code などの一般的なクライアントでも有効にできます。詳しくは以下をご覧ください。

Mapbox MCP Server Demo

使用方法

この MCP サーバーを使用するには、Mapbox アクセストークンが必要です。

ホスト型 MCP エンドポイント

すぐに利用するには、ホスト型 MCP エンドポイントを使用できます。

エンドポイント:https://mcp.mapbox.com/mcp

各種クライアントの詳細なセットアップ手順と API の使用方法については、ホスト型 MCP Server ガイドをご覧ください。

Mapbox アクセストークンを取得するには:

  1. mapbox.com/signup で無料の Mapbox アカウントを作成します
  2. アカウントページに移動します
  3. 新しいトークンを作成するか、デフォルトの公開トークンを使用します

Mapbox アクセストークンの詳細については、アクセストークンに関する Mapbox ドキュメントをご覧ください。

統合ガイド

各種統合の詳細なセットアップ手順については、以下のガイドをご覧ください。

  • Claude Desktop のセットアップ - Claude Desktop をこの MCP サーバーと連携するように設定する手順
  • Goose のセットアップ - Goose AI エージェントフレームワークのセットアップ
  • VS Code のセットアップ - Visual Studio Code で開発環境をセットアップする手順
  • Cursor AI IDE のセットアップ - Cursor AI IDE で開発環境をセットアップする手順
  • Smolagents の統合 - Smolagents AI エージェントを Mapbox のツールに接続する例
  • ツールを直接インポート - MCP サーバーを実行せずに、独自のアプリケーションで Mapbox ツールを使用
  • render_map_tool ガイド - マップ可視化プリミティブ:完全なペイロードスキーマと、他の Mapbox ツールを使わずに独自データを単独で描画する方法
  • Elicitation - search_and_geocode_tool と directions_tool が、結果の曖昧さを解消したりルートを選択したりするようユーザーに尋ねる方法、およびクライアントが対応していない場合に適切にフォールバックする方法

プロンプトの例

セットアップ後、Claude Desktop やその他の MCP クライアントで次のプロンプトを試してください。

位置情報の特定

座標を起点とするクエリ(「近くに何がある?」「ここは何という地区?」「N 分以内にどこまで行ける?」など)には、ground_location_tool を使用します。逆ジオコーディング、カテゴリ検索、等時間圏を 1 回の呼び出しで組み合わせ、クエリに応じて適切な方法を選択します。また、引用情報付きの型付きレコード(名称、住所、座標、距離、到達可能範囲のポリゴン)を返します。

以下の 4 つのプロンプトは、それぞれ異なる方法を 1 回のツール呼び出しで実行します。

  • 近隣地域 — 「47.6097, -122.3408 は何という地区で、周辺には何がありますか?」
  • POI — 「40.7580, -73.9855 から徒歩 10 分以内のコーヒーショップ」
  • 地域 — 「37.7749, -122.4194 から徒歩 15 分でどこまで行けますか?」
  • ルーティング — 「34.0522, -118.2437 で人を降ろすのに最も近い、ルート上の地点」

場所の検索

  • 「エンパイア・ステート・ビルから徒歩圏内のコーヒーショップを探して」
  • 「シアトルからポートランドに行きたい。途中にスターバックスはある?」
  • 「ボストンからニューヨークまでのルート沿いにあるガソリンスタンドを表示して」
  • 「タイムズスクエアの近くにあるレストランは?」

ナビゲーションと移動

  • 「現在の交通状況を考慮して、LAX からハリウッドまでの車のルートを教えて」
  • 「セントラルパークからタイムズスクエアまで歩くとどれくらいかかる?」
  • 「ラッシュアワーにホテル(フォーシーズンズ)から JFK 空港までタクシーで移動する時間を計算して」

可視化とマップ

  • 「Mapbox マップ描画ツールを使って、サンフランシスコのゴールデンゲートブリッジからユニオンスクエアまでのルートを表示して」— 実際の Mapbox マップ上にライブのインタラクティブなルートを描画します
  • 「ゴールデンゲートブリッジからフィッシャーマンズワーフまでのルートを示すマップ画像を作成し、両方の場所にマーカーを付けて」
  • 「マンハッタンの衛星画像を表示し、主要なランドマークに印を付けて」
  • 「シアトル中心部から 1 マイル以内にあるすべてのスターバックスを強調したマップを生成して」
  • 「次の座標に塗りつぶしポリゴンを表示し、[...] に『倉庫』というラベルのマーカーを付けて」— 他の Mapbox ツールを使わず、render_map_tool で独自の GeoJSON を直接描画します

分析と計画

  • 「ポートランド中心部から車で 30 分以内に到達できるエリアを表示して」
  • 「デンバーのホテル 3 軒(マリオット、シェラトン、ヒルトン)とコンベンションセンター間の移動時間マトリックスを計算して」
  • 「サンフランシスコの観光名所 3 か所(ゴールデンゲート、ミュージカル・ステアーズ、フィッシャーマンズワーフ)を訪れる最適なルートを探して」
  • 「次の 8 件の住所への配送ルートを最適化して:[住所のリスト]」

GPS とルートのマッチング

  • 「この GPS の軌跡を整えて、道路上の実際のルートを表示して:[タイムスタンプ付き座標のリスト]」
  • 「記録した自転車の走行経路を自転車用ネットワークにスナップして:[GPS 座標]」
  • 「この車のルートを道路網にマッチさせ、交通渋滞のレベルを表示して」

オフライン地理空間計算

  • 「この 2 つの座標間の距離は何マイル?」
  • 「このポリゴンの面積を平方キロメートルで計算して」
  • 「37.7749°N, 122.4194°W の地点は、このサービスエリアのポリゴン内にある?」
  • 「サンフランシスコからニューヨークへの方位は?」
  • 「ロンドンとパリの中間地点を見つけて」
  • 「この場所の周囲に半径 5 マイルのバッファーゾーンを作成して」
  • 「この近隣地域の境界の重心を計算して」
  • 「これらのルート座標のバウンディングボックスは?」
  • 「この複雑なポリゴンを簡略化して、点の数を減らして」

より良い結果を得るためのヒント

  • 場所を具体的に指定します(完全な住所やランドマーク名を使用)
  • 希望する移動手段(自動車、徒歩、自転車)を指定します
  • 必要に応じて時間の条件を含めます(「ラッシュアワーに」「午後 3 時に」)
  • 必要に応じて出力形式を指定します(「マップ画像として」「JSON 形式で」)

詳しい例: さまざまなユースケースでのルート沿い検索プロンプトの包括的な例と MCP Inspector のテスト手順については、examples/search-along-route.mdをご覧ください。

リソース

MCP サーバーは、静的な参照データを MCP リソースとして公開します。リソースを使うと、ツールを呼び出さずにクライアントから直接参照できる読み取り専用データにアクセスできます。

利用可能なリソース

Mapbox カテゴリリソース

URI パターン:mapbox://categories または mapbox://categories/{language}

カテゴリ検索ツールで使用できるカテゴリ ID の一覧にアクセスします。カテゴリを使うと、種類(例:「restaurant」、「hotel」、「gas_station」)で検索結果を絞り込めます。

例:

  • mapbox://categories - デフォルト(英語)のカテゴリ一覧
  • mapbox://categories/ja - 日本語のカテゴリ名
  • mapbox://categories/es - スペイン語のカテゴリ名

リソースへのアクセス方法:

  • MCP リソースをネイティブにサポートするクライアント:resources/read MCP プロトコルメソッドを使用
  • リソースをサポートしないクライアント:リソース URI を指定して resource_reader_tool を使用

リッチなマッププレビュー(render_map_tool)

このサーバーのすべての地理空間ツール(ルート案内、等時間圏、検索など)は、サーバー唯一の可視化プリミティブである render_map_tool を使って、結果をライブのインタラクティブな Mapbox GL JS マップとして表示できます。対応クライアントでは、MCP Apps プロトコル(@modelcontextprotocol/ext-apps)を通じて、全画面表示の切り替え機能を備えた自己完結型 HTML パネルをチャット内に直接描画します。

  • Claude Desktop ✅
  • GitHub Copilot を使用した VS Code ✅
  • Claude Code ✅
  • Goose ✅

この機能を使うために、このサーバーの他のツールは必要ありません。 render_map_tool は、独自のポリゴン、マーカー、ルートなど、手作業で作成した GeoJSON も直接受け付けます。directions_tool、isochrone_tool、その他の Mapbox API 呼び出しに依存しません。ペイロードスキーマと単独で動作する完全な例については、**render_map_tool の完全ガイド**をご覧ください。

MCP Apps に対応していないクライアントで確実に静的画像を表示する必要がある場合は、代わりに static_map_image_tool を使用してください。すべてのクライアントで表示できる、base64 エンコードされた PNG/JPEG が返されます。

CLIENT_NEEDS_RESOURCE_FALLBACK

リソースフォールバックツール(非準拠クライアント向けのオプトイン機能)

リソースは MCP の中核機能であり、ほとんどのクライアント(Claude Desktop、VS Code、MCP Inspector など)がサポートしています。ただし、smolagents など、一部のクライアントはリソースをまったくサポートしていません。そのようなクライアント向けに、サーバーはリソースと同じ内容をツール呼び出しで提供する「リソースフォールバックツール」を用意できます。

フォールバックツール:

  • resource_reader_tool - URI を指定して任意のリソースを読み取る汎用フォールバック
  • category_list_tool - カテゴリ一覧(mapbox://categories)へのアクセスを提供

デフォルトでは、これらのツールは含まれません(クライアントがリソースをサポートしていることを前提とします)。クライアントがリソースをサポートしていない場合は、フォールバックツールを有効にしてください。

export CLIENT_NEEDS_RESOURCE_FALLBACK=true

この設定を有効にする場合:

  • ✅ smolagents など、リソースをサポートしないクライアントを使用する場合は、true に設定します
  • ❌ Claude Desktop、VS Code、MCP Inspector、またはリソース対応クライアントを使用する場合は、設定しないでください(デフォルト)
  • ❌ 不明な場合は設定しないでください(ほとんどのクライアントはリソースをサポートしています)

ツール

ユーティリティツール

リソースリーダーツール

ネイティブの MCP リソース API をサポートしないクライアント向けに、MCP リソースへのアクセスを提供します。カテゴリ一覧などのリソースを読み取る際に使用します。

パラメーター:

  • uri:読み取るリソース URI(例:mapbox://categories、mapbox://categories/ja)

使用例:

  • デフォルトのカテゴリを読み取る:{"uri": "mapbox://categories"}
  • 日本語のカテゴリを読み取る:{"uri": "mapbox://categories/ja"}

注記:MCP クライアントがネイティブリソースに対応している場合は、パフォーマンス向上のため、リソース API を直接使用してください。

オフライン地理空間ツール

これらのツールは、Mapbox API を呼び出さずに完全オフラインで地理空間計算を実行します。正確な地理計算には Turf.js を使用し、インターネットに接続できない場所でも動作します。

距離ツール

ハーバーサイン公式を使って、2 つの地理座標間の距離を計算します。

機能:

  • キロメートル、マイル、メートル、フィート、海里など、複数の単位に対応
  • 正確な大圏距離を計算
  • API 呼び出し不要

使用例:「サンフランシスコ(37.7749°N, 122.4194°W)とニューヨーク(40.7128°N, 74.0060°W)の間の距離は?」

ポリゴン内の点を検索するツール

1 つ以上の点がポリゴンまたはマルチポリゴン内にあるかを判定し、内側にある点だけを返します。1 つの点にも、1 回の呼び出しで複数の点にも対応します。

機能:

  • 穴を含む複雑なポリゴンに対応
  • マルチポリゴンに対応
  • 1回の呼び出しで任意の数のポイントを一括テスト
  • ジオフェンシング、配送エリアの検証、顧客セグメンテーションに便利

使用例: 「これらの配送先住所のうち、サービスエリア内にあるのはどれですか?」

Destination Tool

測地線(大円)に沿ったオフセットを使用して、開始地点、方位、距離から目的地のポイントを計算します。

機能:

  • ルートに沿った経路ではなく、直線距離でオフセット
  • 「Xから北へ5kmの地点を探す」や検索オフセットの作成に便利
  • API呼び出し不要

使用例: 「スペースニードルから北東へ10kmの地点はどこですか?」

Bearing Tool

2つの座標間のコンパス方位を計算します。

機能:

  • 方位を度数(0~360°)で返す
  • 方角(N、NE、E、SE、S、SW、W、NW)を提示
  • ナビゲーションや方向に関する問い合わせに便利

使用例: 「ここから空港へ行くには、どの方向に進めばよいですか?」

Midpoint Tool

大円経路に沿った2つの座標間の地理的な中間点を求めます。

機能:

  • 地球の曲面上の正確な中間点を計算
  • 待ち合わせ場所の提案に便利
  • 長距離の計算にも正しく対応

使用例: 「サンフランシスコとニューヨークの中間地点はどこですか?」

Centroid Tool

ポリゴンまたはマルチポリゴンの幾何学的中心(重心)を計算します。

機能:

  • 複雑な形状に対応
  • すべての点の算術平均を返す
  • ラベルやマーカーの配置に便利

使用例: 「この近隣地区の境界を示すマーカーはどこに配置すればよいですか?」

Area Tool

ポリゴンの面積を計算します。

機能:

  • 平方メートル、平方キロメートル、エーカー、ヘクタール、平方マイル、平方フィートなど、複数の単位に対応
  • 地表面上の面積を正確に計算
  • あらゆるサイズのポリゴンに対応

使用例: 「この公園の面積は何エーカーですか?」

Bounding Box Tool

ジオメトリを含む最小の境界ボックス(bbox)を計算します。

機能:

  • ポイント、ライン、ポリゴン、マルチポリゴンに対応
  • [minLongitude, minLatitude, maxLongitude, maxLatitude] を返す
  • ビューポートの計算や空間インデックス作成に便利

使用例: 「このルートの境界ボックスは何ですか?」

Buffer Tool

ポイント、ライン、ポリゴンの周囲にバッファーゾーン(ポリゴン)を作成します。

機能:

  • 複数の距離単位に対応
  • ポイントの周囲に円形バッファーを作成
  • 近接分析や影響範囲の作成に便利

使用例: 「この場所の周囲に5kmのバッファーゾーンを表示してください」

Simplify Tool

Douglas-Peuckerアルゴリズムを使用して、ラインまたはポリゴンの頂点数を減らします。

機能:

  • 詳細度を調整できる許容誤差
  • 全体的な形状を保ちながら複雑さを軽減
  • ファイルサイズの削減や描画パフォーマンスの向上に便利
  • トポロジーを維持するオプション(自己交差を防止)

使用例: 「この複雑な境界を簡略化して、ポイント数を減らしてください」

Length Tool

一連の座標で定義されたラインの全長を測定します。

機能:

  • キロメートル、マイル、メートル、フィートに対応
  • ルーティングAPIを呼び出さずに、描画したルート、経路、境界の測定に便利

使用例: 「このハイキングコースの長さはどれくらいですか?」

Convex Tool

一連のポイントの凸包、つまりすべてのポイントを含む最小の凸ポリゴンを計算します。

機能:

  • 境界領域の分析やカバー範囲の推定に便利
  • API呼び出しなしでオフライン動作

使用例: 「これらすべての店舗の場所を含む最小のポリゴンは何ですか?」

Nearest Point Tool

指定したターゲットポイントに最も近い、コレクション内のポイントを見つけます。

機能:

  • 候補ごとに distance_tool を呼び出して並べ替えるより効率的
  • 場所に最も近い店舗、停留所、ランドマークを見つけるのに便利

使用例: 「これらの店舗のうち、現在地に最も近いのはどれですか?」

Nearest Point on Line Tool

ポイントをラインまたはルート上の最も近い位置にスナップし、そのポイントと距離を返します。

機能:

  • 「このルート上で現在地に最も近い地点はどこですか?」という質問や、API呼び出しなしのマップマッチングに便利

使用例: 「このハイキングコース上で、今いる場所に最も近い地点はどこですか?」

Union, Intersect, and Difference Tools

2つ以上のポリゴンを結合または比較します。union_tool はそれらを1つのジオメトリに統合し、intersect_tool は共通する領域を求め、difference_tool は一方からもう一方を差し引きます。

機能:

  • サービスエリアの統合、カバー範囲の重複の特定、除外ゾーンの計算(例:「ゾーンAではカバーされているが、ゾーンBではカバーされていない範囲はどこですか?」)に便利
  • 完全にオフラインで動作 — API呼び出し不要
  • それぞれが render_map_tool 参照を返すため、結果を直接可視化可能

使用例: 「この2つの配送ゾーンを1つのカバーエリアに統合してください」 / 「この2つの等時間圏が重なるのはどこですか?」 / 「このサービスエリアのうち、15分の等時間圏でカバーされていない部分はどこですか?」

Mapbox API Tools

Category List Tool (Deprecated)

⚠️ 非推奨: 代わりにURI mapbox://categories を指定して resource_reader_tool を使用するか、クライアントがMCPリソースに対応している場合は mapbox://categories リソースに直接アクセスしてください。

このツールは、MCPリソースまたはresource_reader_toolに対応していないクライアントとの後方互換性のために維持されています。

Matrix Tool

Mapbox Matrix APIを使用して、複数のポイント間の移動時間と距離を計算します。主な機能:

  • 1対多、多対1、多対多の効率的なルーティング計算
  • さまざまな移動プロファイル(driving-traffic、driving、walking、cycling)に対応
  • 交通状況を考慮した計算の出発時刻指定
  • 距離と所要時間の指標によるルートの要約
  • 進入方法(curb/unrestricted)と許容される出発方位の範囲を制御

Static image tool

Mapbox static image APIを使用して静的な地図画像を生成します。主な機能:

  • カスタム地図スタイル(streets、outdoors、satelliteなど)
  • 画像サイズとズームレベルを調整可能
  • 色やラベルをカスタマイズした複数のマーカーに対応
  • ポリラインやポリゴンなどのオーバーレイオプション
  • 指定した座標に合わせて自動調整

Category search tool

Mapbox Search Box category search APIを使用してカテゴリ検索を実行します。主な機能:

  • カテゴリ別に施設を検索(レストラン、ホテル、ガソリンスタンドなど)
  • 地理的な近接性による絞り込み
  • 結果数の上限をカスタマイズ可能
  • 各結果の詳細なメタデータ
  • 複数の言語に対応

Reverse geocoding tool

Mapbox geocoding V6 APIを使用して逆ジオコーディングを実行します。主な機能:

  • 地理座標を人が読める住所に変換
  • 詳細度をカスタマイズ可能(通り、近隣地区、市など)
  • 種類による結果の絞り込み(住所、POI、近隣地区など)
  • 複数の言語に対応
  • 詳細な位置コンテキスト情報

Ground location tool

「この座標の近くには何がありますか?」という質問に、地名、近隣の施設、移動時間内に到達可能な範囲をまとめて1回の呼び出しで回答します。出典には、引用付きの最新のMapboxデータを使用します。reverse_geocode_tool とウェブ検索を連鎖させる代わりに、このツールを使用してください。

機能:

  • 問い合わせを分類(ルーティング、近隣地域の情報、POI検索、地域/到達可能範囲)し、関連するデータのみを取得
  • 要求に応じてカテゴリ別に近隣のPOIを検索
  • 移動時間内に到達可能な範囲の概要(等時間圏ベース)
  • 位置情報と地図上に表示された近隣POIを含む render_map_tool 参照を返す

使用例: 「この座標はどの近隣地区にありますか?近くにコーヒーショップはありますか?」

Place details tool

Mapbox IDを使用して特定の場所の詳細情報(写真、営業時間、評価、電話番号、ウェブサイトURL)を取得します。特定の検索結果の詳細を確認するには、search_and_geocode_tool、category_search_tool、または reverse_geocode_tool の後に使用してください。

使用例: 「最初に表示されたコーヒーショップについて、営業時間、電話番号、ウェブサイトを教えてください」

Directions tool

Mapbox Directions APIを使用してルート案内を取得します。主な機能:

  • さまざまなルーティングプロファイルに対応: driving(リアルタイム交通情報または通常時)、walking、cycling
  • 複数の経由地を通るルート(座標ペア2~25組)
  • 代替ルートのオプション
  • ルート注釈(距離、所要時間、速度、混雑状況)
  • スケジュールオプション:
    • drivingおよびdriving-trafficプロファイルの将来の出発時刻(depart_at)
    • drivingプロファイルのみの希望到着時刻(arrive_by)
  • プロファイル固有の最適化:
    • driving: 車両寸法の制約(高さ、幅、重量)
  • ルーティングの除外オプション:
    • 一般的な除外項目: フェリー航路、現金払いのみの有料道路
    • driving固有の除外項目: 有料道路、高速道路、未舗装道路、トンネル、国境、州境
    • カスタム地点の除外(回避する地理的ポイントを最大50個指定)
  • GeoJSONジオメトリ出力形式

Isochrone tool

Mapbox Isochrone APIを使用して、指定した場所から所定の時間内に到達可能なエリアを計算します。主な機能:

  • さまざまな移動プロファイル(driving、walking、cycling)に対応
  • 移動時間または距離をカスタマイズ可能
  • 複数の等値線を生成(例: 15分、30分、45分の範囲)
  • 出発時刻または到着時刻を任意で指定
  • 可視化用の色をカスタマイズ可能

Search and geocode tool

Mapbox Search Box Text Search APIエンドポイントを使用して、POI、住所、場所、および同APIが対応するその他の種類の検索とジオコーディングを行います。 このツールは、以前はForwardGeocodeToolとPoiSearchTool(このMCPサーバーの旧バージョンで提供)に分かれていた機能を1つに統合したものです。

Map matching tool

Mapbox Map Matching APIを使用して、GPSトレースを道路網にスナップします。主な機能:

  • ノイズの多いGPSトレースを道路網上の正確なルートに変換
  • さまざまな移動プロファイル(driving、driving-traffic、walking、cycling)に対応
  • 1リクエストあたり最大100組の座標ペアに対応
  • 速度に基づく精度向上のため、タイムスタンプを任意で指定
  • GPSの品質レベルに応じてスナップ半径を設定可能
  • ルート注釈(制限速度、距離、所要時間、交通渋滞)
  • 複数のジオメトリ出力形式(GeoJSON、polyline)

使用例: 「このGPSトレースを整えて道路にスナップしてください: [タイムスタンプ付き座標]」

Optimization tool

Mapbox Optimization APIを使用して、複数の場所を巡る最適なルートを見つけます。主な機能:

  • 2~12か所を対象に巡回セールスマン問題(TSP)を解く
  • さまざまな移動プロファイル(driving、driving-traffic、walking、cycling)に対応
  • 出発地点と終点を柔軟に設定
  • 往復または片道の移動を最適化
  • ターンバイターンのナビゲーション案内(任意)
  • ルート注釈(距離、所要時間、速度)
  • 複数のジオメトリ出力形式(GeoJSON、polyline)

使用例: 「次の5か所を訪れる最適なルートを見つけてください: [住所または座標のリスト]」

注: 高度な機能(時間枠、容量制約、複数車両)を備えたV2 APIも利用できますが、ベータアクセスが必要です。V2の実装はコードベースに含まれていますが、デフォルトでは登録されていません。

Feedback tool

Mapbox Feedback API(Public Preview)を通じて、アプリまたはエージェントに関するユーザーのフィードバックを開発者に送信します。フィードバックはアクセストークンを所有するアカウントに記録されます。そのため、このサーバー上で独自のトークンを使ってアプリやエージェントを構築すると、ユーザーからのフィードバックはアプリのFeedback Agentレポートと同じフィードに届き、Feedback Explorerで確認できます。Mapboxへの問題報告には使用されません。Feedback Agentと同様に、ユーザーのニーズを把握するのに役立つ製品に関するあらゆる内容を送信できます。たとえば:

  • 閉業している、詳細が間違っている、または場所がずれている地点
  • 見つからない地点や住所
  • 通行止めの道路、間違った制限速度、または誤って表示されている交通状況
  • 違法な曲がり方や進入路を含むルート、またはルートが表示されない問題
  • バグや提案など、アプリ自体に関すること (application_issue)

フィードバックのテキスト、カテゴリ、場所を送信し、アイテムの ID とステータスを返します。場所に関するものではないフィードバックの場合、場所は省略可能です。API では場所が必須のため、現時点では Feedback API チームの推奨に従い、ツールは 0, 0 を送信します。ユーザーの許可なく送信されることはありません。elicitation に対応するクライアントでは、最初に確認プロンプトが表示され、それ以外の環境では、ツールの説明でモデルにチャット内で確認するよう求めます。

Feedback API は Public Preview 期間中は無料です。General Availability では、Feedback Agent はフィードバック 1 件につき $0.02 を請求します。同じ問題を二重に報告しないよう、送信前にツールは過去 30 日間にアカウントから送信されたレポートを確認します。同じカテゴリで 50 m 以内にあり、まだ審査待ちのレポートがある場合(場所のないフィードバックは確認対象外)、新しいレポートを送信せず、そのレポートを返します。Feedback API で一覧表示できるのはアカウント自身のレポートのみなので、他のアカウントからのレポートは検出できません。ユーザーが別の問題だと言った場合、send_anyway: true はこの確認をスキップします。

要件: 送信にはアクセストークンに user-feedback:write スコープが必要で、重複確認には user-feedback:read が必要です。書き込みスコープがない場合、ツールはその旨を示すエラーを返します。読み取りスコープがない場合、確認せずに送信し、その旨を結果に示します。このツールを含めない場合は、--disable-tools feedback_tool を指定してサーバーを起動します。

使用例: 「Mint St の Blue Bottle は去年閉店しました。フィードバックとして送信してもらえますか?」

Report ツール

Mapbox MCP サーバー自体に関するバグ、誤った結果や紛らわしい結果を返したツール、機能の不足、提案などを、サーバーを開発する Mapbox チームに送信します。これはユーザー自身のアカウントではなく Mapbox のアカウントで報告されるため、追加のトークンスコープは不要です。また、送信後に読み返したり取り消したりすることはできません。地図、地点、ルート案内のデータの誤りを報告するためのものではありません。

サーバーは、バージョン、クライアント名とバージョン、フィードバックの対象となるツールをテキストの末尾に追加します。ユーザーの許可なく送信されることはありません。elicitation に対応するクライアントでは、最初に確認プロンプトが表示され、それ以外の環境では、ツールの説明でモデルにチャット内で確認するよう求めます。

Feedback API チームが Mapbox CLI の mapbox report コマンド用に追加したエンドポイントを使用します。このツールを含めない場合は、--disable-tools report_tool を指定してサーバーを起動します。

使用例: 「地図に等時間圏がひとつも描画されませんでした。Mapbox MCP チームに知らせてもらえますか?」

公開トークン一覧表示ツール

チャット外で Mapbox GL JS を読み込んだり、ブラウザーから Mapbox API を呼び出したりする Web ページやアプリをエージェントが構築するために、アカウントの公開 (pk.) アクセストークンを一覧表示します。チャット内では、render_map_tool にトークンは不要です。各トークンについて、名前、デフォルトかどうか、URL 制限、スコープが表示されます。

site_url(ページを実行する場所)を渡すと、アカウントにその URL に制限されたトークンがある場合、ツールはそのトークンを推奨します。ない場合は、デフォルトの公開トークンを推奨し、公開サイトでは代わりに URL 制限付きトークンを使用するよう案内して、作成ページへのリンクを示します。制限のない公開トークンは、コピーした人なら誰でも使用でき、使用料金はアカウントに請求されます。

シークレットトークンや一時トークンは返しません。また、トークンを作成することもできません(その操作には tokens:write が必要です。DevKit server の create_token_tool で作成できます)。

要件: 一覧表示には tokens:read スコープが必要です。これは、チャット内の地図がデフォルトの公開トークンを見つけるためにすでに使用しているものと同じです。pk. アクセストークンを使用している場合、またはサーバー独自の MAPBOX_ACCESS_TOKEN で一覧表示に失敗し、MAPBOX_PUBLIC_TOKEN が設定されている場合は、そのトークンを代わりに返します。独自の bearer token を持つ呼び出し元(ホスト型サーバー)には MAPBOX_PUBLIC_TOKEN が返されることはなく、他の URL に制限されたトークンが推奨されることもありません。このツールを含めない場合は、--disable-tools list_public_tokens_tool を指定してサーバーを起動します。

使用例: 「Mapbox の地図に 3 つの店舗の場所を表示する 1 ページのサイトを作ってください。」

開発

サーバーの検査

Node.js を使用する

# Run the built image
npm run inspect:build

Docker を使用する

# Build the Docker image
docker build -t mapbox-mcp-server .

# Run and inspect the server
npx @modelcontextprotocol/inspector docker run -i --rm --env MAPBOX_ACCESS_TOKEN="YOUR_TOKEN" mapbox-mcp-server

新しいツールの作成

npx plop create-tool
# provide tool name without suffix (e.g. Search)

新しいバージョンのリリース

# 1. Bump version in package.json
npm version <new-version> --no-git-tag-version

# 2. Sync version to manifest.json and server.json
npm run sync-manifest

# 3. Prepare CHANGELOG (replaces "Unreleased" with version and date)
npm run changelog:prepare-release <new-version>

# 4. Update package-lock.json
npm install

# 5. Review changes, then commit and tag
git add package.json package-lock.json manifest.json server.json CHANGELOG.md
git commit -m "Release v<new-version>"
git tag v<new-version>
git push && git push --tags

重要: publisher workflow は、package.json と server.json のバージョンがリリースバージョンと一致することを検証します。バージョンの更新やマニフェストの同期を省略すると、公開に失敗します。

OpenTelemetry トレーシング

この MCP サーバーには、本番環境の可観測性を実現する包括的な OpenTelemetry トレーシングが含まれています。

クイックデモ

# 1. Copy the example configuration
cp .env.example .env

# 2. Edit .env to add your MAPBOX_ACCESS_TOKEN and configure tracing

# 3. Start Jaeger for local development
npm run tracing:jaeger:start

# 4. Run the server (it will automatically use .env configuration)
npm run inspect:build

# 5. View traces at http://localhost:16686

# 6. Stop Jaeger when done
npm run tracing:jaeger:stop

注: サーバーは起動時に .env ファイルから設定を自動的に読み込みます。.env.example ファイルには、複数の可観測性プラットフォーム向けの設定例が含まれています。

対応する可観測性プラットフォーム

.env.example には、次の設定例が含まれています。

クラウドプロバイダー:

  • ☁️ AWS X-Ray
  • ☁️ Azure Monitor (Application Insights)
  • ☁️ Google Cloud Trace

SaaS プラットフォーム:

  • 📊 Datadog
  • 📊 New Relic
  • 📊 Honeycomb
  • 📊 OTLP 互換の任意のバックエンド

本番環境の設定

設定手順の詳細については、docs/tracing.md を参照してください。内容は次のとおりです。

  • 🔧 プラットフォーム別の設定ガイド
  • 📊 認証とエンドポイントの設定
  • 🎯 カスタムトレース属性とコンテキスト
  • 🚀 パフォーマンスの最適化(オーバーヘッドを最小限に抑制)
  • 🔍 トラブルシューティングとデバッグ

トレーシング機能:

  • ✅ 設定読み込みのトレーシング(.env ファイルの読み込み)
  • ✅ ツール実行の自動トレーシング
  • ✅ CloudFront 相関 ID を含む HTTP リクエストの計測
  • ✅ エクスポーターの設定(console、OTLP)
  • ✅ セキュリティを重視(データ保護、JWT 検証)
  • ✅ 本番環境対応(CPU オーバーヘッド <1%)

コントリビューション

Mapbox MCP Server へのコントリビューションを歓迎します。プルリクエストを送信する前に、CONTRIBUTING.md をお読みください。

標準とガイドラインの全文:

コントリビューター向けクイックスタート

  1. リポジトリをフォークし、フォークをクローンします
  2. 依存関係をインストールします: npm install
  3. コーディング標準に従って変更を加えます
  4. テストと lint を実行します: npm test && npm run lint
  5. 新しい機能にはテストを追加します
  6. 明確な説明を添えてプルリクエストを送信します

すべてのコントリビューションは、CI チェックとコードレビューのプロセスに合格する必要があります。詳細な要件については、docs/engineering_standards.md を参照してください。

データの使用とプライバシー

Mapbox API に送信されるデータ

MCP サーバーのツールを使用すると、次のデータが環境から Mapbox API に直接送信されます。

  • ジオコーディングツール: 住所や場所のテキスト、座標、国や地域のフィルター
  • 検索ツール: 検索クエリ、近接検索用の位置座標、カテゴリフィルター
  • Directions ツール: 始点と終点の座標、経由地、ルート設定、車両の制約
  • Matrix ツール: 複数の座標ペア、移動プロファイル、出発時刻
  • 静的地図ツール: 座標、ズームレベル、スタイル設定、マーカー情報
  • Isochrone ツール: 起点の座標、時間や距離のパラメーター、移動プロファイル

プライバシーについて

  • ローカルでの実行: すべての API 呼び出しは、環境から Mapbox API に直接行われます
  • トークンのセキュリティ: Mapbox API トークンはローカルマシンに保持され、この MCP サーバーに送信または保存されることはありません
  • データの保存なし: この MCP サーバーは、データや API リクエストを保存、記録、収集しません
  • 直接通信: ユーザーと Mapbox API の間に中継サーバーはありません

サードパーティによるデータの使用

  • Mapbox のプライバシーポリシーが、Mapbox API に送信されるデータに適用されます: https://www.mapbox.com/legal/privacy/
  • API の使用: これらのツールを通じて行われるすべてのリクエストには、標準の Mapbox API 利用規約が適用されます
  • データの保持: データ保持ポリシーについては、Mapbox のドキュメントを参照してください

サポートとお問い合わせ

MCP Server に関する問題

Mapbox API に関する質問

メンテナンスへの取り組み

この MCP サーバーは Mapbox, Inc. が公式にメンテナンスしています。次の対応を行います。

  • 新しい Mapbox API 機能に対応する定期的な更新
  • バグ修正とセキュリティ更新
  • 最新の MCP プロトコルバージョンとの互換性
  • GitHub Issues を通じたコミュニティサポート

MIT License