Kamai MCP

resmi

Perhitungan kuantitas dari cetak biru konstruksi: ubah denah PDF menjadi ruangan, dinding, pintu, jendela, area, dan jumlah, dengan tampilan denah dan perhitungan yang interaktif.

Apa yang bisa Anda lakukan dengan Kamai MCP?

  • Jelajahi proyek dan cetak biru — Minta untuk melihat panel interaktif proyek konstruksi Anda beserta cetak birunya dengan status kesiapan melalui view_projects atau list_blueprints.

  • Periksa pengukuran takeoff — Minta tabel yang dapat diurutkan berisi kuantitas terukur (ruangan, dinding, pintu, jendela) dari cetak biru menggunakan view_takeoff atau list_elements.

  • Edit elemen cetak biru — Instruksikan penggantian nama, pewarnaan ulang, atau pemindahan berkas elemen, atau buat folder legenda, melalui update_elements, move_elements, atau create_folder.

  • Unduh rencana yang telah diproses — Dapatkan tautan PDF sementara dari cetak biru dengan elemen terdeteksi yang disorot menggunakan download_plan.

  • Kelola proyek dan pekerjaan — Buat atau ganti nama proyek, serta lihat atau batalkan pekerjaan pemrosesan, melalui create_project, update_project, list_jobs, atau cancel_job.

  • Jalankan kueri lanjutan — Dengan alat kueri diaktifkan, hitung elemen berdasarkan kategori, temukan item tertentu, atau hitung luas permukaan dinding bersih menggunakan count_elements, find_elements, atau calculate_wall_surface_area.

Server MCP Terhosting

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

Terpasang ke Claude Code, Codex, Cursor, dan lainnya

Dokumentasi

kamai-mcp

Server MCP Kamai: alat dan widget MCP Apps untuk proyek cetak biru konstruksi, cetak biru, dan takeoff Kamai. Server ini berjalan dengan API MCP Kamai dan memvalidasi token akses yang diterbitkan oleh server otorisasi OAuth Kamai. Server ini tidak menyimpan rahasia Kamai.

Alat

AlatFungsinya
view_projectsPanel interaktif proyek dan cetak biru pengguna
list_blueprintsCetak biru yang dikelompokkan berdasarkan proyek, beserta id-nya dan apakah sudah siap
view_blueprintHalaman cetak biru dengan bentuk take-off yang digambar di atasnya
view_takeoffKuantitas take-off yang diukur sebagai tabel yang dapat diurutkan
list_elementsBaris per elemen (ruangan, dinding, pintu, jendela, objek) dengan garis luar
list_foldersFolder legenda cetak biru
download_planPDF cetak biru yang telah diproses dengan elemen yang terdeteksi disorot, sebagai tautan unduhan sementara
update_elements, move_elements, create_folderMengganti nama, mengubah warna, dan memindahkan elemen; membuat folder
set_opening_heightMenyimpan tinggi yang dinyatakan pengguna, atau tag pintu/jendela, pada potongan bukaan permukaan dinding
create_project, update_projectMembuat atau mengganti nama proyek
list_jobs, get_job, cancel_jobPekerjaan pemrosesan proyek
view_uploadPanel unggah untuk PDF cetak biru
ingest_blueprint_from_chatMengimpor PDF yang dilampirkan pada pesan ChatGPT (khusus ChatGPT)
open_kamaiMembuka aplikasi Kamai di panel

Dengan KAMAI_QUERY_TOOLS=on (lihat di bawah):

AlatFungsinya
count_elementsJumlah dan total berdasarkan kategori Kamai (pintu, jendela, dinding, ruang basah…), dikelompokkan, dijumlahkan di database
find_elementsElemen individual dengan tipe, folder, tag, arah, dan pengukuran
calculate_wall_surface_areaLuas dinding bersih (cat atau plester) ruangan
render_tablePanel tabel yang barisnya menyorot elemennya di denah
set_scaleMengatur skala gambar cetak biru

list_blueprints juga menerima include_inventory (dengan project_id): apa yang terkandung dalam setiap cetak biru.

list_projects, get_project, get_blueprint, request_blueprint_upload, finalize_blueprint_upload, dan dengan alat kueri get_table_row_elements dan get_element_outlines, hanya untuk aplikasi: dapat dipanggil oleh widget, tidak diiklankan ke model.

Jalankan secara lokal dengan kunci API Anda

