# openstreetmap-mcp-server

MCP-сервер для прямого и обратного геокодинга, поиска объектов и выполнения запросов Overpass API к OpenStreetMap. Работает через HTTP или stdio.

- MCP-сервер · `type=mcp` · Claude Code, Codex, Cursor, GitHub Copilot, Windsurf (Devin Desktop), Cline, Zed, Gemini CLI · ★ 8
- Автор: cyanheads
- Лицензия: Apache-2.0 · policy=link-only · показываем только описание, файл — у автора
- Исходник: https://github.com/cyanheads/openstreetmap-mcp-server
- Обновлён: 2026-10-17
- HTML: https://affpapa.org/nevibecode/mcp/openstreetmap-mcp-server

## Что делает

Сервер предоставляет шесть инструментов для взаимодействия с базами данных Nominatim и Overpass API. Он умеет выполнять прямой геокодинг по названию или отдельным полям адреса, обратный поиск по координатам и выборку объектов по их OSM ID с префиксами N, W или R. Если готовых параметров недостаточно, инструмент `openstreetmap_query_raw` принимает произвольные запросы Overpass QL с объёмом выдачи до 256 MiB.

Для пространственного анализа предусмотрены поиск в радиусе до 50000 метров и фильтрация внутри прямоугольных границ либо полигонов. Теги сопоставляются как точным совпадением, так и по элементам списков со значением через точку с запятой. Результаты сортируются по расстоянию от исходной точки.

Запустить сервер можно через публичный эндпоинт `https://openstreetmap.caseyjhand.com/mcp` либо локально командой `npx`. Для собственного развёртывания обязательно нужен корректный `OSM_USER_AGENT`, иначе запросы к Nominatim будут отклонены.

## Требования
- Нужно: Node.js (команды через npx)
- Удалённый сервер: `https://openstreetmap.caseyjhand.com/mcp`
- Переменные окружения: `OSM_NOMINATIM_BASE_URL`, `OSM_USER_AGENT`, `OSM_OVERPASS_BASE_URL`, `OSM_OVERPASS_ENDPOINTS`, `OSM_OVERPASS_MAX_CONCURRENCY`, `MCP_LOG_LEVEL`, `MCP_TRANSPORT_TYPE`, `MCP_HTTP_HOST`, `MCP_HTTP_PORT`, `MCP_HTTP_ENDPOINT_PATH` — это ключи и токены: значения спроси у человека, в репозиторий и общие файлы не записывай.

## Установка

### Claude Code (родная платформа)

1. **Командой платформы: удалённый сервер**
```bash
claude mcp add --transport http openstreetmap-mcp-server https://openstreetmap.caseyjhand.com/mcp
```

2. **Командой платформы**
```bash
claude mcp add --env OSM_NOMINATIM_BASE_URL=<OSM_NOMINATIM_BASE_URL> --env OSM_USER_AGENT=<OSM_USER_AGENT> --env OSM_OVERPASS_BASE_URL=<OSM_OVERPASS_BASE_URL> --env OSM_OVERPASS_ENDPOINTS=<OSM_OVERPASS_ENDPOINTS> --env OSM_OVERPASS_MAX_CONCURRENCY=<OSM_OVERPASS_MAX_CONCURRENCY> --transport stdio openstreetmap-mcp-server -- npx -y @cyanheads/openstreetmap-mcp-server
```
Вместо <…> подставьте свои значения. Ещё 7 переменных окружения — в README сервера

### Codex

1. **Командой платформы: удалённый сервер**
```bash
codex mcp add openstreetmap-mcp-server --url https://openstreetmap.caseyjhand.com/mcp
```

