Kamai について
Kamaiは、Kamaiの図面プロジェクトと数量拾いを扱う建設チーム向けMCPサーバーです。プロジェクトや図面の表示、数量の確認、要素の編集に加え、任意の検索ツールとインタラクティブなウィジェットを提供します。
主な機能
- 01プロジェクトと図面の一覧表示
- 02数量拾いと図面要素の確認
- 03図面要素の編集と整理
- 04処理済み図面PDFのダウンロード
- 05任意の要素検索と計算
- 06インタラクティブなMCP Appsウィジェット
活用シーン
- 01図面上の測定数量を確認
- 02部屋、壁、ドア、窓などを整理
- 03検出要素を示した処理済み図面を取得
- 04要素数の検索や壁面積の計算
MCP 対応
Kamaiのプロジェクト、図面、数量拾い、要素の操作をツールとして公開し、MCP Appsウィジェットで対話的な表示を行います。Kamai MCP APIに接続し、HTTPモードではOAuthトークンを検証します。ローカルのstdioモードでは個人APIキーを使用します。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://mcp.kamai.io/mcpclaude mcp add --transport http io-kamai https://mcp.kamai.io/mcp{"mcpServers":{"io-kamai":{"type":"http","url":"https://mcp.kamai.io/mcp"}}}Cursor で開く{"servers":{"io-kamai":{"type":"http","url":"https://mcp.kamai.io/mcp"}}}VS Code で開く{"mcpServers":{"io-kamai":{"type":"http","url":"https://mcp.kamai.io/mcp"}}}{"mcpServers":{"io-kamai":{"serverUrl":"https://mcp.kamai.io/mcp"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
ツール
詳細
kamai-mcp
Kamai の MCP サーバーです。Kamai の建築図面プロジェクト、図面、数量拾いに対応するツールと MCP Apps ウィジェットを提供します。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 | 図面の縮尺を設定 |
set_rotation | 図面の表示方向を変更(表示のみ) |
KAMAI_HOST_PROBE が有効な場合(デフォルトでは dev と debug で有効、prod では無効。下記参照):
| ツール | 内容 |
|---|---|
probe_host | このチャットでウィジェットが使用できる機能(WebGPU、WebGL2、ワーカー、WebAssembly、GCS タイルホスト)をテストし、結果を widget_probe イベントとして記録する診断パネル |
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、プローブの report_host_probe はアプリ専用です。ウィジェットから呼び出せますが、モデルには公開されません。
API キーを使ってローカルで実行する
このサーバーを自分の Kamai データに接続して実行する最も簡単な方法は、ローカルモードです。ホストがサーバーを起動し、stdio 経由で通信します。認証情報には OAuth ではなく、Kamai の個人用 API キー(Kamai アプリの「API Keys」)を使用します。
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 呼び出しで Bearer 認証情報として使われ、ツールはキーの所有者として実行されます。クエリツールを使うには、環境変数に KAMAI_QUERY_TOOLS=on を追加してください。
HTTP サーバーを実行する
bun install
cp .env.example .env
bun run dev
.env.example の値はプレースホルダーです。起動する前に、MCP_PUBLIC_URL と
MCP_AUTH_ISSUER をトンネルの URL と到達可能な認可サーバーに設定してください。
設定しない場合、すべてのリクエストが 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。アクセストークンに含める必要があるオーディエンスでもあります |
MCP_ACCEPTED_AUDIENCES | 任意。切り替え用のカンマ区切りオーディエンス。デフォルトは MCP_API_BASE_URL です |
KAMAI_API_KEY | ローカルモードのみ。ツールが使用する個人用 API キーです |
KAMAI_APP_ORIGINS | 任意。open_kamai がフレームとして読み込める追加のオリジンをカンマ区切りで指定します。最初のオリジンがデフォルトになります |
KAMAI_QUERY_TOOLS | on にするとクエリツールを登録します。API レイヤーが /v1/vocabulary を提供している場合(404 ではなく 401 が返る場合)に限ります |
KAMAI_ROTATION | off にすると、クエリツールから set_rotation を除外します(デフォルトはオン。PUT .../blueprints/{id}/rotation を提供する API レイヤーが必要です) |
KAMAI_HOST_PROBE | on または off にすると、probe_host と report_host_probe を登録します。未設定の場合、Cloud Run の K_SERVICE が dev- または debug- で始まるとオン、それ以外ではオフです。ローカルモードでは常にオフです |
KAMAI_MCP_NO_INSTRUCTIONS | 1 にすると、claude.ai と同様にサーバーの指示を含めません。評価用です |
MCP API と認可サーバーは Kamai が運用しているため、HTTP サーバーをエンドツーエンドで実行するには、両方へのアクセスが必要です。MCP サーバーは実際のホストに対してのみ十分にテストでき、ホストから到達できるのはパブリックな HTTPS URL だけです。そのため、HTTP モードでの開発ではトンネル経由で実行し、MCP_PUBLIC_URL にその URL を指定します。
bun run dev は最初にウィジェットをビルドします。サーバーが配信するのは React のソースではなく、ビルド済み HTML です。src/widgets/app/ 以下を変更した場合は、再ビルドしてください。
ウィジェットでは React、TypeScript、Vite、Tailwind CSS、DaisyUI、Lucide を使用しています。Vite はウィジェットごとに自己完結型の HTML リソースを 1 つ生成するため、ホスティングは不要です。
ローカルでのビルドには 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/ ウィジェットのビルド(エスケープ処理により Open WebUI が
ウィジェットを埋め込めるようにします);稼働中の API に対する
check-routes と check-vocabulary
scripts/open-webui/
Open WebUI 用ヘルパー:open_kamai ツール、表示モード用の
ホストスクリプト、ローカルブリッジのデモ
プライバシーとサポート
- プライバシーポリシー:https://kamai.io/privacy-policy
- サポート:https://kamai.io/support または [email protected]
貢献
CONTRIBUTING.md を参照してください。セキュリティ上の問題は、イシュートラッカーではなく、SECURITY.md に記載された宛先にご連絡ください。
ライセンス
Apache-2.0。Copyright 2026 Kamai Enterprises LTD.
Kamai の名称とロゴは Kamai Enterprises LTD の商標であり、ライセンスの対象外です。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。