关于 Openstreetmap Mcpserver
OpenStreetMap MCP Server 通过 OpenRouteService API,为 MCP 客户端提供基于 OpenStreetMap 的路线规划和地点搜索。它支持路线比较、距离矩阵、费用估算及多种出行方式。
主要功能
- 01计算含途经点的路线
- 02比较不同路线方案
- 03生成距离和时长矩阵
- 04估算燃油费和过路费
- 05搜索地点并进行反向地理编码
- 06支持驾车、步行和骑行
适用场景
- 01规划包含中途停靠点的行程
- 02比较避开收费路段或高速公路的路线
- 03估算行程距离、时长和费用
- 04查找地点或识别坐标位置
MCP 相关
它向 MCP 客户端提供路线计算、路线比较、距离矩阵、基本路线信息、费用估算、地点搜索和反向地理编码工具。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
OpenStreetMap MCP 服务
一个模型上下文协议(MCP)服务,通过 OpenRouteService API 将 OpenStreetMap 路线规划功能与 Claude AI 集成,用于高级路线规划、费用估算和地点搜索。
功能
- 路线计算:获取多个地点之间的最佳路线
- 路线比较:比较不同的路线选项(避开收费路段、高速公路等)
- 距离矩阵:计算多个起点和目的地之间的距离和耗时
- 费用估算:估算行程的燃油和通行费
- 地点搜索:使用 OpenStreetMap 地理编码查找地点
- 多种交通方式:支持驾车、步行和骑行
前提条件
- Node.js(推荐使用 18+ LTS 版本)——从 nodejs.org 下载
- OpenRouteService API 密钥——在 openrouteservice.org 免费获取
- 用于 MCP 集成的 Claude Desktop 应用
设置说明
1. 克隆并安装
git clone [your-repo-url]
cd openstreetmap-mcp-server
npm install
2. 获取 OpenRouteService API 密钥
- 访问 openrouteservice.org
- 注册免费账户
- 前往控制面板
- 创建新的 API 密钥
- 复制 API 密钥以供配置
3. 配置 API 密钥
编辑 config/config.json 并替换 API 密钥:
{
"openStreetMap": {
"apiKey": "your-actual-api-key-here"
}
}
4. 测试服务
# Test configuration
npm test
# Start in development mode
npm run dev
5. 配置 Claude Desktop
将以下内容添加到 Claude Desktop 的 MCP 设置文件中:
macOS:~/Library/Application Support/Claude/claude_desktop_config.json
Windows:%APPDATA%\\Claude\\claude_desktop_config.json
{
"mcpServers": {
"openstreetmap": {
"command": "node",
"args": ["/absolute/path/to/openstreetmap-mcp-server/src/index.js"],
"cwd": "/absolute/path/to/openstreetmap-mcp-server"
}
}
}
6. 开始使用
重启 Claude Desktop,即可提出以下问题:
- “查找从巴黎到柏林的最佳路线”
- “比较前往机场的路线,分别考虑避开和不避开收费路段”
- “从伦敦开车到爱丁堡的预估费用是多少?”
- “查找时代广场附近的餐厅”
可用工具
calculate_route
使用 OpenStreetMap 数据获取支持途经点的最佳路线。
参数:
origin(必需):起点(地址或 lat,lng 格式的坐标)destination(必需):终点(地址或 lat,lng 格式的坐标)waypoints(可选):中间地点数组mode(可选):交通方式——驾车、步行、骑行、公共交通avoidTolls(可选):是否避开收费道路的布尔值avoidHighways(可选):是否避开高速公路的布尔值
compare_routes
比较具有不同选项的多条备选路线。
参数:
origin(必需):起点destination(必需):终点options(必需):要比较的路线选项数组
get_matrix
获取多个起点和目的地之间的距离和耗时矩阵。
参数:
origins(必需):起点数组destinations(必需):目的地数组
get_traffic_info
获取基本路线信息(注意:OpenStreetMap 不提供实时交通信息)。
参数:
origin(必需):起点destination(必需):终点
estimate_costs
计算行程费用,包括燃油和通行费估算。
参数:
origin(必需):起点destination(必需):终点fuelPricePerLiter(可选):每升燃油价格(默认值:1.50)vehicleFuelEfficiency(可选):车辆燃油效率,单位为 km/liter(默认值:8.0)tollEstimatePerKm(可选):每公里预估通行费(默认值:0.05)
find_places
使用 OpenStreetMap 地理编码服务搜索地点。
参数:
query(必需):搜索词(例如,“餐厅”“酒店”)location(可选):搜索中心位置radius(可选):搜索半径,单位为米(默认值:1000)
配置选项
编辑 config/config.json 进行自定义:
{
"openStreetMap": {
"apiKey": "your-api-key"
},
"server": {
"port": 3001,
"host": "localhost"
},
"routing": {
"defaultProfile": "driving-car",
"maxWaypoints": 25,
"maxAlternatives": 3,
"units": "metric"
},
"costs": {
"fuelPricePerLiter": 1.50,
"vehicleFuelEfficiency": 8.0,
"tollEstimatePerKm": 0.05
}
}
故障排除
常见问题
1. “Error loading config”消息
- 检查
config/config.json是否存在且为有效的 JSON 格式 - 确保已正确设置 API 密钥
2. “API request failed”错误
- 确认你的 OpenRouteService API 密钥有效且已启用
- 在 openrouteservice.org 检查 API 配额限制
- 确保已连接互联网
3. “Address not found”错误
- 尝试使用坐标而非地址(lat,lng 格式)
- 确认该位置存在且可以访问
- 检查地址拼写
4. 服务无法启动
# Check Node.js version
node --version # Should be 18+
# Clear dependencies and reinstall
rm -rf node_modules package-lock.json
npm install
# Check for configuration errors
npm test
5. Claude Desktop 找不到服务
- 在 Claude Desktop 配置中使用绝对路径
- 更改配置后重启 Claude Desktop
- 检查 MCP 配置文件路径是否与操作系统相符
调试模式
使用调试日志运行:
DEBUG=* npm start
测试单个函数
你可以创建测试脚本或使用 npm test 命令来测试服务功能。
与 Google Maps 的区别
此 OpenStreetMap MCP 服务提供了与 Google Maps 类似的功能,但也存在一些关键区别:
优势
- 免费且开源:基础功能没有使用限制
- 注重隐私:不跟踪或收集数据
- 由社区驱动:数据由全球志愿者维护
- 可自定义:完全掌控路线规划配置和偏好设置
局限性
- 没有实时交通信息:无法获取交通数据
- 公共交通有限:公共交通路线规划功能有限
- 地理编码质量:在某些地区的准确性可能不如 Google
- 商业兴趣点:商业兴趣点较少
API 速率限制
OpenRouteService 免费套餐包括:
- 每天 2,000 次请求
- 每分钟 40 次请求
- 每月 2,000 次矩阵计算请求
如需更高的限制,可考虑在 openrouteservice.org 升级到付费套餐。
贡献
欢迎贡献!请随时提交 Pull Request。
许可证
MIT 许可证——可自由修改和分发。
关于
OpenStreetMap MCP Server——将开源地图服务引入 Claude AI
基于以下项目构建:
reverse_geocode
根据纬度和经度坐标获取地点名称和地址。
参数:
latitude(必需):纬度坐标(介于 -90 和 90 之间)longitude(必需):经度坐标(介于 -180 和 180 之间)zoom(可选):详情缩放级别(1-18,数值越大越详细,默认值:18)
使用示例:
reverse_geocode({
latitude: 48.8584,
longitude: 2.2945
})
响应格式:
{
"status": "success",
"coordinates": {
"latitude": 48.8584,
"longitude": 2.2945
},
"address": {
"formatted_address": "Tour Eiffel, Avenue Gustave Eiffel, Gros-Caillou, 7e Arrondissement, Paris, Île-de-France, France métropolitaine, 75007, France",
"name": "Tour Eiffel",
"street": "Avenue Gustave Eiffel",
"neighbourhood": "Gros-Caillou",
"locality": "Paris",
"region": "Île-de-France",
"country": "France",
"country_code": "FR",
"postal_code": "75007"
}
}
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。