地图API服务

Yandex Maps MCP Server是一个提供地理编码、反向地理编码和地图渲染功能的API服务,适用于需要地图集成和位置服务的应用场景。

  • by peschinskiy
  • JavaScript
  • 混合部署
  • 16 星标
  • 更新于
在 GitHub 查看 peschinskiy/yandex-maps-mcp

使用说明

Yandex地图MCP服务器

Yandex Maps API的MCP服务器。

“给我看柏林地图”

“显示…的位置”

工具

  1. maps_geocode

    • 将地址转换为坐标
    • 输入:
      • country (string)-国家名称
      • lang (string)-语言代码(例如“ru_ru”、“en_US”)
      • state (字符串,可选)-州、地区或省名称
      • city (字符串,可选)-城市或地区名称
      • district (string,可选)-城市内的地区或街区
      • street (字符串,可选)-街道名称
      • house_number (字符串,可选)-房屋或建筑编号
    • 返回:位置、格式化地址、地址组件
  2. maps_reverse_geocode

    • 将坐标转换为地址
    • 输入:
      • latitude (编号)
      • longitude (编号)
      • lang (string)-语言代码(例如“ru_ru”、“en_US”)
    • 返回:位置、格式化地址、地址组件
  3. maps_render

    • 将地图渲染为png图像
    • 输入:
      • latitude (数字)-地图中心的纬度坐标
      • longitude (数字)-地图中心的经度坐标
      • latitude_span (数字)-地图图像的高度(度)
      • longitude_span (数字)-地图图像的宽度(度)
      • lang (string)-语言代码(例如“ru_ru”、“en_US”)
      • placemarks (数组,可选)-在地图上以“pm2rdm”样式显示的地点标记数组
        • 每个位置标记都应该有 latitude 和 longitude 属性
    • 返回:地图的PNG图像

设置

API密钥

您需要两个Yandex Maps API密钥:

  1. 用于地理编码函数的“JavaScript和Geocoder API”键
  2. 用于地图渲染的静态API键

要生成API密钥,请执行以下操作:

  1. 打开https://developer.tech.yandex.ru/并授权
  2. 点击“连接API”。选择“JavaScript和Geocoder API”并填写表格
  3. 导航到API的仪表板页面并将API键复制到那里
  4. 对静态API重复步骤2。

本地跑

  1. 克隆存储库
  2. 安装依赖项:
    npm install
    
  3. 设置API密钥:
    export YANDEX_MAPS_API_KEY="your-geocoder-api-key"
    export YANDEX_MAPS_STATIC_API_KEY="your-static-api-key"
    
  4. 构建服务器
    npm run build
    
  5. 运行服务器:
    node dist/index.js
    

使用Claude Desktop(stdio)

将以下内容添加到您的 claude_desktop_config.json:

{
  "mcpServers": {
    "yandex-maps": {
      "command": "node",
      "args": [
        "path/to/index.js"
      ],
      "env": {
        "YANDEX_MAPS_API_KEY": "<YOUR_GEOCODER_API_KEY>",
        "YANDEX_MAPS_STATIC_API_KEY": "<YOUR_STATIC_API_KEY>"
      }
    }
  }
}

用作HTTP服务器

该服务器支持用于远程访问和基于web的客户端(如n8n)的Streamable HTTP传输。

启动HTTP服务器

# Set required environment variables
export YANDEX_MAPS_API_KEY="your-geocoder-api-key"
export YANDEX_MAPS_STATIC_API_KEY="your-static-api-key"
export MCP_TRANSPORT="http"
export MCP_PORT="3000"  # Optional, defaults to 3000
export MCP_AUTH_TOKEN="your-secret-token"  # Optional but recommended

# Run the server
node dist/index.js

配置

HTTP服务器是 无状态 并使用以下环境变量:

  • MCP_TRANSPORT:设置为 "http" 启用HTTP模式(默认: "stdio")
  • MCP_PORT:HTTP服务器的端口号(默认值: 3000)
  • MCP_AUTH_TOKEN:用于身份验证的可选承载令牌。如果未设置,服务器将在没有身份验证的情况下运行(不建议用于生产)
  • YANDEX_MAPS_API_KEY:您的Yandex Geocoder API密钥(必需)
  • YANDEX_MAPS_STATIC_API_KEY:您的Yandex静态映射API密钥(必需)

认证

当 MCP_AUTH_TOKEN 如果已设置,客户端必须将其包含在 Authorization 头球

Authorization: Bearer your-secret-token

与n8n一起使用

要与n8n一起使用,请使用以下配置MCP客户端节点:

  • 服务器传输: HTTP Streamable
  • 统一资源定位符: http://your-server:3000 (根据需要调整主机和端口)
  • 认证:添加承载令牌(如果已配置)

已知限制

Yandex Maps Places API没有免费层,这意味着LLM无法通过Yandex Map MCP检索组织地址和坐标。它只能对模型已知或从其他来源(如显式用户输入、Web搜索或第三方MCP)检索到的地址或坐标进行地理编码。

许可证

此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。