K-AIR MCP
K-AIR MCP
Это официальный MCP-сервер, открытый для того, чтобы агент выполнял только чтение из DataHub. Окно одно, а внутри сервер сам различает Postgres (аналитический март) и Tibero (сбор) как источник каталога engine. SQL-строки не принимаются.
По роли он похож на T2SQL·query_execute из robo-meta-api, но сервер не строит SQL — SELECT собирается из аргументов инструмента. Мокап портала POST /mcp как эталон не копируется.
История обновлений: change_log.md
Что делает этот сервис
Предоставляет агенту инструменты: список таблиц, детали колонок, уникальные значения, ограниченный SELECT, агрегаты.
Разрешённые таблицы =
POST /meta/catalog∩ таблицы·колонки, реально существующие в исходной системе соответствующего движка.HTTP — Streamable HTTP (
/mcp) +X-Api-Key. stdio — для IDE на том же ПК.ИИ знает только URL MCP и API-ключ. Паролей БД и адреса robo в результатах инструментов нет.
Чего сервис не делает: свободный SQL, DML/DDL, дамп/отправка, операционный Tibero, чтение данных t2s·argus_catalog, разделение MCP по движкам.
Related MCP server: governed-mcp
Инструменты
Инструмент | Роль |
| Список разрешённых таблиц. Необязательный |
| Типы колонок·PK·комментарии. Отсутствующие корейские описания — пустые ячейки |
| DISTINCT по разрешённой колонке. Максимум 200 |
| Собранный SELECT. |
|
|
Верхний предел строк 200. Только чтение (default_transaction_read_only), statement_timeout 15 секунд. filters.op: eq, ne, gt, gte, lt, lte, like, in, is_null, is_not_null.
Разделение движков
engine из sources[].engine в /meta/catalog — эталон. Агент движок не выбирает.
| Источник |
| Аналитический март (локально — |
| Сбор Tibero. В OA иногда записывается как oracle |
Если движок отсутствует или значение неизвестно — исключается из списка. Таблицы Tibero не смешиваются с реально существующими таблицами Postgres, даже если имена совпадают.
Локально есть только Postgres. Если нет подключения к Tibero или JDBC — источники Tibero из каталога в списке не появляются. JDBC JAR в образ не включается.
Конфигурация
app/ FastMCP 서버 (stdio / Streamable HTTP)
tests/ 단위·계약 테스트
docker-compose.yml 네트워크용 http :8110
mcp.cursor.example.json 같은 PC stdio
mcp.cursor.http.example.json 다른 PC HTTPПредпосылки: сеть robo-meta-api и kair-metadata-platform_control-plane. Слой данных — локальный kair-postgis-16 (хост 5434). Портал·OASIS·операционный Tibero вне рамок этого репозитория.
Запуск
copy .env.example .env
# MCP_API_KEYS · MCP_PG_* 실제 값만 채움. 따옴표 넣지 않음
docker compose up -d --build
curl.exe -fsS http://127.0.0.1:8110/healthЗдоровье: {"status":"ok","server":"kair-mcp-query","transport":"streamable-http","engines":["postgres"]}
CLI на том же ПК (stdio, по умолчанию):
python -m app.mainКонтейнер HTTP:
python -m app.main --transport httpРегистрация MCP
Тот же ПК (рекомендуется stdio). Контейнер должен быть запущен. URL·ключ·.env не вставляются.
{
"mcpServers": {
"kair-query": {
"command": "docker",
"args": ["exec", "-i", "kair-mcp-query", "python", "-m", "app.main", "--transport", "stdio"]
}
}
}Другой ПК (Streamable HTTP). Пароль БД не вставляется.
{
"mcpServers": {
"kair-query": {
"url": "http://<MCP띄운PC의IP>:8110/mcp",
"headers": {
"X-Api-Key": "<MCP_API_KEYS 값만>"
}
}
}
}mcp.json — это JSON, поэтому ключи оборачиваются в "…". Значения, которые получает сервер, — ключи без кавычек.
Настройки
Скопируйте .env.example в .env, исключённый из Git. Пароли и API-ключи не хранятся в коде и в документах, отслеживаемых Git.
Переменная | Роль |
| HTTP |
| Учётная запись SELECT для марта. Хост по умолчанию |
|
|
| Верхний предел строк. Сервер обрезает до 200 |
| Сбор Tibero. Только при наличии подключения |
Эталон подключения — SourceDbConn в OA. Локально — env/CLI.
Тесты
python -m pytest tests -qИзвестные проблемы и ограничения
Пункт | Описание | Статус |
Запуск Tibero | Ветки диалекта ( | Дополню, когда появятся SID·JAR сбора |
Ключ портала·аудит |
| Не реализовано. Локальный ключ подлежит удалению |
Свободный SQL |
| Не добавляется |
Верхний предел строк 1000 | Фидбек Gemini | Не применяется. Остаётся 200 |
Связанное
robo-meta-api—POST /meta/catalogK-AIR-metadata-platform— Servingt2s_*K-AIR-Portal— далее эталонное окноPOST /api/v1/mcp, реестр ключей
This server cannot be deployed
Maintenance
Related MCP Connectors
Safe, read-only Postgres and MySQL access for AI agents. Audit log + column-level controls.
Query your org's data in natural language — read-only MCP access to SQL, NoSQL, files & warehouses.
Query 40 databases from Claude, ChatGPT, or Cursor — on any device. Read-only, encrypted, audited.
Read-only finance and operations controls for AI agents with evidence and safe next actions.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceEnables AI agents to inspect schemas, walk Delta table history, run read-only DuckDB queries, and check data-quality and job-run status safely.MIT
- AlicenseNot gradedqualityBmaintenanceEnables AI agents to query a read-only data surface through typed tools, enforcing caller-specific row access, field masking, and withheld-row disclosure so they can retrieve entitled information without writes or silent data leakage.MIT
- AlicenseNot gradedqualityBmaintenanceEnables AI agents to safely query SQL databases through read-only tools for describing entities, reading records, and aggregating records, with view-based access and fail-closed per-user row-level security.MIT
- AlicenseNot gradedqualityBmaintenanceEnables AI agents to query Postgres, BigQuery and DuckDB read-only through policy-checked SQL, with AST-based guards that refuse writes and dangerous functions, column masking on the way out, and an audit log of every query. Also exposes schema browsing and query-planning tools so agents can see allowed tables, columns and costs before running anything.MIT