mcpField
K
Kamai

Kamai

远程服务
kamai.io商业与营销04 天前更新

关于 Kamai

Kamai 是面向建筑团队的 MCP 服务,用于处理 Kamai 蓝图项目和工程量清单。它提供项目与图纸视图、测量数量、元素编辑,以及可选查询工具和交互式组件。

主要功能

  1. 01浏览项目和蓝图
  2. 02查看工程量与图纸元素
  3. 03编辑并整理蓝图元素
  4. 04下载已处理的蓝图 PDF
  5. 05可选的元素查询与计算
  6. 06交互式 MCP Apps 组件

适用场景

  1. 01查看蓝图中的测量数量
  2. 02整理房间、墙体、门窗等元素
  3. 03下载标注检测元素的处理后图纸
  4. 04查询元素数量或计算墙面面积

MCP 相关

将 Kamai 项目、蓝图、工程量和元素操作作为工具提供,并通过 MCP Apps 组件支持交互式查看。服务连接 Kamai MCP API;HTTP 模式验证 OAuth 令牌,本地 stdio 模式使用个人 API 密钥。

配置

远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。

服务地址https://mcp.kamai.io/mcp
一键复制安装命令
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

命令在终端中运行;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 后(开发和调试环境默认开启,生产环境关闭;见下文):

工具功能
probe_host诊断面板,用于测试此聊天可使用的小组件功能(WebGPU、WebGL2、workers、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 与其通信,并使用 Kamai 的个人 API 密钥(可在 Kamai 应用的 API Keys 中获取)作为凭据,而非 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" } } } }

每次 API 调用都会使用此密钥作为 bearer 凭据;工具以密钥所有者的身份运行。 在环境变量中添加 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。访问令牌必须携带此受众
MCP_ACCEPTED_AUDIENCES可选的逗号分隔受众列表,用于切换期间。默认为 MCP_API_BASE_URL
KAMAI_API_KEY仅限本地模式:工具运行时使用的个人 API 密钥
KAMAI_APP_ORIGINS可选的逗号分隔额外来源,open_kamai 可在其中嵌入;第一个来源将成为默认值
KAMAI_QUERY_TOOLS设置为 on 可注册查询工具。仅当 API 层提供 /v1/vocabulary 时才可用(返回 401,而非 404)
KAMAI_ROTATION设置为 off 可从查询工具中移除 set_rotation(默认开启;需要 API 层提供 PUT .../blueprints/{id}/rotation)
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 指向隧道。

bun run dev 会先构建 widgets:服务器提供的是 dist/widgets/ 中构建后的 HTML,而非 React 源码,因此修改 src/widgets/app/ 下的内容后需要重新构建。

widgets 使用 React、TypeScript、Vite、Tailwind CSS、DaisyUI 和 Lucide。Vite 会为每个 widget 生成一个自包含的 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/       Widget 资源、CSP 元数据和 React widget 源码
scripts/           Widget 构建(转义 &,以便 Open WebUI 嵌入
                   widgets);针对实时 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 的商标,不受许可证覆盖。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。