mcpField
O
OpenStreetMap MCP Server

OpenStreetMap MCP Server

本地服务
github.com/jagan-shanmugam地图与出行23069 周前更新

关于 OpenStreetMap MCP Server

该项目是 OpenStreetMap MCP 服务的另一个条目,提供与第一个条目相同的地理编码、路线和周边搜索等位置服务。适合需要 OSM 地理数据的 LLM 应用,安装方式与其相同。

主要功能

  1. 01地址与坐标互相转换
  2. 02周边兴趣点与分类搜索
  3. 03路线指引
  4. 04多人会面点推荐
  5. 05充电站与停车场查询
  6. 06社区宜居性分析

适用场景

  1. 01为 MCP 主机提供地图查询能力
  2. 02比较通勤方式或推荐会面地点
  3. 03查找附近的充电站或停车设施

MCP 相关

该项目是一个 MCP 服务,向 MCP 客户端暴露多个地理空间工具,以及 location://place 和 location://map 等资源。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

OpenStreetMap(OSM)MCP 服务

一个 OpenStreetMap MCP 服务实现,通过位置服务和地理空间数据增强大模型的能力。

演示

优化会面地点

会面地点用例

社区分析

社区分析用例

停车搜索

停车搜索用例

安装

在 Claude Desktop、Cursor、Windsurf 等 MCP 宿主中
  • osm-mcp-server:主服务,可供公众使用。

    "mcpServers": {
      "osm-mcp-server": {
        "command": "uvx",
        "args": [
          "osm-mcp-server"
        ]
      }
    }
    

功能

此服务为大模型提供与 OpenStreetMap 数据交互的工具,可用于构建以下基于位置的应用:

  • 将地址和地点名称地理编码为坐标
  • 将坐标反向地理编码为地址
  • 查找附近的兴趣点
  • 获取地点之间的路线指引
  • 在边界框内按类别搜索地点
  • 为多人推荐最佳会面地点
  • 探索区域并获取全面的位置信息
  • 查找地点附近的学校和教育机构
  • 分析家和工作地点之间的通勤选择
  • 按连接器和功率条件筛选电动汽车充电站
  • 分析房地产社区宜居性
  • 查找停车设施及其可用情况和费用信息

组件

资源

此服务实现了基于位置的资源:

  • location://place/{query}:按名称或地址获取地点信息
  • location://map/{style}/{z}/{x}/{y}:获取指定坐标处的样式化地图图块
工具

此服务实现了多种地理空间工具:

  • geocode_address:将文本转换为地理坐标
  • reverse_geocode:将坐标转换为易读地址
  • find_nearby_places:查找地点附近的兴趣点
  • get_route_directions:获取地点之间的逐向路线指引
  • search_category:在某个区域内查找特定类别的地点
  • suggest_meeting_point:为多人查找最佳会面地点
  • explore_area:获取社区的全面数据
  • find_schools_nearby:查找特定地点附近的教育机构
  • analyze_commute:比较家和工作地点之间的交通方式
  • find_ev_charging_stations:按条件筛选并查找电动汽车充电设施
  • analyze_neighborhood:评估房地产社区的宜居性
  • find_parking_facilities:查找目的地附近的停车选择

本地测试

运行服务

如需在本地运行服务:

  1. 以开发模式安装软件包:
pip install -e .
  1. 启动服务:
osm-mcp-server
  1. 服务将启动,并通过标准输入/输出监听 MCP 请求。
使用示例客户端测试

此代码库在 examples/ 目录中包含两个示例客户端:

基础客户端示例

client.py 演示了 OSM MCP 服务的基本用法:

python examples/client.py

此示例将:

  • 连接到本地运行的服务
  • 获取有关旧金山的信息
  • 搜索该区域内的餐厅
  • 在进度跟踪的同时检索全面的地图数据
大模型集成示例

llm_client.py 提供了一个专为大模型集成设计的辅助类:

python examples/llm_client.py

此示例展示了大模型如何使用 Location Assistant 来:

  • 从文本查询中获取位置信息
  • 查找附近的兴趣点
  • 获取地点之间的路线指引
  • 查找最佳会面地点
  • 探索社区
编写自己的客户端

如需创建自己的客户端:

  1. 导入 MCP 客户端:
from mcp.client import Client
  1. 使用服务 URL 初始化客户端:
client = Client("http://localhost:8000")
  1. 调用工具或访问资源:
# Example: Geocode an address
results = await client.invoke_tool("geocode_address", {"address": "New York City"})
Claude Desktop 本地服务配置

MacOS:~/Library/Application\ Support/Claude/claude_desktop_config.json Windows:%APPDATA%/Claude/claude_desktop_config.json

开发/未发布服务配置
"mcpServers": {
  "osm-mcp-server": {
    "command": "uv",
    "args": [
      "--directory",
      "/path/to/osm-mcp-server",
      "run",
      "osm-mcp-server"
    ]
  }
}

开发

构建和发布

准备分发软件包:

  1. 同步依赖项并更新锁文件:
uv sync
  1. 构建软件包分发文件:
uv build

这将在 dist/ 目录中创建源代码分发包和 wheel 分发包。

  1. 发布到 PyPI:
uv publish

注意:你需要通过环境变量或命令标志设置 PyPI 凭据。

调试

由于 MCP 服务通过 stdio 运行,调试可能会比较困难。为了获得最佳调试体验,我们强烈建议使用 MCP Inspector。

你可以通过 npm 使用以下命令启动 MCP Inspector:

npx @modelcontextprotocol/inspector uv --directory /path/to/osm-mcp-server run osm-mcp-server

启动后,Inspector 会显示一个 URL,你可以在浏览器中访问该 URL 开始调试。

评论

支持 Markdown

第一次接触 MCP?

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

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