Cara tercepat untuk menjalankan server ini dengan data Kamai Anda sendiri adalah mode lokal: host memunculkan server, berkomunikasi dengannya melalui stdio, dan kredensialnya adalah kunci API pribadi dari Kamai (Kunci API di aplikasi Kamai) alih-alih 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" } } } }

Kunci digunakan sebagai bearer untuk setiap panggilan API; alat berjalan sebagai pemilik kunci. Tambahkan KAMAI_QUERY_TOOLS=on ke lingkungan untuk alat kueri.

Jalankan server HTTP

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

Nilai di .env.example adalah placeholder: atur MCP_PUBLIC_URL dan MCP_AUTH_ISSUER ke tunnel Anda dan ke server otorisasi yang dapat dijangkau sebelum memulai, atau setiap permintaan akan ditolak dengan invalid_token.

VariabelArti
PORTPort listen, default 8006
MCP_PUBLIC_URLURL yang dipanggil host dan meminta token (resource dalam penemuan); tunnel, bukan localhost
MCP_AUTH_ISSUERPenerbit token akses, dicocokkan byte demi byte dengan iss token
MCP_AUTH_JWKS_URIOpsional. Default ke {MCP_AUTH_ISSUER}/jwks.json
MCP_API_BASE_URLURL dasar API MCP Kamai, https://mcp-api.kamai.io. Juga audiens yang harus dibawa token akses
MCP_ACCEPTED_AUDIENCESOpsional audiens yang dipisahkan koma, untuk cutover. Default ke MCP_API_BASE_URL
KAMAI_API_KEYKhusus mode lokal: kunci API pribadi yang digunakan alat
KAMAI_APP_ORIGINSOpsional asal tambahan yang dipisahkan koma yang boleh dibingkai oleh open_kamai; yang pertama menjadi default
KAMAI_QUERY_TOOLSon mendaftarkan alat kueri. https://mcp-api.kamai.io menyajikannya; biarkan mati terhadap API yang menjawab /v1/vocabulary dengan 404
KAMAI_MCP_NO_INSTRUCTIONS1 meninggalkan instruksi server, seperti yang dilakukan claude.ai, untuk menguji deskripsi alat secara mandiri

API MCP dan server otorisasi dioperasikan oleh Kamai, jadi menjalankan server HTTP dari awal hingga akhir memerlukan akses ke keduanya. Server MCP hanya benar-benar dapat diuji terhadap host nyata, dan host hanya dapat menjangkau URL HTTPS publik, jadi pengembangan mode HTTP berarti berjalan di belakang tunnel dan mengarahkan MCP_PUBLIC_URL ke sana.

bun run dev membangun widget terlebih dahulu: server menyajikan HTML yang dibangun dari dist/widgets/, bukan sumber React, jadi bangun ulang setelah menyentuh apa pun di bawah src/widgets/app/.

Widget menggunakan React, TypeScript, Vite, Tailwind CSS, DaisyUI, dan Lucide. Vite menghasilkan satu sumber daya HTML mandiri per widget, jadi tidak ada yang perlu dihosting.

Build lokal memerlukan Bun 1.3.3 dan Node.js 22.12 atau lebih baru.

Tata letak

src/index.ts       Server HTTP, metadata sumber daya yang dilindungi OAuth, transport MCP
src/local.ts       Titik masuk stdio untuk mode lokal (kunci API pribadi)
src/auth.ts        Verifikasi token Bearer (tantangan RFC 9728)
src/server.ts      Pendaftaran alat dan sumber daya
src/api.ts         Klien untuk API MCP Kamai
src/elements.ts    list_elements paging, pemfilteran, dan penganggaran hasil
src/errors.ts      Teks yang ditampilkan panggilan alat yang gagal ke model
src/query/         Alat kueri: deskripsi, kosakata, filter, anggaran, kontrak
src/widgets/       Sumber daya widget, metadata CSP, dan sumber widget React
scripts/           Build widget (meloloskan & sehingga Open WebUI dapat menyematkan
                   widget); check-routes dan check-vocabulary terhadap API langsung
scripts/open-webui/
                   Helper Open WebUI: alat open_kamai, skrip host mode tampilan,
                   demo jembatan lokal

Privasi dan dukungan

Berkontribusi

Lihat CONTRIBUTING.md. Masalah keamanan ditujukan ke alamat di SECURITY.md, bukan ke pelacak masalah.

Lisensi

Apache-2.0. Hak cipta 2026 Kamai Enterprises LTD.

Nama dan logo Kamai adalah merek dagang Kamai Enterprises LTD dan tidak tercakup oleh lisensi.