article
README
🚀 Yandex Maps MCP 服务器
Yandex Maps MCP 服务器基于 Yandex Maps API 的 Map Conversion Protocol(MCP)构建,可实现地址与坐标转换、地图渲染等功能,为地图相关应用开发提供支持。
🚀 快速开始
要使用 Yandex Maps MCP 服务器,你需要先获取 API 密钥,然后在本地运行服务器。具体步骤如下:
API 密钥
你需要两个 Yandex Maps API 密钥:
- “JavaScript and Geocoder API” 密钥用于地理编码功能。
- 静态 API 密钥用于地图渲染。
生成 API 密钥的方法:
- 打开 https://developer.tech.yandex.ru/ 并授权登录。
- 点击 “连接 APIs”。选择 “JavaScript and Geocoder API” 并填写表单。
- 访问该 API 的仪表板页面并复制 API 密钥。
- 重复步骤 2 和 3 为静态 API 生成密钥。
本地运行
- 克隆仓库。
- 安装依赖项:
npm install
- 设置你的 API 密钥:
export YANDEX_MAPS_API_KEY="your-geocoder-api-key"
export YANDEX_MAPS_STATIC_API_KEY="your-static-api-key"
- 运行服务器:
npm start
✨ 主要特性
- 地址与坐标转换:提供
maps_geocode和maps_reverse_geocode工具,可实现地址与坐标的相互转换。 - 地图渲染:
maps_render工具可将地图渲染为 png 图像。
📦 安装指南
克隆仓库
首先,你需要将项目仓库克隆到本地:
git clone [仓库地址]
安装依赖
进入项目目录,使用以下命令安装所需依赖:
npm install
配置 API 密钥
设置环境变量以配置 API 密钥:
export YANDEX_MAPS_API_KEY="your-geocoder-api-key"
export YANDEX_MAPS_STATIC_API_KEY="your-static-api-key"
启动服务器
安装和配置完成后,使用以下命令启动服务器:
npm start
💻 使用示例
基础用法
地址转坐标
# 使用 maps_geocode 工具将地址转换为坐标
# 示例输入
{
"country": "Russia",
"lang": "en_US",
"city": "Moscow",
"street": "Tverskaya Street",
"house_number": "1"
}
坐标转地址
# 使用 maps_reverse_geocode 工具将坐标转换为地址
# 示例输入
{
"latitude": 55.7558,
"longitude": 37.6173,
"lang": "en_US"
}
地图渲染
# 使用 maps_render 工具渲染地图
# 示例输入
{
"latitude": 55.7558,
"longitude": 37.6173,
"latitude_span": 0.1,
"longitude_span": 0.1,
"lang": "en_US",
"placemarks": [
{
"latitude": 55.7558,
"longitude": 37.6173
}
]
}
🔧 技术细节
工具说明
maps_geocode
- 功能:将地址转换为坐标。
- 输入参数:
country(字符串):国家名称。lang(字符串):语言代码(例如 'ru_RU','en_US')。state(字符串, 可选):州、地区或省的名称。city(字符串, 可选):城市或地方名称。district(字符串, 可选):市区或城市内的社区。street(字符串, 可选):街道名称。house_number(字符串, 可选):房屋或建筑编号。
- 返回值:位置,格式化地址,地址组件。
maps_reverse_geocode
- 功能:将坐标转换为地址。
- 输入参数:
latitude(数字)。longitude(数字)。lang(字符串):语言代码(例如 'ru_RU','en_US')。
- 返回值:位置,格式化地址,地址组件。
maps_render
- 功能:渲染一张地图为 png 图像。
- 输入参数:
latitude(数字):地图中心的纬度坐标。longitude(数字):地图中心的经度坐标。latitude_span(数字):地图图像的高度(以度为单位)。longitude_span(数字):地图图像的宽度(以度为单位)。lang(字符串):语言代码(例如 'ru_RU','en_US')。placemarks(数组, 可选):在地图上显示的地标的数组,样式为 "pm2rdm",每个地标应包含latitude和longitude属性。
- 返回值:地图的 png 图像。
📄 许可证
项目使用 MIT 许可证。
⚠️ 重要提示
- 仅支持输入已知的地址或位置数据,无法检索未知或未定义的位置信息。
- 地图渲染功能可能会受到 API 使用条款的限制。
扫码联系在线客服