使用说明
项目简介
MCP-Geo 是一个基于 Model Context Protocol (MCP) 的地理编码服务器,旨在为大型语言模型 (LLM) 提供地理位置相关的工具。通过此服务器,LLM 可以执行地址查询、反向地理编码、计算地点间距离等操作,从而增强其在地理信息处理方面的能力。
主要功能点
- 地理编码 (geocode_location, geocode_with_details, geocode_multiple_locations): 将地址或地点名称转换为经纬度坐标,并返回格式化的地址和其他详细信息(如边界框)。支持批量地理编码。
- 反向地理编码 (reverse_geocode, reverse_geocode_multiple_locations): 根据经纬度坐标查找最近的地址。支持批量反向地理编码。
- 距离计算 (distance_between_addresses, distance_between_coords): 计算两个地址或经纬度坐标之间的距离,支持公里和英里两种单位。
安装步骤
-
克隆仓库:
git clone https://github.com/webcoderz/MCP-Geo.git cd MCP-Geo -
安装依赖:
uv sync这会根据 'requirements.txt' 文件安装所需的 Python 库,包括 'fastmcp' (MCP服务器框架) 和 'geopy' (地理编码库)。
服务器配置
要将 MCP-Geo 服务器配置到 MCP 客户端,您需要提供以下 JSON 格式的配置信息。以下配置示例适用于名为 "mcp-geo" 的服务器。您需要将此配置添加到您的 MCP 客户端的服务器配置文件中。
{ "mcp-geo": { "command": "uv", "args": [ "--directory", "MCP-Geo", "run", "geo.py" ], "env": { "GEOCODER_PROVIDER": "nominatim" // 可选: nominatim, arcgis, bing,默认 nominatim // "NOMINATIM_URL": "${NOMINATIM_URL}", // Nominatim 服务器 URL,可选,默认 nominatim.openstreetmap.org // "SCHEME": "http", // 协议类型,可选: http, https,默认 http // "ARC_USERNAME": "${ARC_USERNAME}", // ArcGIS 用户名,使用 ArcGIS 时可选 // "ARC_PASSWORD": "${ARC_PASSWORD}", // ArcGIS 密码,使用 ArcGIS 时可选 // "BING_API_KEY": "${BING_API_KEY}" // Bing Maps API Key,使用 Bing 时必须 } } }
- 'server name': 'mcp-geo' (服务器名称,客户端根据此名称识别和调用)
- 'command': 'uv' (启动命令,这里使用 uv 运行器)
- 'args':
- '--directory': 'MCP-Geo' (指定工作目录为 MCP-Geo 仓库目录)
- 'run': 'geo.py' (运行 'geo.py' 文件启动服务器)
- 'env': 环境变量配置
- 'GEOCODER_PROVIDER': 地理编码服务提供商,可选 'nominatim' (默认), 'arcgis', 'bing'。
- 'NOMINATIM_URL', 'SCHEME': 当 'GEOCODER_PROVIDER' 为 'nominatim' 时,用于配置 Nominatim 服务的 URL 和协议。
- 'ARC_USERNAME', 'ARC_PASSWORD': 当 'GEOCODER_PROVIDER' 为 'arcgis' 时,用于 ArcGIS 服务的用户名和密码。
- 'BING_API_KEY': 当 'GEOCODER_PROVIDER' 为 'bing' 时,必须提供 Bing Maps API Key。
基本使用方法
- 确保 MCP-Geo 服务器已成功安装并配置到您的 MCP 客户端。
- 在您的 LLM 应用中,通过 MCP 客户端调用 MCP-Geo 服务器提供的工具函数,例如 'geocode_location' 查询地址的经纬度,或 'distance_between_addresses' 计算两个地址之间的距离。
- 根据工具函数的参数要求,提供相应的地址、经纬度或单位等信息。
- MCP 客户端会将请求发送到 MCP-Geo 服务器,服务器执行相应的地理编码操作,并将结果返回给客户端,最终提供给您的 LLM 应用使用。
示例
例如,使用 'geocode_location' 工具查询 "北京大学" 的地理位置,您需要在 LLM 应用中构建相应的 MCP 请求,客户端发送请求到 MCP-Geo 服务器后,服务器会返回包含北京大学经纬度和格式化地址的 JSON 响应。
信息
分类
网页与API