Kamai MCP

공식

건축 설계도면 견적 산출: PDF 도면을 실내 공간, 벽, 문, 창문, 면적 및 수량으로 변환하며, 대화형 도면 및 산출 뷰를 제공합니다.

Kamai MCP(으)로 무엇을 할 수 있나요?

  • 프로젝트 및 청사진 탐색 — view_projects 또는 list_blueprints를 통해 건설 프로젝트와 준비 상태가 포함된 청사진의 대화형 패널을 요청하세요.

  • 측량 측정값 검사 — view_takeoff 또는 list_elements를 사용하여 청사진에서 측정된 수량(방, 벽, 문, 창문)의 정렬 가능한 표를 요청하세요.

  • 청사진 요소 편집 — update_elements, move_elements 또는 create_folder를 통해 요소 이름 변경, 색상 변경, 재분류 또는 범례 폴더 생성을 지시하세요.

  • 처리된 도면 다운로드 — download_plan을 사용하여 감지된 요소가 강조 표시된 청사진의 임시 PDF 링크를 받으세요.

  • 프로젝트 및 작업 관리 — 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

Kamai의 MCP 서버: Kamai 건설 청사진 프로젝트, 청사진 및 견적을 위한 도구 및 MCP 앱 위젯. Kamai의 MCP API를 대상으로 실행되며, Kamai의 OAuth 인증 서버에서 발급한 액세스 토큰을 검증합니다. Kamai 비밀 정보를 보유하지 않습니다.

도구

도구기능
view_projects사용자의 프로젝트 및 청사진 대화형 패널
list_blueprints프로젝트별로 그룹화된 청사진(ID 및 준비 상태 포함)
view_blueprint청사진 페이지와 그 위에 그려진 견적 도형
view_takeoff정렬 가능한 테이블로 측정된 견적 수량
list_elements윤곽선이 있는 요소별 행(방, 벽, 문, 창, 객체)
list_folders청사진의 범례 폴더
download_plan감지된 요소가 강조 표시된 처리된 청사진의 PDF(임시 다운로드 링크)
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_chatChatGPT 메시지에 첨부된 PDF 가져오기(ChatGPT 전용)
open_kamai패널에서 Kamai 앱 열기

KAMAI_QUERY_TOOLS=on 사용 시(아래 참조):

도구기능
count_elementsKamai 카테고리(문, 창, 벽, 습식 공간 등)별 개수 및 합계(데이터베이스에서 그룹화 및 합산)
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를 통해 통신하며, 자격 증명은 OAuth 대신 Kamai의 개인 API 키(Kamai 앱의 API 키)입니다.

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" } } } }

키는 모든 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_URL호스트가 호출하고 토큰을 요청하는 URL(검색의 resource), 터널이지 localhost이 아님
MCP_AUTH_ISSUER액세스 토큰 발급자, 토큰의 iss과 바이트 단위로 일치
MCP_AUTH_JWKS_URI선택 사항. 기본값은 {MCP_AUTH_ISSUER}/jwks.json
MCP_API_BASE_URLKamai MCP API 기본 URL, https://mcp-api.kamai.io. 액세스 토큰이 포함해야 하는 대상(audience)이기도 함
MCP_ACCEPTED_AUDIENCES선택 사항, 쉼표로 구분된 대상(audiences), 전환용. 기본값은 MCP_API_BASE_URL
KAMAI_API_KEY로컬 모드 전용: 도구가 실행되는 개인 API 키
KAMAI_APP_ORIGINS선택 사항, open_kamai가 프레임할 수 있는 추가 출처(쉼표로 구분), 첫 번째가 기본값이 됨
KAMAI_QUERY_TOOLSon은 쿼리 도구를 등록합니다. https://mcp-api.kamai.io는 이를 제공합니다. /v1/vocabulary에 404로 응답하는 API에 대해 끄세요
KAMAI_MCP_NO_INSTRUCTIONS1는 claude.ai처럼 서버 지침을 생략하여 도구 설명을 단독으로 테스트합니다

MCP API와 인증 서버는 Kamai가 운영하므로 HTTP 서버를 종단 간 실행하려면 둘 다에 대한 액세스가 필요합니다. MCP 서버는 실제 호스트에 대해서만 실제로 테스트할 수 있고, 호스트는 공개 HTTPS URL에만 도달할 수 있으므로 HTTP 모드 개발은 터널 뒤에서 실행하고 MCP_PUBLIC_URL을 그쪽으로 지정하는 것을 의미합니다.

bun run dev은 먼저 위젯을 빌드합니다: 서버는 dist/widgets/에서 빌드된 HTML을 제공하며 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        베어러 토큰 검증(RFC 9728 챌린지)
src/server.ts      도구 및 리소스 등록
src/api.ts         Kamai MCP API용 클라이언트
src/elements.ts    list_elements 페이지 매김, 필터링 및 결과 예산
src/errors.ts      실패한 도구 호출이 모델에 표시하는 텍스트
src/query/         쿼리 도구: 설명, 어휘, 필터, 예산, 계약
src/widgets/       위젯 리소스, CSP 메타데이터 및 React 위젯 소스
scripts/           위젯 빌드(Open WebUI가 위젯을 포함할 수 있도록 & 이스케이프);
                   라이브 API에 대한 check-routes 및 check-vocabulary
scripts/open-webui/
                   Open WebUI 도우미: open_kamai 도구, 디스플레이 모드
                   호스트 스크립트, 로컬 브리지 데모

개인정보 및 지원

기여

CONTRIBUTING.md를 참조하세요. 보안 문제는 이슈 트래커가 아닌 SECURITY.md의 주소로 보내주세요.

라이선스

Apache-2.0. 저작권 2026 Kamai Enterprises LTD.

Kamai 이름과 로고는 Kamai Enterprises LTD의 상표이며 라이선스의 적용을 받지 않습니다.