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

¡Geocodificación del servidor MCP con GeoPY!

📋 Requisitos del sistema

  • Python 3.6+

📦 Dependencias

Instalar todas las dependencias necesarias:

# Using uv uv sync

Paquetes requeridos

  • fastmcp : Marco para crear servidores de Protocolo de Contexto de Modelo
  • geoPy : biblioteca de Python para acceder y geocodificar/geocodificar inversamente ubicaciones.

Todas las dependencias se especifican en requirements.txt para una fácil instalación.

📑 Índice de contenidos

🛠️ Herramientas MCP

Este servidor MCP proporciona las siguientes herramientas de geocodificación para modelos de lenguaje grandes (LLM):

geocodificación_ubicación

  • Toma una dirección o nombre de lugar proporcionado por el usuario y devuelve la latitud, longitud y dirección formateada de la mejor coincidencia.
  • Maneja los errores con elegancia y devuelve None si no se encuentra la ubicación o si ocurre un error.

geocodificación inversa

  • Toma una latitud y longitud y devuelve la dirección más cercana.
  • Útil para encontrar información descriptiva sobre un punto en el mapa.

geocodificación con detalles

  • Similar a geocode_location pero devuelve datos adicionales, como cuadros delimitadores e información de dirección más detallada, si el geocodificador lo admite.

geocodificar_múltiples_ubicaciones

  • Acepta una lista de cadenas de direcciones y devuelve una lista de resultados de geocodificación (latitud/longitud/dirección) para cada dirección.
  • Velocidad limitada para evitar alcanzar las cuotas del servicio de geocodificación.

geocodificación inversa de múltiples ubicaciones

  • Acepta una lista de pares [lat, lon] para realizar geocodificación inversa para cada uno.
  • Devuelve una lista de diccionarios que contienen latitud, longitud y dirección o Ninguno para búsquedas fallidas, también con velocidad limitada.

distancia_entre_direcciones

  • Calcular la distancia entre dos direcciones o nombres de lugares.
  • acepta 2 direcciones y una unidad de medida (millas/kilómetro)
  • Devuelve la distancia en la unidad especificada o Ninguno si no se pudo geocodificar ninguna de las direcciones.

distancia_entre_coordenadas

  • Calcular la distancia entre dos pares lat/lon.
  • Acepta 2 pares de latitud y longitud y una unidad de medida (kilómetro/millas)
  • Devuelve la distancia en la unidad especificada.

🚀 Primeros pasos

Clonar el repositorio:

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

📦 Opciones de instalación

Puedes instalar este servidor MCP en Claude Desktop o en cualquier otro lugar. Elige la opción que mejor se adapte a tus necesidades.

Opción 1: Instalar para Claude Desktop

Instalar usando FastMCP:

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

Opción 2: Instalar en otro lugar

Para utilizar este servidor en cualquier otro lugar:

  1. Agregue la siguiente configuración al archivo de configuración:
{ "mcp-geo": { "command": "uv", "args": [ "--directory", "MCP-Geo", "run", "geo.py" ], "env": { "NOMINATIM_URL": "${NOMINATIM_URL}", "SCHEME": "http", "GEOCODER_PROVIDER": "nominatim" } } }

🔒 Funciones de seguridad • Limitación de velocidad: cada llamada de geocodificación tiene una velocidad limitada (por ejemplo, un retraso de 1 segundo) para evitar solicitudes excesivas que violen los límites de uso. • Manejo de errores: detecta excepciones de geopy (tiempos de espera, errores de servicio) y devuelve resultados "Ninguno" seguros en lugar de bloquearse.

📚 Documentación de desarrollo

Si desea ampliar o modificar este servidor: • Consulte geo.py para ver cómo se implementa cada herramienta y cómo se integra. • Ajuste las variables de entorno para cambiar de proveedor (Nominatim, ArcGIS, Bing, etc.). • Consulte la documentación oficial de geopy para obtener información sobre usos avanzados, como cuadros delimitadores, configuración de idioma o extracción avanzada de datos.

⚙️ Variables de entorno

Configurar el servidor usando variables de entorno:

VariableDescripciónPor defecto
GEOCODER_PROVIDER (opcional)"nominatim", "arcgis" o "bing"nominatim
NOMINATIM_URL (opcional)Dominio para Nominatimnominatim.openstreetmap.org
SCHEME (opcional)http/httpshttp
ARC_USERNAME (opcional para ArcGIS)Nombre de usuario de ArcGISNinguno
ARC_PASSWORD (opcional para ArcGIS)Contraseña de ArcGISNinguno
BING_API_KEY (requerido para Bing)Tu clave de Bing Maps.Ninguno

Estos se pueden configurar en su shell o en el archivo de configuración de MCP de su entorno. Si necesita más, simplemente edite geo.py y añádalos al geocodificador que esté utilizando.

ID: ujss4qy5fs