Kamai MCP

официальный

Подсчёт объёмов по строительным чертежам: преобразование PDF-планов в помещения, стены, двери, окна, площади и количества с интерактивными видами плана и подсчёта.

Что можно делать с Kamai MCP?

  • Просмотр проектов и чертежей — Запросите интерактивную панель ваших строительных проектов и их чертежей со статусом готовности через view_projects или list_blueprints.

  • Проверка измерений — Запросите сортируемую таблицу измеренных величин (помещения, стены, двери, окна) из чертежа с помощью view_takeoff или list_elements.

  • Редактирование элементов чертежа — Дайте указание переименовать, перекрасить или переклассифицировать элементы, либо создать папку легенды через update_elements, move_elements или create_folder.

  • Загрузка обработанных планов — Получите временную PDF-ссылку на чертеж с выделенными обнаруженными элементами с помощью download_plan.

  • Управление проектами и задачами — Создавайте или переименовывайте проекты, просматривайте или отменяйте задачи обработки через create_project, update_project, list_jobs или cancel_job.

  • Выполнение расширенных запросов — При включенных инструментах запросов подсчитывайте элементы по категориям, находите конкретные объекты или вычисляйте чистую площадь стен с помощью count_elements, find_elements или calculate_wall_surface_area.

Размещённый MCP-сервер

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

Устанавливается в Claude Code, Codex, Cursor и другие

Документация

kamai-mcp

MCP-сервер Kamai: инструменты и виджеты MCP Apps для Kamai проектов строительных чертежей, чертежей и спецификаций. Он работает через MCP API Kamai и проверяет токены доступа, выданные OAuth-сервером авторизации Kamai. Он не хранит секреты Kamai.

Инструменты

ИнструментЧто делает
view_projectsИнтерактивная панель проектов и чертежей пользователя
list_blueprintsЧертежи, сгруппированные по проектам, с их идентификаторами и статусом готовности
view_blueprintСтраница чертежа с наложенными на него формами спецификаций
view_takeoffИзмеренные количества спецификаций в виде сортируемой таблицы
list_elementsСтроки по элементам (комнаты, стены, двери, окна, объекты) с контурами
list_foldersПапки легенды чертежа
download_planPDF обработанного чертежа с выделенными обнаруженными элементами, как временная ссылка для скачивания
update_elements, move_elements, create_folderПереименование, перекраска и перемещение элементов; создание папки
set_opening_heightСохранение указанной пользователем высоты или метки двери/окна на элементах проёмов в стенах
create_project, update_projectСоздание или переименование проекта
list_jobs, get_job, cancel_jobЗадания обработки проекта
view_uploadПанель загрузки PDF чертежа
ingest_blueprint_from_chatИмпорт PDF, прикреплённого к сообщению ChatGPT (только ChatGPT)
open_kamaiОткрытие приложения Kamai в панели

С KAMAI_QUERY_TOOLS=on (см. ниже):

ИнструментЧто делает
count_elementsКоличество и итоги по категориям Kamai (двери, окна, стены, влажные помещения…), сгруппированные и суммированные в базе данных
find_elementsОтдельные элементы с типом, папкой, меткой, ориентацией и измерениями
calculate_wall_surface_areaЧистая площадь стен (под покраску или штукатурку) комнат
render_tableТабличная панель, строки которой подсвечивают свои элементы на плане
set_scaleУстановка масштаба чертежа

list_blueprints также принимает include_inventory (с project_id): что содержит каждый чертёж.

list_projects, get_project, get_blueprint, request_blueprint_upload, finalize_blueprint_upload, а также с инструментами запросов get_table_row_elements и get_element_outlines, доступны только в приложении: вызываются виджетами, не рекламируются модели.

Локальный запуск с вашим API-ключом

Самый быстрый способ запустить этот сервер с вашими данными Kamai — локальный режим: хост запускает сервер, общается с ним через stdio, а учётные данные — это личный API-ключ из Kamai (API Keys в приложении Kamai) вместо 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" } } } }

