Kamai MCP

officiel

Métré de plans de construction : transformez des plans PDF en pièces, murs, portes, fenêtres, surfaces et quantités, avec des vues interactives du plan et du métré.

Que pouvez-vous faire avec Kamai MCP ?

  • Parcourir les projets et les plans — Demandez à voir un panneau interactif de vos projets de construction et de leurs plans avec leur état de préparation via view_projects ou list_blueprints.

  • Inspecter les mesures de relevé — Demandez un tableau triable des quantités mesurées (pièces, murs, portes, fenêtres) à partir d’un plan en utilisant view_takeoff ou list_elements.

  • Modifier les éléments du plan — Donnez l’instruction de renommer, recolorer ou reclasser des éléments, ou de créer un dossier de légende, via update_elements, move_elements ou create_folder.

  • Télécharger les plans traités — Obtenez un lien PDF temporaire d’un plan avec les éléments détectés mis en évidence à l’aide de download_plan.

  • Gérer les projets et les tâches — Créez ou renommez des projets, et consultez ou annulez des tâches de traitement, via create_project, update_project, list_jobs ou cancel_job.

  • Exécuter des requêtes avancées — Avec les outils de requête activés, comptez les éléments par catégorie, trouvez des éléments spécifiques ou calculez les surfaces murales nettes à l’aide de count_elements, find_elements ou calculate_wall_surface_area.

Serveur MCP hébergé

npx add-mcp 'https://mcp.kamai.io/mcp'

S’installe dans Claude Code, Codex, Cursor et plus

Documentation

kamai-mcp

Le serveur MCP de Kamai : outils et widgets MCP Apps pour les projets de plans de construction, les plans et les métrés de Kamai. Il fonctionne avec l'API MCP de Kamai et valide les jetons d'accès émis par le serveur d'autorisation OAuth de Kamai. Il ne contient aucun secret Kamai.

Outils

OutilDescription
view_projectsPanneau interactif des projets et plans de l'utilisateur
list_blueprintsPlans groupés par projet, avec leurs identifiants et leur état de préparation
view_blueprintUne page de plan avec ses formes de métré dessinées par-dessus
view_takeoffQuantités de métré mesurées sous forme de tableau triable
list_elementsLignes par élément (pièces, murs, portes, fenêtres, objets) avec contours
list_foldersDossiers de légende d'un plan
download_planUn PDF d'un plan traité avec ses éléments détectés mis en évidence, sous forme de lien de téléchargement temporaire
update_elements, move_elements, create_folderRenommer, recolorer et reclasser les éléments ; créer un dossier
set_opening_heightStocker une hauteur déclarée par l'utilisateur, ou une étiquette de porte/fenêtre, sur les pièces d'ouverture de surface murale
create_project, update_projectCréer ou renommer un projet
list_jobs, get_job, cancel_jobTâches de traitement d'un projet
view_uploadPanneau de téléversement pour un PDF de plan
ingest_blueprint_from_chatImporter un PDF joint à un message ChatGPT (ChatGPT uniquement)
open_kamaiOuvrir l'application Kamai dans un panneau

Avec KAMAI_QUERY_TOOLS=on (voir ci-dessous) :

OutilDescription
count_elementsComptages et totaux par catégorie Kamai (portes, fenêtres, murs, pièces humides…), groupés, additionnés dans la base de données
find_elementsÉléments individuels avec type, dossier, étiquette, sens et mesures
calculate_wall_surface_areaSurface nette des murs (peinture ou plâtre) des pièces
render_tableUn panneau tableau dont les lignes mettent en évidence leurs éléments sur le plan
set_scaleDéfinir l'échelle de dessin d'un plan

list_blueprints prend également include_inventory (avec un project_id) : ce que contient chaque plan.

list_projects, get_project, get_blueprint, request_blueprint_upload, finalize_blueprint_upload, et avec les outils de requête get_table_row_elements et get_element_outlines, sont réservés à l'application : appelables par les widgets, non annoncés au modèle.

Exécution locale avec votre clé API

Le moyen le plus rapide d'exécuter ce serveur avec vos propres données Kamai est le mode local : l'hôte lance le serveur, communique avec lui via stdio, et l'identifiant est une clé API personnelle de Kamai (Clés API dans l'application Kamai) au lieu d'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 clé est utilisée comme porteur pour chaque appel API ; les outils fonctionnent comme le propriétaire de la clé. Ajoutez KAMAI_QUERY_TOOLS=on à l'environnement pour les outils de requête.

