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_chat | ChatGPT 메시지에 첨부된 PDF 가져오기(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를 통해 통신하며, 자격 증명은 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_URL | Kamai 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_TOOLS | on은 쿼리 도구를 등록합니다. https://mcp-api.kamai.io는 이를 제공합니다. /v1/vocabulary에 404로 응답하는 API에 대해 끄세요 |
KAMAI_MCP_NO_INSTRUCTIONS | 1는 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 도구, 디스플레이 모드
호스트 스크립트, 로컬 브리지 데모
개인정보 및 지원
- 개인정보 처리방침: https://kamai.io/privacy-policy
- 지원: https://kamai.io/support 또는 contact@kamai.io
기여
CONTRIBUTING.md를 참조하세요. 보안 문제는 이슈 트래커가 아닌 SECURITY.md의 주소로 보내주세요.
라이선스
Apache-2.0. 저작권 2026 Kamai Enterprises LTD.
Kamai 이름과 로고는 Kamai Enterprises LTD의 상표이며 라이선스의 적용을 받지 않습니다.