OpenStreetMap MCP Server

OpenStreetMap MCP Server

未知

概述

OpenStreetMap MCP 服务器为 LLM 提供地理空间数据和基于位置的服务,支持地址地理编码、路线规划、兴趣点查找等功能。

安装

pip install osm-mcp-server

启动服务器

osm-mcp-server

核心功能

  • 地址地理编码与反向地理编码
  • 查找附近兴趣点
  • 获取路线导航
  • 搜索特定类别的地点
  • 会面点优化
  • 社区分析
  • 停车设施查找
  • EV充电站定位

客户端使用示例

import asyncio
from mcp.client import Client

async def main():
    # 初始化客户端
    client = Client("http://localhost:8000")
    
    # 地理编码地址
    results = await client.invoke_tool("geocode_address", {"address": "Empire State Building"})
    lat, lon = float(results[0]['lat']), float(results[0]['lon'])
    
    # 查找附近的地点
    nearby = await client.invoke_tool(
        "find_nearby_places",
        {
            "latitude": lat,
            "longitude": lon,
            "radius": 500,
            "categories": ["amenity"],
            "limit": 5
        }
    )
    
    # 获取两点间路线
    route = await client.invoke_tool(
        "get_route_directions",
        {
            "origin": {"latitude": lat, "longitude": lon},
            "destination": {"latitude": 40.7484, "longitude": -73.9857},
            "mode": "walking"
        }
    )

if __name__ == "__main__":
    asyncio.run(main())

配置 Claude Desktop

MacOS

~/Library/Application Support/Claude/claude_desktop_config.json

Windows

%APPDATA%/Claude/claude_desktop_config.json

配置内容

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

调试

使用 MCP Inspector 进行调试:

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

开发相关

构建与发布包:

# 同步依赖
uv sync

# 构建包
uv build

# 发布到 PyPI
uv publish

更多详细信息和高级用例,请参考完整文档。