Exécution du serveur HTTP

bun install
cp .env.example .env
bun run dev

Les valeurs dans .env.example sont des espaces réservés : définissez MCP_PUBLIC_URL et MCP_AUTH_ISSUER sur votre tunnel et sur un serveur d'autorisation accessible avant de démarrer, sinon chaque requête sera refusée avec invalid_token.

VariableSignification
PORTPort d'écoute, défaut 8006
MCP_PUBLIC_URLL'URL que les hôtes appellent et demandent un jeton (le resource dans la découverte) ; un tunnel, pas localhost
MCP_AUTH_ISSUERÉmetteur des jetons d'accès, comparé octet par octet au iss du jeton
MCP_AUTH_JWKS_URIFacultatif. Par défaut {MCP_AUTH_ISSUER}/jwks.json
MCP_API_BASE_URLURL de base de l'API MCP Kamai, https://mcp-api.kamai.io. Également l'audience qu'un jeton d'accès doit porter
MCP_ACCEPTED_AUDIENCESAudiences facultatives séparées par des virgules, pour une migration. Par défaut MCP_API_BASE_URL
KAMAI_API_KEYMode local uniquement : la clé API personnelle sous laquelle les outils fonctionnent
KAMAI_APP_ORIGINSOrigines supplémentaires facultatives séparées par des virgules que open_kamai peut encadrer ; la première devient la valeur par défaut
KAMAI_QUERY_TOOLSon enregistre les outils de requête. https://mcp-api.kamai.io les sert ; laissez-le désactivé contre une API qui répond /v1/vocabulary avec 404
KAMAI_MCP_NO_INSTRUCTIONS1 laisse les instructions du serveur de côté, comme le fait claude.ai, pour tester les descriptions d'outils seules

L'API MCP et le serveur d'autorisation sont exploités par Kamai, donc exécuter le serveur HTTP de bout en bout nécessite l'accès aux deux. Un serveur MCP n'est vraiment testable que contre un hôte réel, et un hôte ne peut atteindre qu'une URL HTTPS publique, donc le développement en mode HTTP signifie fonctionner derrière un tunnel et pointer MCP_PUBLIC_URL vers celui-ci.

bun run dev construit d'abord les widgets : le serveur sert le HTML construit depuis dist/widgets/, pas la source React, donc reconstruisez après avoir touché quoi que ce soit sous src/widgets/app/.

Les widgets utilisent React, TypeScript, Vite, Tailwind CSS, DaisyUI et Lucide. Vite produit une ressource HTML autonome par widget, donc rien n'a besoin d'être hébergé.

Les builds locaux nécessitent Bun 1.3.3 et Node.js 22.12 ou plus récent.

Structure

src/index.ts       Serveur HTTP, métadonnées de ressource protégée OAuth, transport MCP
src/local.ts       Point d'entrée stdio pour le mode local (clé API personnelle)
src/auth.ts        Vérification du jeton porteur (défis RFC 9728)
src/server.ts      Enregistrement des outils et ressources
src/api.ts         Client pour l'API MCP Kamai
src/elements.ts    Pagination, filtrage et budgétisation des résultats de list_elements
src/errors.ts      Le texte qu'un appel d'outil échoué montre au modèle
src/query/         Outils de requête : descriptions, vocabulaire, filtres, budgets, contrat
src/widgets/       Ressources de widgets, métadonnées CSP et sources des widgets React
scripts/           Build des widgets (échappe & pour qu'Open WebUI puisse intégrer les
                   widgets) ; check-routes et check-vocabulary contre une API en direct
scripts/open-webui/
                   Aides Open WebUI : un outil open_kamai, un script hôte en mode
                   affichage, une démo de pont local

Confidentialité et support

Contribution

Voir CONTRIBUTING.md. Les problèmes de sécurité vont à l'adresse dans SECURITY.md, pas au suivi des problèmes.

Licence

Apache-2.0. Copyright 2026 Kamai Enterprises LTD.

Le nom et le logo Kamai sont des marques déposées de Kamai Enterprises LTD et ne sont pas couverts par la licence.