# ckan-mcp-server

Подключает ИИ-ассистента к порталам открытых данных на CKAN: поиск наборов данных, организаций, метаданных и табличных запросов на естественном языке.

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

## Что делает

CKAN — платформа, на которой работает большинство государственных порталов открытых данных. Обычно чтобы что-то найти, надо знать структуру портала, API и синтаксис поиска. Сервер убирает этот барьер: после подключения ассистент сам делает поиск и разбор данных.

Внутри — набор инструментов для поиска наборов данных (`ckan_package_search`), запросов к табличным данным (`ckan_datastore_search`), списка тегов, поиска порталов и подбора релевантных наборов. Метаданные идут по стандарту DCAT. Установить можно двумя способами: локально через `npm install -g @aborruso/ckan-mcp-server` или без установки, подключившись к размещённому endpoint `https://ckan-mcp-server.andy-pr.workers.dev/mcp`. У размещённого варианта общая квота 100k запросов в день, у локального квоты нет.

Есть ограничения по объёму вывода: 50 000 символов на ответ, строки в `ckan_datastore_search` по умолчанию 100, максимум 32 000. Усечённые JSON-ответы помечаются `_truncated` и `_original_count`, так что клиент видит те же данные, что и в тексте. Если нужен полный результат — используйте пагинацию или более узкий запрос. Для локального запуска в Node.js можно задать лимиты через `CKAN_MAX_RESPONSE_BYTES` и `CKAN_MAX_DECOMPRESSED_BYTES`. Переменная `CKAN_ALLOWED_DOMAINS` задаёт, к каким порталам разрешено обращаться.

## Требования
- Нужно: Node.js (команды через npx)
- Переменные окружения: `CKAN_ALLOWED_DOMAINS` — это ключи и токены: значения спроси у человека, в репозиторий и общие файлы не записывай.

## Установка

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

**Командой платформы**
```bash
claude mcp add --env CKAN_ALLOWED_DOMAINS=<CKAN_ALLOWED_DOMAINS> --transport stdio ckan-mcp-server -- npx -y @aborruso/ckan-mcp-server
```
Вместо <…> подставьте свои значения

### Codex

**Командой платформы**
```bash
codex mcp add ckan-mcp-server --env CKAN_ALLOWED_DOMAINS=<CKAN_ALLOWED_DOMAINS> -- npx -y @aborruso/ckan-mcp-server
```
Вместо <…> подставьте свои значения

### Cursor

**Файл настроек**
Файл `.cursor/mcp.json`:
```json
{
    "mcpServers": {
        "ckan-mcp-server": {
            "command": "npx",
            "args": [
                "-y",
                "@aborruso/ckan-mcp-server"
            ],
            "env": {
                "CKAN_ALLOWED_DOMAINS": "<CKAN_ALLOWED_DOMAINS>"
            }
        }
    }
}
```
Вместо <…> подставьте свои значения

### GitHub Copilot

**Файл настроек**
Файл `.vscode/mcp.json`:
```json
{
    "servers": {
        "ckan-mcp-server": {
            "type": "stdio",
            "command": "npx",
            "args": [
                "-y",
                "@aborruso/ckan-mcp-server"
            ],
            "env": {
                "CKAN_ALLOWED_DOMAINS": "<CKAN_ALLOWED_DOMAINS>"
            }
        }
    }
}
```
Вместо <…> подставьте свои значения

### Gemini CLI

**Командой платформы**
```bash
gemini mcp add -e CKAN_ALLOWED_DOMAINS=<CKAN_ALLOWED_DOMAINS> ckan-mcp-server npx -y @aborruso/ckan-mcp-server
```
Вместо <…> подставьте свои значения

## Когда брать
- найти набор данных на портале CKAN, не зная его структуры и API
- выполнить табличный запрос к данным через datastore
- собрать список организаций и тегов портала
- проверить, какие данные публикует конкретное ведомство
- подобрать релевантные наборы данных под тему исследования

## Примеры запросов агенту
- Найди на портале данные о качестве воздуха за прошлый год
- Покажи организации, которые публикуют наборы данных на этом портале
- Сделай запрос к таблице `ckan_datastore_search` и выведи первые строки

## Похожие
- [World Monitor](https://affpapa.org/nevibecode/mcp/world-monitor.md) — MCP-сервер · ★ 89408
- [Scrapling MCP Server](https://affpapa.org/nevibecode/mcp/scrapling-mcp-server.md) — MCP-сервер · ★ 89433
- [MCP Toolbox for Databases](https://affpapa.org/nevibecode/mcp/googleapis-mcp-toolbox-for-databases.md) — MCP-сервер · ★ 16717
- [PostHog MCP Server](https://affpapa.org/nevibecode/mcp/posthog-mcp-server.md) — MCP-сервер · ★ 40409
- [dbx](https://affpapa.org/nevibecode/mcp/dbx.md) — MCP-сервер · ★ 27669
- [Metabase](https://affpapa.org/nevibecode/mcp/metabase.md) — MCP-сервер · ★ 49845

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