mcp-geo

MCP MCP Servers Open Source

MCP-сервер для геокодирования и геопространственных данных. Конвертирует адреса в координаты, вычисляет расстояния, получает информацию о местоположении через открытые геосервисы.

v0.1.0
01.01.2025
Добавлен 06.07.2026 · Обновлён 06.07.2026 · MCP Servers
Установка
# Claude Desktop — claude_desktop_config.json:
{ "mcpServers": { "geo": { "command": "uvx", "args": ["mcp-geo"] } } }

# Claude Code (CLI):
claude mcp add geo -- uvx mcp-geo

# OpenCode — ~/.config/opencode/opencode.json:
{ "mcp": { "geo": { "type": "local", "command": ["uvx", "mcp-geo"] } } }
переведено ИИ

MCP-Geo

Сервер геокодирования MCP с GeoPY!

📋 Системные требования

  • Python 3.6+

📦 Зависимости

Установите все необходимые зависимости:

# Используя uv
uv sync

Необходимые пакеты

  • fastmcp: Фреймворк для построения серверов Model Context Protocol
  • geoPy: Библиотека Python для доступа и геокодирования/обратного геокодирования местоположений.

Все зависимости указаны в файле requirements.txt для удобной установки.

📑 Содержание

🛠️ Инструменты MCP

Этот сервер MCP предоставляет большие языковые модели (LLM) следующие инструменты для геокодирования:

geocode_location

  • Принимает предоставленный пользователем адрес или название места и возвращает широту, долготу и форматированный адрес наиболее подходящего совпадения.

  • Корректно обрабатывает ошибки и возвращает None, если местоположение не найдено или произошла ошибка.

reverse_geocode

  • Принимает широту и долготу и возвращает ближайший адрес.
  • Полезно для поиска описательной информации о точке на карте.

geocode_with_details

  • Аналогичен geocode_location, но возвращает дополнительные данные, такие как ограничивающие прямоугольники и более подробную информацию об адресе, если это поддерживается геокодером.

geocode_multiple_locations

  • Принимает список строк адресов и возвращает список результатов геокодирования (широта/долгота/адрес) для каждого адреса.
  • Ограничивает частоту запросов, чтобы избежать превышения квот сервиса геокодирования.

reverse_geocode_multiple_locations

  • Принимает список пар [широта, долгота] для выполнения обратного геокодирования для каждой.
  • Возвращает список словарей, содержащих широту, долготу и адрес или 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 Maps. None

Эти переменные можно задать в вашей оболочке или в файле настроек MCP для вашего окружения. Если требуется больше переменных, просто отредактируйте geo.py и добавьте их в используемый вами геокодер.

Комментарии
Войдите, чтобы оставить комментарий