K-AIR MCP
K-AIR MCP
Es el servidor MCP oficial que se abre para que los agentes solo realicen consultas al datahub. Hay una única puerta de entrada y, en el origen del catálogo, el engine distingue internamente entre Postgres (mart de análisis) y Tibero (recopilación). No recibe cadenas SQL.
Su rol es similar al de T2SQL·query_execute de robo-meta-api, pero el servidor no genera SQL; ensambla el SELECT a partir de los argumentos de la herramienta. No replica el mock del portal POST /mcp como versión canónica.
Historial de actualizaciones: change_log.md
Qué hace este servicio
Proporciona al agente herramientas de listado de tablas, detalle de columnas, valores únicos, SELECT limitado y agregación.
Tablas permitidas =
POST /meta/catalog∩ tablas y columnas que realmente existen en el origen de ese motor.HTTP usa Streamable HTTP (
/mcp) +X-Api-Key. stdio es para IDE en el mismo PC.La IA solo conoce la URL del MCP y la API Key. La contraseña de la BD y la dirección de robo no aparecen en los resultados de las herramientas.
Lo que no hace: SQL libre, DML/DDL, volcado/envío, Tibero de operación, consulta de datos de t2s·argus_catalog, ni dividir el MCP por motor.
Related MCP server: governed-mcp
Herramientas
Herramienta | Función |
| Lista de tablas permitidas. |
| Tipo de columna, PK y comentario. Las descripciones en coreano ausentes quedan en blanco |
| DISTINCT de columnas permitidas. Máximo 200 |
| SELECT ensamblado. |
|
|
Límite de filas 200. Solo lectura (default_transaction_read_only), statement_timeout 15 segundos. filters.op: eq, ne, gt, gte, lt, lte, like, in, is_null, is_not_null.
Distinción de motores
El sources[].engine de /meta/catalog es la fuente canónica. El agente no elige el motor.
| Origen |
| Mart de análisis (en local, |
| Tibero de recopilación. En OA a veces se registra como oracle |
Si el motor no existe o es un valor desconocido, se excluye de la lista. Aunque una tabla de Tibero tenga el mismo nombre que una tabla real de Postgres, no se mezclan.
En local solo hay Postgres. Si no hay conexión ni JDBC a Tibero, las fuentes Tibero del catálogo no aparecen en la lista. Los JAR de JDBC no se incluyen en la imagen.
Configuración
app/ FastMCP 서버 (stdio / Streamable HTTP)
tests/ 단위·계약 테스트
docker-compose.yml 네트워크용 http :8110
mcp.cursor.example.json 같은 PC stdio
mcp.cursor.http.example.json 다른 PC HTTPPremisa: red de robo-meta-api y kair-metadata-platform_control-plane. El lado de datos es el kair-postgis-16 local (host 5434). El portal, OASIS y el Tibero de operación están fuera del alcance de este repositorio.
Ejecución
copy .env.example .env
# MCP_API_KEYS · MCP_PG_* 실제 값만 채움. 따옴표 넣지 않음
docker compose up -d --build
curl.exe -fsS http://127.0.0.1:8110/healthSalud: {"status":"ok","server":"kair-mcp-query","transport":"streamable-http","engines":["postgres"]}
CLI en el mismo PC (stdio, por defecto):
python -m app.mainHTTP en contenedor:
python -m app.main --transport httpRegistro en MCP
Mismo PC (se recomienda stdio). El contenedor debe estar levantado. No se incluyen URL, clave ni .env.
{
"mcpServers": {
"kair-query": {
"command": "docker",
"args": ["exec", "-i", "kair-mcp-query", "python", "-m", "app.main", "--transport", "stdio"]
}
}
}Otro PC (Streamable HTTP). No se incluye la contraseña de la BD.
{
"mcpServers": {
"kair-query": {
"url": "http://<MCP띄운PC의IP>:8110/mcp",
"headers": {
"X-Api-Key": "<MCP_API_KEYS 값만>"
}
}
}
}mcp.json es JSON, así que las claves van entre "…". Los valores que recibe el servidor son claves sin comillas.
Ajustes
Copie .env.example a .env, que está excluido de Git. Las contraseñas y API Keys no se guardan en el código ni en documentos rastreados por Git.
Variable | Función |
|
|
| Cuenta SELECT del mart. Host por defecto |
|
|
| Límite de filas. El servidor lo recorta a 200 |
| Tibero de recopilación. Solo si hay conexión |
La conexión canónica es SourceDbConn en OA. En local es env/CLI.
Pruebas
python -m pytest tests -qProblemas y limitaciones conocidos
Elemento | Descripción | Estado |
Ejecución Tibero | Hay ramas de dialecto ( | Se retoma cuando lleguen SID y JAR de recopilación |
Clave y auditoría del portal |
| No implementado. La clave local está pendiente de retirar |
SQL libre |
| No se incluye |
Límite de filas 1000 | Comentarios de Gemini | No aplicado. Se mantiene 200 |
Relacionado
robo-meta-api—POST /meta/catalogK-AIR-metadata-platform— Servingt2s_*K-AIR-Portal— Futura puerta canónicaPOST /api/v1/mcp, registro de claves
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.
Amazon Ads, Seller Central, Vendor Central and AMC data for AI agents. Read-only by default.
Query 40 databases from Claude, ChatGPT, or Cursor — on any device. Read-only, encrypted, audited.
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 gradedqualityCmaintenanceEnables 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