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แบบแปลนที่จัดกลุ่มตามโปรเจกต์ พร้อม ID และสถานะความพร้อม
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_URLURL ฐาน MCP API ของ Kamai, https://mcp-api.kamai.io และยังเป็น audience ที่โทเค็นการเข้าถึงต้องมี
MCP_ACCEPTED_AUDIENCESไม่บังคับ รายการ audience คั่นด้วยเครื่องหมายจุลภาค สำหรับการเปลี่ยนผ่าน ค่าเริ่มต้นคือ MCP_API_BASE_URL
KAMAI_API_KEYเฉพาะโหมดโลคัล: คีย์ API ส่วนตัวที่เครื่องมือรันในฐานะ
KAMAI_APP_ORIGINSไม่บังคับ รายการ origin เพิ่มเติมคั่นด้วยเครื่องหมายจุลภาคที่ 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 ทดสอบได้จริง กับโฮสต์จริงเท่านั้น และโฮสต์เข้าถึงได้เฉพาะ URL HTTPS สาธารณะ ดังนั้นการพัฒนา โหมด 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         ไคลเอนต์สำหรับ Kamai MCP API
src/elements.ts    list_elements การแบ่งหน้า การกรอง และการจำกัดผลลัพธ์
src/errors.ts      ข้อความที่การเรียกเครื่องมือที่ล้มเหลวแสดงต่อโมเดล
src/query/         เครื่องมือค้นหา: คำอธิบาย คำศัพท์ ตัวกรอง งบประมาณ สัญญา
src/widgets/       ทรัพยากรวิดเจ็ต เมตาดาตา CSP และซอร์ส React ของวิดเจ็ต
scripts/           การสร้างวิดเจ็ต (escape & เพื่อให้ 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 และไม่ครอบคลุม โดยใบอนุญาตนี้