MCP-Geo

remote-capable server

The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.

Integrations

  • Can be used as a geocoding provider for the server through the GEOCODER_PROVIDER environment variable

  • Default geocoding provider through Nominatim (nominatim.openstreetmap.org) to provide geocoding and reverse geocoding capabilities

MCP-Geo

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

📋 系统要求

  • Python 3.6+

📦依赖项

安装所有必需的依赖项:

# Using uv uv sync

所需软件包

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

所有依赖项均在requirements.txt中指定,以方便安装。

📑 目录

🛠️ MCP 工具

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

geocode_location

  • 获取用户提供的地址或地名并返回最佳匹配的纬度、经度和格式化的地址。
  • 优雅地处理错误,如果未找到位置或发生错误则返回 None 。

反向地理编码

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

geocode_with_details

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

geocode_multiple_locations

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

反向地理编码多个位置

  • 接受 [lat, lon] 对的列表来对每个对执行反向地理编码。
  • 返回包含纬度、经度和地址的字典列表,如果查找失败则返回 None,同样有速率限制。

地址之间的距离

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

坐标之间的距离

  • 计算两个纬度/经度对之间的距离。
  • 接受 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 的集成方式。• 调整环境变量以切换提供商(Nominatim、ArcGIS、Bing 等)。• 查看 geopy 的官方文档,了解高级用法,例如边界框、语言设置或高级数据提取。

⚙️ 环境变量

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

多变的描述默认
GEOCODER_PROVIDER (可选)“nominatim”、“arcgis”或“bing”提名
NOMINATIM_URL (可选)Nominatim 的域名nominatim.openstreetmap.org
SCHEME (可选)http/httpshttp
ARC_USERNAME (ArcGIS 可选)ArcGIS 用户名没有任何
ARC_PASSWORD (ArcGIS 可选)ArcGIS 密码没有任何
BING_API_KEY (Bing 必需)您的 Bing 地图密钥。没有任何

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

ID: ujss4qy5fs