MCP-сервер OpenStreetMap (OSM)
Реализация сервера OpenStreetMap MCP, которая расширяет возможности LLM с помощью сервисов на основе определения местоположения и геопространственных данных.
Демо
Оптимизация точки встречи

Анализ соседства

Поиск парковки

Related MCP server: Travel Planner MCP Server
Установка
В хостах MCP, таких как Claude Desktop, Cursor, Windsurf и т. д.
osm-mcp-server: Основной сервер, доступный для публичного использования."mcpServers": { "osm-mcp-server": { "command": "uvx", "args": [ "osm-mcp-server" ] } }
Функции
Этот сервер предоставляет LLM-специалистам инструменты для взаимодействия с данными OpenStreetMap, позволяя приложениям на основе определения местоположения:
Геокодирование адресов и названий мест в координаты
Обратное геокодирование координат в адреса
Найти ближайшие интересные места
Получить указания маршрута между локациями
Поиск мест по категории в пределах ограничивающей рамки
Предложите оптимальные места встречи для нескольких человек
Исследуйте районы и получайте исчерпывающую информацию о местоположении
Найти школы и учебные заведения рядом с местом
Проанализируйте варианты поездок из дома на работу и обратно
Найдите станции зарядки электромобилей с разъемом и фильтрацией питания
Проведение анализа пригодности для проживания в районе недвижимости
Найдите парковочные места с информацией о наличии мест и стоимости
Компоненты
Ресурсы
Сервер реализует ресурсы, основанные на местоположении:
location://place/{query}: Получить информацию о местах по названию или адресуlocation://map/{style}/{z}/{x}/{y}: Получить стилизованные фрагменты карты по указанным координатам
Инструменты
На сервере реализовано несколько геопространственных инструментов:
geocode_address: Преобразование текста в географические координатыreverse_geocode: Преобразование координат в понятные человеку адресаfind_nearby_places: Найдите интересные места рядом с определенным местоположениемget_route_directions: Получить пошаговые инструкции между локациямиsearch_category: Поиск мест определенных категорий в определенном районеsuggest_meeting_point: Найдите оптимальные места для встреч нескольких человекexplore_area: Получите исчерпывающие данные о районеfind_schools_nearby: Найти учебные заведения рядом с определенным местомanalyze_commute: Сравните варианты передвижения между домом и работойfind_ev_charging_stations: поиск инфраструктуры зарядки электромобилей с помощью фильтрацииanalyze_neighborhood: Оцените пригодность района для проживания в сфере недвижимостиfind_parking_facilities: Найдите варианты парковки рядом с местом назначения
Локальное тестирование
Запуск сервера
Чтобы запустить сервер локально:
Установите пакет в режиме разработки:
pip install -e .Запустите сервер:
osm-mcp-serverСервер запустится и будет прослушивать запросы MCP на стандартном вводе/выводе.
Тестирование с использованием примеров клиентов
Репозиторий включает два примера клиентов в каталоге examples/ :
Пример базового клиента
client.py демонстрирует базовое использование сервера OSM MCP:
python examples/client.pyЭто позволит:
Подключитесь к локально работающему серверу
Получить информацию о Сан-Франциско
Поиск ресторанов в этом районе
Получайте комплексные картографические данные с отслеживанием прогресса
Пример интеграции LLM
llm_client.py предоставляет вспомогательный класс, предназначенный для интеграции LLM:
python examples/llm_client.pyВ этом примере показано, как магистр права может использовать помощника по местоположению для:
Получайте информацию о местоположении из текстовых запросов
Найти ближайшие интересные места
Прокладывайте маршруты между локациями
Найдите оптимальные места встречи
Исследуйте окрестности
Написание собственного клиента
Чтобы создать собственного клиента:
Импортируйте клиент MCP:
from mcp.client import ClientИнициализируйте клиент с URL-адресом вашего сервера:
client = Client("http://localhost:8000")Вызов инструментов или доступ к ресурсам:
# Example: Geocode an address
results = await client.invoke_tool("geocode_address", {"address": "New York City"})Конфигурация Claude Desktop для локального сервера
В MacOS: ~/Library/Application\ Support/Claude/claude_desktop_config.json В Windows: %APPDATA%/Claude/claude_desktop_config.json
"mcpServers": {
"osm-mcp-server": {
"command": "uv",
"args": [
"--directory",
"/path/to/osm-mcp-server",
"run",
"osm-mcp-server"
]
}
}Разработка
Строительство и издательское дело
Чтобы подготовить пакет к распространению:
Синхронизируем зависимости и обновляем файл блокировки:
uv syncСборка дистрибутивов пакетов:
uv buildЭто создаст исходный код и дистрибутивы wheel в каталоге dist/ .
Опубликовать в PyPI:
uv publishПримечание: вам необходимо будет задать учетные данные PyPI с помощью переменных среды или флагов команд.
Отладка
Поскольку серверы MCP работают через stdio, отладка может быть сложной. Для лучшего опыта отладки мы настоятельно рекомендуем использовать MCP Inspector .
Вы можете запустить MCP Inspector через npm с помощью этой команды:
npx @modelcontextprotocol/inspector uv --directory /path/to/osm-mcp-server run osm-mcp-serverПосле запуска Инспектор отобразит URL-адрес, к которому вы можете перейти в своем браузере, чтобы начать отладку.