首页
学习
活动
专区
圈层
工具
发布
MCP广场 >详情页
MCP 会面点优化器2026-10-22297分享添加福利群:解决AI开发者的「MCP实战痛点」
通过基于位置的服务和地理空间数据增强大语言模型功能,使用户能够将地址编码为地理坐标、查找附近的兴趣点、获取路线、优化会面地点以及分析社区。
By jagan-shanmugam
2026-10-22297
github
详情内容

OpenStreetMap (OSM) MCP 服务器

这是一个OpenStreetMap MCP服务器实现,通过位置服务和地理空间数据增强大语言模型(LLM)的能力。

演示

会面点优化

会面点使用场景

社区分析

社区分析使用场景

停车搜索

停车搜索使用场景

安装

在MCP主机(如Claude Desktop、Cursor、Windsurf等)上

  • osm-mcp-server: 主服务器,可供公共使用。
"mcpServers": {
  "osm-mcp-server": {
    "command": "uvx",
    "args": [
      "osm-mcp-server"
    ]
  }
}

功能

该服务器为LLM提供与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集成示例

llm_client.py提供了一个为LLM集成设计的辅助类:

python examples/llm_client.py

此示例展示了LLM如何使用位置助手来:

  • 从文本查询中获取位置信息
  • 查找附近的兴趣点
  • 获取两个位置之间的方向
  • 找到最优会面点
  • 探索社区

编写自己的客户端

要创建自己的客户端:

  1. 导入MCP客户端:
from mcp.client import Client
  1. 使用您的服务器URL初始化客户端:
client = Client("http://localhost:8000")
  1. 调用工具或访问资源:
# 示例:地理编码一个地址
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以开始调试。

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档