返回市场
地图盒-MCP服务器

地图盒-MCP服务器

作者:AidenYangX12 星标更新:2024-12-23

项目介绍

<!-- * @Author: AidenYangX * @Email: xscs709560271@gmail.com * @Date: 2024-12-21 23:30:55 * @Description: Mapbox MCP Server -->

Mapbox MCP Server

用于Mapbox API的MCP服务器。

功能

导航工具

  1. mapbox_directions

    • 获取坐标之间的导航方向
    • 输入参数:
      • coordinates ({latitude: number, longitude: number}[])
      • profile(可选):"driving-traffic", "driving", "walking", "cycling"
    • 返回值:包含步骤、距离和持续时间的路线详情
  2. mapbox_directions_by_places

    • 使用地点名称获取地点之间的导航方向
    • 输入参数:
      • places (string[]):地点名称数组
      • profile(可选):"driving-traffic", "driving", "walking", "cycling"
      • language(可选):两位字母的语言代码(例如:"zh", "en")
    • 返回值:
      • 每个地点的地理编码结果
      • 包含步骤、距离和持续时间的路线详情
      • 处理过程中发生的任何错误
  3. mapbox_matrix

    • 计算坐标之间的旅行时间和距离矩阵
    • 输入参数:
      • coordinates ({latitude: number, longitude: number}[])
      • profile(可选):"driving", "walking", "cycling"
      • annotations(可选):"duration", "distance", "duration,distance"
      • sources(可选):源坐标的索引
      • destinations(可选):目标坐标的索引
    • 返回值:点之间的持续时间和/或距离矩阵
  4. mapbox_matrix_by_places

    • 使用地点名称计算地点之间的旅行时间和距离矩阵
    • 输入参数:
      • places (string[]):地点名称数组(2-25个地点)
      • profile(可选):"driving", "walking", "cycling"
      • annotations(可选):"duration", "distance", "duration,distance"
      • language(可选):两位字母的语言代码
      • sources(可选):源地点的索引
      • destinations(可选):目标地点的索引
    • 返回值:
      • 每个地点的地理编码结果
      • 持续时间和/或距离矩阵
      • 处理过程中发生的任何错误

搜索工具

  1. mapbox_geocoding
    • 搜索地点并将地址转换为坐标
    • 输入参数:
      • searchText (string):要搜索的地点或地址
      • limit(可选):结果的最大数量(1-10)
      • types(可选):按地点类型过滤(国家、地区、地点等)
      • language(可选):两位字母的语言代码
      • fuzzyMatch(可选):启用/禁用模糊匹配
    • 返回值:包括坐标和属性在内的详细位置信息

Claude Desktop 集成

在您的 Claude Desktop 配置文件中添加此配置(通常位于 ~/Library/Application Support/Claude/claude_desktop_config.json):

{
  "mcpServers": {
    "mapbox-mcp-server": {
      "command": "node",
      "args": ["/absolute/path/to/mapbox-mcp-server/build/index.js"],
      "env": {
        "MAPBOX_ACCESS_TOKEN": "your-api-key"
      }
    }
  }
}

安装

先决条件

  • Node.js 16 或更高版本
  • TypeScript 4.5 或更高版本
  • 有效的 Mapbox API 密钥

API 密钥

按照此处的说明获取 Mapbox API 密钥。

设置您的 API 密钥作为环境变量:

export MAPBOX_ACCESS_TOKEN=your_api_key_here

请求限制

  • 导航 API:每分钟 300 次请求
  • 矩阵 API:
    • 每分钟 60 次请求(驾驶/步行/骑行)
    • 每分钟 30 次请求(驾驶-交通)
  • 地理编码 API:每分钟 600 次请求

部署

结构

在 mapbox-mcp-server 中,我们使用以下结构来管理服务器的处理器:

  • src/server/handlers/base.ts:所有处理器的基础类
  • src/server/registry.ts:所有处理器的注册表
  • src/server/main.ts:服务器的主要入口点

每个功能模块遵循以下结构:

src/
├── types/          # 类型定义
├── schemas/        # Zod 验证模式
├── tools/
│   ├── definitions/  # 工具定义
│   └── handlers/     # 工具实现
└── server/
    └── handlers/     # 处理器类

类图mapbox-mcp-server-class-diagram


流程图map_ box-mcp-server-process-diagram

错误处理

所有工具都实现了全面的错误处理:

  • 输入验证错误
  • API 请求失败
  • 请求限制错误
  • 服务特定错误(例如,未找到路线、无效坐标)

许可证

此 MCP 服务器根据 MIT 许可证发布。这意味着您可以自由地使用、修改和分发该软件,但需遵守 MIT 许可证中的条款和条件。更多详情,请参阅项目存储库中的 LICENSE 文件。