Ключ используется как bearer для каждого вызова API; инструменты работают от имени владельца ключа. Добавьте KAMAI_QUERY_TOOLS=on в окружение для инструментов запросов.

Запуск HTTP-сервера

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

Значения в .env.example являются заполнителями: установите MCP_PUBLIC_URL и MCP_AUTH_ISSUER на ваш туннель и на доступный сервер авторизации перед запуском, иначе каждый запрос будет отклонён с invalid_token.

ПеременнаяЗначение
PORTПорт прослушивания, по умолчанию 8006
MCP_PUBLIC_URLURL, который хосты вызывают и запрашивают токен (resource в обнаружении); туннель, а не localhost
MCP_AUTH_ISSUERЭмитент токенов доступа, сопоставляется побайтово с iss токена
MCP_AUTH_JWKS_URIНеобязательно. По умолчанию {MCP_AUTH_ISSUER}/jwks.json
MCP_API_BASE_URLБазовый URL MCP API Kamai, https://mcp-api.kamai.io. Также аудитория, которую должен содержать токен доступа
MCP_ACCEPTED_AUDIENCESНеобязательные аудитории через запятую, для перехода. По умолчанию MCP_API_BASE_URL
KAMAI_API_KEYТолько локальный режим: личный API-ключ, от имени которого работают инструменты
KAMAI_APP_ORIGINSНеобязательные дополнительные источники через запятую, которые open_kamai может встраивать; первый становится по умолчанию
KAMAI_QUERY_TOOLSon регистрирует инструменты запросов. https://mcp-api.kamai.io обслуживает их; отключите его для API, который отвечает на /v1/vocabulary с 404
KAMAI_MCP_NO_INSTRUCTIONS1 исключает инструкции сервера, как это делает claude.ai, чтобы проверить описания инструментов отдельно

MCP API и сервер авторизации управляются Kamai, поэтому для работы HTTP-сервера от начала до конца нужен доступ к обоим. MCP-сервер действительно можно протестировать только против реального хоста, а хост может достичь только публичного HTTPS URL, поэтому разработка в HTTP-режиме означает работу за туннелем и указание MCP_PUBLIC_URL на него.

bun run dev сначала собирает виджеты: сервер обслуживает собранный HTML из dist/widgets/, а не исходники React, поэтому пересобирайте после изменений в src/widgets/app/.

Виджеты используют React, TypeScript, Vite, Tailwind CSS, DaisyUI и Lucide. Vite создаёт один автономный HTML-ресурс на виджет, поэтому ничего не нужно хостить.

Локальные сборки требуют Bun 1.3.3 и Node.js 22.12 или новее.

Структура

src/index.ts       HTTP-сервер, метаданные защищённых ресурсов OAuth, MCP-транспорт
src/local.ts       Точка входа stdio для локального режима (личный API-ключ)
src/auth.ts        Проверка Bearer-токенов (вызовы RFC 9728)
src/server.ts      Регистрация инструментов и ресурсов
src/api.ts         Клиент для MCP API Kamai
src/elements.ts    list_elements: постраничный вывод, фильтрация и бюджетирование результатов
src/errors.ts      Текст, который показывает модель при неудачном вызове инструмента
src/query/         Инструменты запросов: описания, словарь, фильтры, бюджеты, контракт
src/widgets/       Ресурсы виджетов, метаданные CSP и исходники React-виджетов
scripts/           Сборка виджетов (экранирует &, чтобы Open WebUI мог встраивать
                   виджеты); check-routes и check-vocabulary против живого API
scripts/open-webui/
                   Помощники Open WebUI: инструмент open_kamai, скрипт хоста
                   в режиме отображения, локальный мост для демо

Конфиденциальность и поддержка

Участие

См. CONTRIBUTING.md. Проблемы безопасности направляйте по адресу в SECURITY.md, а не в трекер задач.

Лицензия

Apache-2.0. Авторское право 2026 Kamai Enterprises LTD.

Название и логотип Kamai являются товарными знаками Kamai Enterprises LTD и не покрываются лицензией.