项目简介

这是一个使用 Go 语言实现的 OpenStreetMap MCP 服务器,旨在通过 Model Context Protocol (MCP) 为大语言模型 (LLM) 提供丰富的地理空间数据和位置服务能力。它通过标准化的方式,允许 LLM 调用外部工具来执行地理相关的任务。

主要功能点

该服务器为 LLM 提供了与 OpenStreetMap 数据交互的能力,包括:

  • 地址与坐标转换 (正/反地理编码):将地址、地名转换为经纬度坐标,或将经纬度坐标转换为人类可读的地址。
  • 兴趣点搜索:查找特定位置附近的兴趣点(如餐厅、酒店、商店等)。
  • 按类别搜索地点:在指定的地理区域内按类别搜索地点。
  • 路线规划与导航:获取两个地点之间的驾驶、骑行或步行路线及导航指引。
  • 推荐聚会点:根据多个参与者的位置,推荐最优的聚会地点。
  • 区域信息探索:获取一个区域的综合信息,包括设施、特点等。
  • 电动车充电站查找:查找特定位置附近或沿途的电动车充电站。
  • 通勤分析:分析家庭与工作地点之间的多种交通模式(汽车、骑行、步行)的通勤选项。
  • 邻里宜居性分析:评估一个区域的宜居程度,包括各项设施得分和总结。
  • 学校查找:查找特定位置附近的教育机构。
  • 停车场查找:查找特定位置附近的停车设施。

安装步骤

  1. 系统要求: 确保您的系统安装了 Go 1.24 或更高版本。
  2. 构建服务器: 在仓库的根目录下,执行以下命令构建服务器可执行文件:
    go build -o osmmcp ./cmd/osmmcp
    这将在当前目录下生成一个名为 'osmmcp' 的可执行文件。

服务器配置

MCP 服务器需要通过特定的启动命令和参数来与 MCP 客户端(如兼容的 LLM 客户端)建立连接。通常,这通过在客户端的配置文件中指定。

对于 Claude Desktop Client,您可以使用服务器提供的命令来自动生成或更新配置。在构建服务器后,执行:

./osmmcp --generate-config /path/to/your/claude/config.json

其中 '/path/to/your/claude/config.json' 是您的 Claude Desktop Client 配置文件的实际路径。

生成的配置片段将类似于(具体路径会是您系统上的实际路径):

{
  "mcpServers": {
    "OSM": {
      "command": "/absolute/path/to/osmmcp",
      "args": []
    }
  }
}
  • 'OSM': 这是 MCP 服务器的名称,客户端将使用此名称来识别和调用该服务器提供的工具。
  • 'command': 这是服务器可执行文件的绝对路径。客户端将使用此命令来启动服务器进程。请确保路径正确。
  • 'args': 这是传递给服务器可执行文件的命令行参数列表。通常情况下,可以留空。

重要提示: MCP 客户端通常会自动管理服务器进程的启动和停止,并通过标准输入/输出 (stdin/stdout) 进行通信。您通常不需要手动运行服务器。

基本使用方法

一旦按照上述步骤配置了您的 MCP 客户端(如 Claude Desktop Client),并重启了客户端,LLM 就可以通过识别服务器提供的工具来调用其功能。

在与 LLM 的对话中,您可以直接提出需要使用这些地理位置工具的问题或请求,LLM 将根据其能力和您的问题结构,判断是否需要调用相应的 MCP 工具来获取信息或执行操作。例如,您可以问:

  • “帮我查一下纽约帝国大厦的经纬度。” (LLM 可能会调用 'geocode_address')
  • “从我家到公司怎么走最快?考虑一下汽车、骑行和步行。” (LLM 可能会调用 'analyze_commute' 或 'get_route_directions')
  • “帮我分析一下这个区域 ([经纬度]) 的宜居性,有什么附近的商店和公园吗?” (LLM 可能会调用 'analyze_neighborhood' 或 'explore_area')

LLM 调用工具后,服务器将执行相应的地理查询,并将结果以结构化数据(通常是 JSON)的形式返回给 LLM,LLM 再将这些信息整合到对话响应中。

信息

分类

AI与计算