Kamai MCP
oficialMedición de planos de construcción: convierte planos en PDF en habitaciones, paredes, puertas, ventanas, áreas y recuentos, con vistas interactivas de plano y medición.
¿Qué puedes hacer con Kamai MCP?
-
Explorar proyectos y planos — Solicita ver un panel interactivo de tus proyectos de construcción y sus planos con estado de preparación mediante
view_projectsolist_blueprints. -
Inspeccionar mediciones de toma de datos — Solicita una tabla ordenable de cantidades medidas (habitaciones, muros, puertas, ventanas) de un plano usando
view_takeoffolist_elements. -
Editar elementos del plano — Indica renombrar, recolorear o reclasificar elementos, o crear una carpeta de leyenda, a través de
update_elements,move_elementsocreate_folder. -
Descargar planos procesados — Obtén un enlace PDF temporal de un plano con los elementos detectados resaltados usando
download_plan. -
Gestionar proyectos y trabajos — Crea o renombra proyectos, y visualiza o cancela trabajos de procesamiento, mediante
create_project,update_project,list_jobsocancel_job. -
Ejecutar consultas avanzadas — Con las herramientas de consulta habilitadas, cuenta elementos por categoría, encuentra elementos específicos o calcula áreas netas de superficie de muros usando
count_elements,find_elementsocalculate_wall_surface_area.
Servidor MCP alojado
npx add-mcp 'https://mcp.kamai.io/mcp'Se instala en Claude Code, Codex, Cursor y más
Documentación
kamai-mcp
El servidor MCP de Kamai: herramientas y widgets de MCP Apps para proyectos de planos de construcción, blueprints y mediciones de Kamai. Se ejecuta contra la API MCP de Kamai y valida los tokens de acceso emitidos por el servidor de autorización OAuth de Kamai. No contiene secretos de Kamai.
Herramientas
| Herramienta | Qué hace |
|---|---|
view_projects | Panel interactivo de los proyectos y blueprints del usuario |
list_blueprints | Blueprints agrupados por proyecto, con sus ids y si están listos |
view_blueprint | Una página de blueprint con sus formas de medición dibujadas encima |
view_takeoff | Cantidades de medición como tabla ordenable |
list_elements | Filas por elemento (habitaciones, paredes, puertas, ventanas, objetos) con contornos |
list_folders | Carpetas de leyenda de un blueprint |
download_plan | Un PDF de un blueprint procesado con sus elementos detectados resaltados, como enlace de descarga temporal |
update_elements, move_elements, create_folder | Renombrar, recolorear y reclasificar elementos; crear una carpeta |
set_opening_height | Almacenar una altura indicada por el usuario, o una etiqueta de puerta/ventana, en piezas de apertura en superficie de pared |
create_project, update_project | Crear o renombrar un proyecto |
list_jobs, get_job, cancel_job | Trabajos de procesamiento de un proyecto |
view_upload | Panel de carga para un PDF de blueprint |
ingest_blueprint_from_chat | Importar un PDF adjunto a un mensaje de ChatGPT (solo ChatGPT) |
open_kamai | Abrir la aplicación Kamai en un panel |
Con KAMAI_QUERY_TOOLS=on (ver más abajo):
| Herramienta | Qué hace |
|---|---|
count_elements | Conteos y totales por categoría de Kamai (puertas, ventanas, paredes, cuartos húmedos…), agrupados y sumados en la base de datos |
find_elements | Elementos individuales con tipo, carpeta, etiqueta, orientación y medidas |
calculate_wall_surface_area | Área neta de pared (pintura o yeso) de las habitaciones |
render_table | Un panel de tabla cuyas filas resaltan sus elementos en el plano |
set_scale | Establecer la escala de dibujo de un blueprint |
list_blueprints también toma include_inventory (con un project_id): qué contiene
cada blueprint.
list_projects, get_project, get_blueprint, request_blueprint_upload,
finalize_blueprint_upload, y con las herramientas de consulta get_table_row_elements y
get_element_outlines, son solo de aplicación: invocables por los widgets, no anunciadas al
modelo.
Ejecutar localmente con tu clave API
La forma más rápida de ejecutar este servidor con tus propios datos de Kamai es el modo local: el host inicia el servidor, se comunica con él a través de stdio, y la credencial es una clave API personal de Kamai (API Keys en la aplicación Kamai) en lugar de OAuth.
bun install
bun run build:widgets
KAMAI_API_KEY=... MCP_API_BASE_URL=https://mcp-api.kamai.io bun run local
Claude Code:
claude mcp add --env KAMAI_API_KEY=... --env MCP_API_BASE_URL=https://mcp-api.kamai.io \
--transport stdio kamai -- bun /path/to/kamai-mcp/src/local.ts
Claude Desktop (claude_desktop_config.json):
{ "mcpServers": { "kamai": {
"command": "bun", "args": ["/path/to/kamai-mcp/src/local.ts"],
"env": { "KAMAI_API_KEY": "...", "MCP_API_BASE_URL": "https://mcp-api.kamai.io" } } } }
La clave se usa como bearer para cada llamada a la API; las herramientas se ejecutan como el propietario de la clave.
Añade KAMAI_QUERY_TOOLS=on al entorno para las herramientas de consulta.
Ejecutar el servidor HTTP
bun install
cp .env.example .env
bun run dev
Los valores en .env.example son marcadores de posición: establece MCP_PUBLIC_URL y
MCP_AUTH_ISSUER a tu túnel y a un servidor de autorización accesible antes de
iniciar, o cada solicitud será rechazada con invalid_token.
| Variable | Significado |
|---|---|
PORT | Puerto de escucha, por defecto 8006 |
MCP_PUBLIC_URL | La URL que los hosts llaman y piden un token (el resource en el descubrimiento); un túnel, no localhost |
MCP_AUTH_ISSUER | Emisor de los tokens de acceso, comparado byte a byte con el iss del token |
MCP_AUTH_JWKS_URI | Opcional. Por defecto {MCP_AUTH_ISSUER}/jwks.json |
MCP_API_BASE_URL | URL base de la API MCP de Kamai, https://mcp-api.kamai.io. También la audiencia que debe llevar un token de acceso |
MCP_ACCEPTED_AUDIENCES | Audiencias opcionales separadas por comas, para una migración. Por defecto MCP_API_BASE_URL |
KAMAI_API_KEY | Solo modo local: la clave API personal con la que se ejecutan las herramientas |
KAMAI_APP_ORIGINS | Orígenes adicionales opcionales separados por comas que open_kamai puede enmarcar; el primero se convierte en el predeterminado |
KAMAI_QUERY_TOOLS | on registra las herramientas de consulta. https://mcp-api.kamai.io las sirve; déjalo desactivado contra una API que responda /v1/vocabulary con 404 |
KAMAI_MCP_NO_INSTRUCTIONS | 1 deja fuera las instrucciones del servidor, como hace claude.ai, para probar las descripciones de las herramientas por sí solas |
La API MCP y el servidor de autorización son operados por Kamai, por lo que ejecutar el
servidor HTTP de extremo a extremo requiere acceso a ambos. Un servidor MCP solo es realmente comprobable
contra un host real, y un host solo puede alcanzar una URL HTTPS pública, por lo que el desarrollo
en modo HTTP significa ejecutarse detrás de un túnel y apuntar MCP_PUBLIC_URL a él.
bun run dev construye los widgets primero: el servidor sirve el HTML construido desde
dist/widgets/, no el código fuente de React, así que reconstruye después de tocar cualquier cosa bajo
src/widgets/app/.
Los widgets usan React, TypeScript, Vite, Tailwind CSS, DaisyUI y Lucide. Vite produce un recurso HTML autocontenido por widget, por lo que no necesita alojamiento.
Las compilaciones locales requieren Bun 1.3.3 y Node.js 22.12 o más reciente.
Estructura
src/index.ts Servidor HTTP, metadatos de recursos protegidos OAuth, transporte MCP
src/local.ts Punto de entrada stdio para modo local (clave API personal)
src/auth.ts Verificación de token Bearer (desafíos RFC 9728)
src/server.ts Registro de herramientas y recursos
src/api.ts Cliente para la API MCP de Kamai
src/elements.ts Paginación, filtrado y presupuesto de resultados de list_elements
src/errors.ts El texto que una llamada a herramienta fallida muestra al modelo
src/query/ Herramientas de consulta: descripciones, vocabulario, filtros, presupuestos, contrato
src/widgets/ Recursos de widgets, metadatos CSP y fuentes de widgets React
scripts/ Compilación de widgets (escapa & para que Open WebUI pueda incrustar los
widgets); check-routes y check-vocabulary contra una API en vivo
scripts/open-webui/
Ayudantes de Open WebUI: una herramienta open_kamai, un script de host
en modo visualización, una demo de puente local
Privacidad y soporte
- Política de privacidad: https://kamai.io/privacy-policy
- Soporte: https://kamai.io/support o contact@kamai.io
Contribuciones
Ver CONTRIBUTING.md. Los problemas de seguridad van a la dirección en SECURITY.md, no al rastreador de problemas.
Licencia
Apache-2.0. Copyright 2026 Kamai Enterprises LTD.
El nombre y el logotipo de Kamai son marcas comerciales de Kamai Enterprises LTD y no están cubiertos por la licencia.