MCP-сервер для геокодирования и геопространственных данных. Конвертирует адреса в координаты, вычисляет расстояния, получает информацию о местоположении через открытые геосервисы.
# 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 с GeoPY!
Установите все необходимые зависимости:
# Используя uv
uv sync
Все зависимости указаны в файле requirements.txt для удобной установки.
Этот сервер MCP предоставляет большие языковые модели (LLM) следующие инструменты для геокодирования:
Принимает предоставленный пользователем адрес или название места и возвращает широту, долготу и форматированный адрес наиболее подходящего совпадения.
Корректно обрабатывает ошибки и возвращает None, если местоположение не найдено или произошла ошибка.
Клонируйте репозиторий:
git clone https://github.com/webcoderz/MCP-Geo.git
cd MCP-Geo
Вы можете установить этот сервер MCP либо в Claude Desktop, либо в другом месте. Выберите вариант, который лучше всего подходит для ваших нужд.
Установите с помощью FastMCP:
fastmcp install geo.py --name "MCP Geo"
Чтобы использовать этот сервер в любом другом месте:
{
"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 и добавьте их в используемый вами геокодер.