README
🚀 MCP-Geo
MCP-Geo 是一个利用 GeoPY 实现的地理编码服务器,为大型语言模型提供强大的地理编码工具!
🚀 快速开始
-
安装所需依赖项:
pip install -r requirements.txt -
配置环境变量(可选): 根据需要设置以下环境变量:
export GEOCODER_PROVIDER="nominatim" # 可选:nominatim、arcgis 或 bing export NOMINATIM_URL="nominatim.openstreetmap.org" # 可选:Nominatim 域 export SCHEME="http" # 可选:http 或 https export ARC_USERNAME="your_arcgis_username" # 可选:ArcGIS 用户名 export ARC_PASSWORD="your_arcgis_password" # 可选:ArcGIS 密码 export BING_API_KEY="your_bing_maps_key" # 必需(仅限 Bing) -
运行服务器:
python server.py
✨ 主要特性
此 MCP 服务器为大型语言模型 (LLMs) 提供以下地理编码工具:
- geocode_location:接受用户提供的地址或地名,并返回最佳匹配的纬度、经度和格式化地址。若找不到位置或发生错误,会处理错误并优雅返回 None。
- reverse_geocode:接受纬度和经度,并返回最近的地址,用于查找地图上某点的描述性信息。
- geocode_with_details:类似于 geocode_location,但返回更多数据,如边界框和其他详细地址信息(如果地理编码器支持)。
- geocode_multiple_locations:接受地址字符串列表,并为每个地址返回纬度和经度,支持多个位置的批量处理。
- reverse_geocode_multiple_locations:接受纬度和经度列表,并为每个坐标返回最近的地址,适合批量反向地理编码操作。
📦 安装指南
系统要求
- Python 3.6+
依赖项
安装所有必需的依赖项:
# 使用 uv
uv 同步
必需包
- fastmcp:构建模型上下文协议服务器的框架。
- geoPy:用于访问和对地址或位置进行地理编码/反向地理编码的 Python 库。
所有依赖项均在 requirements.txt 中列出,以便轻松安装。
📚 详细文档
安全功能
- 所有地理编码请求均通过 HTTPS 默认进行,确保数据传输安全。
- 支持限制速率和 API 密钥验证(针对 Bing 地理编码器)。
开发文档
要了解如何扩展或自定义服务器,请参阅 geo.py 和 server.py 文件。您可以根据需要添加更多地理编码功能或调整现有逻辑。
环境变量
| 变量名 | 描述 | 默认值 |
| ---- | ---- | ---- |
| GEOCODER_PROVIDER(可选) | "nominatim"、"arcgis" 或 "bing" | nominatim |
| NOMINATIM_URL(可选) | Nominatim 域 | nominatim.openstreetmap.org |
| SCHEME(可选) | http/https | http |
| ARC_USERNAME(可选,针对 ArcGIS) | ArcGIS 用户名 | None |
| ARC_PASSWORD(可选,针对 ArcGIS) | ArcGIS 密码 | None |
| BING_API_KEY(必需,针对 Bing) | 您的 Bing Maps API 密钥 | None |
这些变量可以在您的 shell 中设置,或在 MCP 设置文件中根据环境进行配置。如果需要更多自定义,请编辑 geo.py 文件,并添加所需的地理编码器参数。
Scan to contact