地理编码服务

MCP-Geo是一个基于GeoPY的地理编码服务,提供地址解析、反向地理编码、多地点处理及距离计算等功能,适用于需要地理信息处理的LLM应用开发。

  • by webcoderz
  • Python
  • 本地部署
  • 34 星标
  • 更新于
在 GitHub 查看 webcoderz/MCP-Geo

使用说明

MCP地理

使用GeoPY对MCP服务器进行地理编码!

📋 系统要求

  • Python 3.6+

📦 依赖项

安装所有必需的依赖项:

# Using uv
uv sync

所需套餐

  • fastmcp:构建模型上下文协议服务器的框架
  • geoPy:用于访问和地理编码/反向地理编码位置的Python库。

所有依赖关系都在中指定 requirements.txt 便于安装。

📑 目录

🛠️ MCP工具

此MCP服务器为大型语言模型(LLM)提供以下地理编码工具:

地理位置

  • 接受用户提供的地址或地名,并返回最佳匹配的纬度、经度和格式化地址。

  • 优雅地处理错误,如果找不到位置或发生错误,则返回None。

反向geocode

  • 获取纬度和经度,并返回最近的地址。
  • 可用于查找地图上某个点的描述性信息。

地理信息_详细信息

  • 类似于geocode_location,但如果地理编码器支持,则返回附加数据,如边界框和更详细的地址信息。

地理位置_多个位置

  • 接受地址字符串列表,并返回每个地址的地理编码结果列表(lat/lon/address)。
  • 限制费率以避免达到地理编码服务配额。

反向geocode_多个位置

  • 接受[lat,lon]对列表,为每个对执行反向地理编码。
  • 返回包含lat、lon和address的字典列表,对于不成功的查找,返回None,也有速率限制。

距离_间隔_地址

  • 计算两个地址或地名之间的距离。
  • 接受2个地址和一个计量单位(英里/公里)
  • 返回指定单位的距离,如果任一地址都无法进行地理编码,则返回None。

距离_间隔_坐标

  • 计算两个lat/lon对之间的距离。
  • 接受2对纬度和经度以及一个测量单位(公里/英里)
  • 以指定单位返回距离。

🚀 入门指南

克隆存储库:

git clone https://github.com/webcoderz/MCP-Geo.git
cd MCP-Geo

📦 安装选项

您可以在Claude Desktop或其他地方安装此MCP服务器。选择最适合您需求的选项。

选项1:为Claude Desktop安装

使用FastMCP进行安装:

fastmcp install geo.py --name "MCP Geo"

选项2:安装在其他地方

要在其他任何地方使用此服务器:

  1. 将以下配置添加到设置文件中:
{
    "mcp-geo": {
        "command": "uv",
        "args": [
          "--directory",
          "MCP-Geo",
          "run",
          "geo.py"
        ],
        "env": {
        "NOMINATIM_URL": "${NOMINATIM_URL}",
        "SCHEME": "http",
        "GEOCODER_PROVIDER": "nominatim"
        }
    }
}

🔒 安全功能 •速率限制:每个地理编码调用都有速率限制(例如1秒延迟),以避免违反使用限制的过多请求。 •错误处理:捕获geopy异常(超时、服务错误)并返回安全的None结果,而不是崩溃。

📚 开发文档

如果您想扩展或修改此服务器: •检查geo.py,了解每个工具的实现方式以及geopy的集成方式。 •调整环境变量以切换提供程序(Nominim、ArcGIS、Bing等)。 •查看geopy的官方文档,了解边界框、语言设置或高级数据提取等高级用法。

⚙️ 环境变量

使用环境变量配置服务器:

变量 描述 默认值
GEOCODER_PROVIDER (可选) “nominatim”、“arcgis”或“bing” nominatim
NOMINATIM_URL (可选) 提名域名 Nominatim.openstreetmap.org
SCHEME (可选) http/https http
ARC_USERNAME (ArcGIS可选) ArcGIS用户名 无
ARC_PASSWORD (ArcGIS可选) ArcGIS密码 无
BING_API_KEY (必应必备) 您的必应地图键。 无

这些可以在您的shell中设置,也可以在您环境的MCP设置文件中设置。如果需要更多,只需编辑geo.py并将其添加到您使用的任何地理编码器中。