OpenStreetMap(OSM)MCP服务器
OpenStreetMap MCP服务器实现,通过基于位置的服务和地理空间数据增强LLM功能。
演示
汇点优化
邻域分析
Neighborhood Analysis Use Case
停车场搜索
安装
在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:查找目的地附近的停车位
局部测试
运行服务器
要在本地运行服务器,请执行以下操作:
- 在开发模式下安装软件包:
pip install -e .- 启动服务器:
osm-mcp-server- 服务器将启动并监听标准输入/输出上的MCP请求。
使用示例客户端进行测试
存储库中包括两个示例客户端 examples/ 目录:
基本客户端示例
client.py 演示了OSM MCP服务器的基本用法:
python examples/client.py这将:
- 连接到本地运行的服务器
- 获取有关旧金山的信息
- 搜索该地区的餐馆
- 通过进度跟踪检索综合地图数据
LLM集成示例
llm_client.py 提供了一个为LLM集成设计的辅助类:
python examples/llm_client.py此示例显示了LLM如何使用位置助手:
- 从文本查询中获取位置信息
- 查找附近的景点
- 获取位置之间的路线
- 寻找最佳会面地点
- 探索社区
写自己的客户
要创建自己的客户端,请执行以下操作:
- 导入MCP客户端:
from mcp.client import Client- 使用服务器URL初始化客户端:
client = Client("http://localhost:8000")- 调用工具或访问资源:
# Example: Geocode an address
results = await client.invoke_tool("geocode_address", {"address": "New York City"})本地服务器的Claude桌面配置
在MacOS上: ~/Library/Application\ Support/Claude/claude_desktop_config.json 在Windows上: %APPDATA%/Claude/claude_desktop_config.json
Development/Unpublished Servers Configuration
"mcpServers": {
"osm-mcp-server": {
"command": "uv",
"args": [
"--directory",
"/path/to/osm-mcp-server",
"run",
"osm-mcp-server"
]
}
}发展
建筑与出版
准备分发包裹:
- 同步依赖关系并更新锁文件:
uv sync- 构建包分发:
uv build这将在 dist/ 目录。
- 发布到PyPI:
uv publish注意:您需要通过环境变量或命令标志设置PyPI凭据。
调试
由于MCP服务器在stdio上运行,调试可能具有挑战性。为了达到最佳调试效果 经验,我们强烈建议使用 MCP检查员.
您可以通过以下方式启动MCP检查器 使用此命令:
npx @modelcontextprotocol/inspector uv --directory /path/to/osm-mcp-server run osm-mcp-server启动后,检查器将显示一个URL,您可以在浏览器中访问该URL以开始调试。