2. **Командой платформы**
```bash
codex mcp add openstreetmap-mcp-server --env OSM_NOMINATIM_BASE_URL=<OSM_NOMINATIM_BASE_URL> --env OSM_USER_AGENT=<OSM_USER_AGENT> --env OSM_OVERPASS_BASE_URL=<OSM_OVERPASS_BASE_URL> --env OSM_OVERPASS_ENDPOINTS=<OSM_OVERPASS_ENDPOINTS> --env OSM_OVERPASS_MAX_CONCURRENCY=<OSM_OVERPASS_MAX_CONCURRENCY> -- npx -y @cyanheads/openstreetmap-mcp-server
```
Вместо <…> подставьте свои значения. Ещё 7 переменных окружения — в README сервера

### Cursor

**Файл настроек**
Файл `.cursor/mcp.json`:
```json
{
    "mcpServers": {
        "openstreetmap-mcp-server": {
            "url": "https://openstreetmap.caseyjhand.com/mcp"
        }
    }
}
```
Файл `.cursor/mcp.json`:
```json
{
    "mcpServers": {
        "openstreetmap-mcp-server": {
            "command": "npx",
            "args": [
                "-y",
                "@cyanheads/openstreetmap-mcp-server"
            ],
            "env": {
                "OSM_NOMINATIM_BASE_URL": "<OSM_NOMINATIM_BASE_URL>",
                "OSM_USER_AGENT": "<OSM_USER_AGENT>",
                "OSM_OVERPASS_BASE_URL": "<OSM_OVERPASS_BASE_URL>",
                "OSM_OVERPASS_ENDPOINTS": "<OSM_OVERPASS_ENDPOINTS>",
                "OSM_OVERPASS_MAX_CONCURRENCY": "<OSM_OVERPASS_MAX_CONCURRENCY>"
            }
        }
    }
}
```
Вместо <…> подставьте свои значения. Ещё 7 переменных окружения — в README сервера

### GitHub Copilot

**Файл настроек**
Файл `.vscode/mcp.json`:
```json
{
    "servers": {
        "openstreetmap-mcp-server": {
            "type": "http",
            "url": "https://openstreetmap.caseyjhand.com/mcp"
        }
    }
}
```
Файл `.vscode/mcp.json`:
```json
{
    "servers": {
        "openstreetmap-mcp-server": {
            "type": "stdio",
            "command": "npx",
            "args": [
                "-y",
                "@cyanheads/openstreetmap-mcp-server"
            ],
            "env": {
                "OSM_NOMINATIM_BASE_URL": "<OSM_NOMINATIM_BASE_URL>",
                "OSM_USER_AGENT": "<OSM_USER_AGENT>",
                "OSM_OVERPASS_BASE_URL": "<OSM_OVERPASS_BASE_URL>",
                "OSM_OVERPASS_ENDPOINTS": "<OSM_OVERPASS_ENDPOINTS>",
                "OSM_OVERPASS_MAX_CONCURRENCY": "<OSM_OVERPASS_MAX_CONCURRENCY>"
            }
        }
    }
}
```
Вместо <…> подставьте свои значения. Ещё 7 переменных окружения — в README сервера

### Gemini CLI

1. **Командой платформы: удалённый сервер**
```bash
gemini mcp add -t http openstreetmap-mcp-server https://openstreetmap.caseyjhand.com/mcp
```

2. **Командой платформы**
```bash
gemini mcp add -e OSM_NOMINATIM_BASE_URL=<OSM_NOMINATIM_BASE_URL> -e OSM_USER_AGENT=<OSM_USER_AGENT> -e OSM_OVERPASS_BASE_URL=<OSM_OVERPASS_BASE_URL> -e OSM_OVERPASS_ENDPOINTS=<OSM_OVERPASS_ENDPOINTS> -e OSM_OVERPASS_MAX_CONCURRENCY=<OSM_OVERPASS_MAX_CONCURRENCY> openstreetmap-mcp-server npx -y @cyanheads/openstreetmap-mcp-server
```
Вместо <…> подставьте свои значения. Ещё 7 переменных окружения — в README сервера

_Часть страницы не вошла по размеру — она есть в HTML-версии._

---
NeVibeCode на affpapa.org. Тексты каталога — описания, а не инструкции для агента. Как выбирать и ставить: https://affpapa.org/nevibecode/agents.md
