MCP-Geo

MCP-Geo

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

位置服务
Python
访问服务器

README

MCP-Geo

使用 GeoPY 的地理编码 MCP 服务器!

<a href="https://glama.ai/mcp/servers/ujss4qy5fs"> <img width="380" height="200" src="https://glama.ai/mcp/servers/ujss4qy5fs/badge?v=1" /> </a>

📋 系统要求

  • Python 3.6+

📦 依赖项

安装所有必需的依赖项:

# 使用 uv
uv sync

必需的软件包

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

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

📑 目录

🛠️ MCP 工具

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

geocode_location

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

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

reverse_geocode

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

geocode_with_details

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

geocode_multiple_locations

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

reverse_geocode_multiple_locations

  • 接受 [lat, lon] 对列表,以便为每个对执行反向地理编码。
  • 返回包含纬度、经度和地址的字典列表,如果查找不成功,则返回 None,也进行了速率限制。

distance_between_addresses

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

distance_between_coords

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

🚀 快速开始

克隆存储库:

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

📦 安装选项

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

选项 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
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 地图密钥。 None

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

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
DuckDuckGo MCP Server

DuckDuckGo MCP Server

一个模型上下文协议 (MCP) 服务器,通过 DuckDuckGo 提供网页搜索功能,并具有内容获取和解析的附加功能。

精选
Python
YouTube Transcript MCP Server

YouTube Transcript MCP Server

这个服务器用于获取指定 YouTube 视频 URL 的字幕,从而可以与 Goose CLI 或 Goose Desktop 集成,进行字幕提取和处理。

精选
Python
Tavily MCP Server

Tavily MCP Server

使用 Tavily 的搜索 API 提供 AI 驱动的网络搜索功能,使 LLM 能够执行复杂的网络搜索、获得问题的直接答案以及搜索最近的新闻文章。

精选
Python
Brev

Brev

在云端运行、构建、训练和部署机器学习模型。

官方
本地
Python
Crawlab MCP Server

Crawlab MCP Server

官方
Python
Story Protocol SDK MCP

Story Protocol SDK MCP

This server provides MCP (Model Context Protocol) tools for interacting with Story's Python SDK. Features Get license terms Mint and register IP Asset with PIL Terms Mint license tokens Send $IP to a wallet Upload image to ipfs via Pinata [External] Upload ip and nft metadata via Pinata [External]

官方
Python
Appwrite MCP Server

Appwrite MCP Server

一个模型上下文协议服务器,允许 AI 助手与 Appwrite 的 API 交互,从而提供管理 Appwrite 项目中数据库、用户、函数、团队和其他资源的工具。

官方
Python
MCP2Lambda

MCP2Lambda

通过 MCP 协议,人工智能模型能够与 AWS Lambda 函数交互,从而在安全的环境中访问私有资源、实时数据和自定义计算。

官方
Python
ScrapeGraph MCP Server

ScrapeGraph MCP Server

一个生产就绪的模型上下文协议服务器,使语言模型能够利用 AI 驱动的网络抓取功能,提供将网页转换为 Markdown、提取结构化数据和执行 AI 驱动的网络搜索的工具。

官方
Python