mcpField
O
Openstreetmap Mcpserver

Openstreetmap Mcpserver

本地服务
github.com/ghassenTn地图与出行064 周前更新

关于 Openstreetmap Mcpserver

OpenStreetMap MCP Server 通过 OpenRouteService API,为 MCP 客户端提供基于 OpenStreetMap 的路线规划和地点搜索。它支持路线比较、距离矩阵、费用估算及多种出行方式。

主要功能

  1. 01计算含途经点的路线
  2. 02比较不同路线方案
  3. 03生成距离和时长矩阵
  4. 04估算燃油费和过路费
  5. 05搜索地点并进行反向地理编码
  6. 06支持驾车、步行和骑行

适用场景

  1. 01规划包含中途停靠点的行程
  2. 02比较避开收费路段或高速公路的路线
  3. 03估算行程距离、时长和费用
  4. 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 密钥
  1. 访问 openrouteservice.org
  2. 注册免费账户
  3. 前往控制面板
  4. 创建新的 API 密钥
  5. 复制 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"
  }
}

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。