Kamai

io.kamai由 kamai.io 发布官方发布者v1.0.0更新于 Oct 28, 2026

AI takeoff for construction: turn PDF blueprints into structured, traceable quantities.

已验证Streamable HTTP可网页运行文件与存储数据与分析媒体与设计

概览

AI 生成的概览

Kamai 的远程 MCP 服务器让助手浏览建筑图纸项目、查看工程量与构件,并编辑或上传图纸。

可以做什么
  • 浏览项目与图纸,查看编号、就绪状态及每张图纸的内容清单
  • 查看带工程量标注的图纸页面、构件轮廓、图例文件夹和可排序的工程量表格
  • 下载已处理图纸的 PDF,其中检测到的构件被高亮标出
  • 编辑构件(重命名、改色、归档)、创建文件夹、设置洞口高度、创建或重命名项目
  • 管理处理任务并上传图纸 PDF,包括聊天消息中附带的 PDF
  • 启用查询工具后:统计与查找构件、计算房间净墙面面积、设置绘图比例或旋转、生成联动表格
适用场景
适用于使用 Kamai 建筑工程量测算的场景:希望助手直接查询工程量、查看图纸构件,或进行小幅修改与上传,而不必切换到 Kamai 应用。
运行要求
远程端点 mcp.kamai.io,需通过 OAuth 登录授权。README 另说明本地 stdio 模式,使用 Kamai 个人 API 密钥(KAMAI_API_KEY),本地构建需 Bun 1.3.3 与 Node.js 22.12 或更高版本。查询工具需设置 KAMAI_QUERY_TOOLS=on。
安装前请注意
部分工具会修改数据:构件可被重命名、改色和归档,文件夹与项目可被创建或重命名,洞口高度与绘图比例会被保存,任务可被取消。上传与下载会传输图纸 PDF。个人 API 密钥以其所有者身份调用所有接口,应视为机密。图纸数据会发送至 Kamai 的 API。

安装

在 SourceWeft 中

  1. 打开 控制台中的 Kamai,将其添加到工作区。
  2. 连接 所需的 凭据。它们会被私密存储,绝不会在公开页面上展示。
  3. 为需要使用其工具的对话启用该服务。

Web executable,通过 Streamable HTTP。 远程服务在工作区中配置后即可从网页运行时运行。

交给智能体安装

把这段提示词粘贴到 Claude Code、Codex、Cursor 等智能体,或 SourceWeft 对话中。智能体会读取该服务器的安装指南,先向你展示发布者、端点和登录方式,经你同意后再把它添加到你的客户端。密钥不会写进任何命令。

阅读 https://sourceweft.com/mcp/io.kamai%2Fmcp/install.md,并按其中说明把这个 MCP 服务器接入我的客户端。修改任何配置之前,先告诉我它的发布者、端点和登录方式,等我确认。不要把 API 密钥写进命令或我会提交的文件;问我密钥应从哪里获取。

查看智能体所依据的安装指南

其他 MCP 客户端

把它添加到你客户端的 mcpServers 配置中。 客户端会在首次连接时完成 OAuth 登录。

{
  "mcpServers": {
    "kamai": {
      "type": "http",
      "url": "https://mcp.kamai.io/mcp"
    }
  }
}

README

kamai-mcp

Kamai's MCP server: tools and MCP Apps widgets for Kamai construction-blueprint projects, blueprints and takeoffs. It runs against Kamai's MCP API and validates access tokens issued by Kamai's OAuth authorization server. It holds no Kamai secrets.

Tools

ToolWhat it does
view_projectsInteractive panel of the user's projects and blueprints
list_blueprintsBlueprints grouped by project, with their ids and whether they are ready
view_blueprintA blueprint page with its take-off shapes drawn on top
view_takeoffMeasured take-off quantities as a sortable table
list_elementsPer-element rows (rooms, walls, doors, windows, objects) with outlines
list_foldersA blueprint's legend folders
download_planA PDF of a processed blueprint with its detected elements highlighted, as a temporary download link
update_elements, move_elements, create_folderRename, recolour and refile elements; create a folder
set_opening_heightStore a user-stated height, or a door/window tag, on wall-surface opening pieces
create_project, update_projectCreate or rename a project
list_jobs, get_job, cancel_jobProcessing jobs of a project
view_uploadUpload panel for a blueprint PDF
ingest_blueprint_from_chatImport a PDF attached to a ChatGPT message (ChatGPT only)
open_kamaiOpen the Kamai app in a panel

With KAMAI_QUERY_TOOLS=on (see below):

ToolWhat it does
count_elementsCounts and totals by Kamai category (doors, windows, walls, wet rooms…), grouped, summed in the database
find_elementsIndividual elements with type, folder, tag, handing and measurements
calculate_wall_surface_areaNet wall (paint or plaster) area of rooms
render_tableA table panel whose rows highlight their elements on the plan
set_scaleSet a blueprint's drawing scale
set_rotationTurn how a blueprint is shown (display only)

With KAMAI_HOST_PROBE on (the default on dev and debug, off in prod; see below):

ToolWhat it does
probe_hostA diagnostic panel that tests what widgets can use in this chat (WebGPU, WebGL2, workers, WebAssembly, the GCS tile host) and logs the result as a widget_probe event

list_blueprints also takes include_inventory (with a project_id): what each blueprint contains.

list_projects, get_project, get_blueprint, request_blueprint_upload, finalize_blueprint_upload, and with the query tools get_table_row_elements and get_element_outlines, and with the probe report_host_probe, are app-only: callable by the widgets, not advertised to the model.

Run locally with your API key

The quickest way to run this server against your own Kamai data is local mode: the host spawns the server, talks to it over stdio, and the credential is a personal API key from Kamai (API Keys in the Kamai app) instead of OAuth.

bun installbun run build:widgetsKAMAI_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" } } } }

The key is used as the bearer for every API call; the tools run as the key's owner. Add KAMAI_QUERY_TOOLS=on to the environment for the query tools.

Run the HTTP server

bun installcp .env.example .envbun run dev

The values in .env.example are placeholders: set MCP_PUBLIC_URL and MCP_AUTH_ISSUER to your tunnel and to a reachable authorization server before starting, or every request will be refused with invalid_token.

VariableMeaning
PORTListen port, default 8006
MCP_PUBLIC_URLThe URL hosts call and ask a token for (the resource in discovery); a tunnel, not localhost
MCP_AUTH_ISSUERIssuer of the access tokens, matched byte for byte against the token's iss
MCP_AUTH_JWKS_URIOptional. Defaults to {MCP_AUTH_ISSUER}/jwks.json
MCP_API_BASE_URLKamai MCP API base URL, https://mcp-api.kamai.io. Also the audience an access token must carry
MCP_ACCEPTED_AUDIENCESOptional comma-separated audiences, for a cutover. Defaults to MCP_API_BASE_URL
KAMAI_API_KEYLocal mode only: the personal API key the tools run as
KAMAI_APP_ORIGINSOptional comma-separated extra origins open_kamai may frame; the first becomes the default
KAMAI_QUERY_TOOLSon registers the query tools. Only once the API layer serves /v1/vocabulary (401, not 404)
KAMAI_ROTATIONoff drops set_rotation from the query tools (on by default; needs an API layer that serves PUT .../blueprints/{id}/rotation)
KAMAI_HOST_PROBEon or off registers probe_host and report_host_probe. Unset, it is on when Cloud Run's K_SERVICE starts with dev- or debug-, off otherwise. Never in local mode
KAMAI_MCP_NO_INSTRUCTIONS1 leaves the server instructions out, as claude.ai does; for evals

The MCP API and the authorization server are operated by Kamai, so running the HTTP server end to end needs access to both. An MCP server is only really testable against a real host, and a host can only reach a public HTTPS URL, so HTTP-mode development means running behind a tunnel and pointing MCP_PUBLIC_URL at it.

bun run dev builds the widgets first: the server serves the built HTML from dist/widgets/, not the React source, so rebuild after touching anything under src/widgets/app/.

The widgets use React, TypeScript, Vite, Tailwind CSS, DaisyUI and Lucide. Vite produces one self-contained HTML resource per widget, so nothing needs hosting.

Local builds require Bun 1.3.3 and Node.js 22.12 or newer.

Layout

src/index.ts       HTTP server, OAuth protected-resource metadata, MCP transportsrc/local.ts       stdio entrypoint for local mode (personal API key)src/auth.ts        Bearer-token verification (RFC 9728 challenges)src/server.ts      Tool and resource registrationsrc/api.ts         Client for the Kamai MCP APIsrc/elements.ts    list_elements paging, filtering and result budgetingsrc/errors.ts      The text a failed tool call shows the modelsrc/query/         Query tools: descriptions, vocabulary, filters, budgets, contractsrc/widgets/       Widget resources, CSP metadata and the React widget sourcesscripts/           Widget build (escapes & so Open WebUI can embed the                   widgets); check-routes and check-vocabulary against a live APIscripts/open-webui/                   Open WebUI helpers: an open_kamai Tool, a display-mode                   host script, a local bridge demo

Privacy and support

Contributing

See CONTRIBUTING.md. Security issues go to the address in SECURITY.md, not to the issue tracker.

License

Apache-2.0. Copyright 2026 Kamai Enterprises LTD.

The Kamai name and logo are trademarks of Kamai Enterprises LTD and are not covered by the license.

来源:README.md,提交 b4bacc1

工具

0
该服务器需要登录,因此 SourceWeft 无法在没有账号的情况下读取其工具,也未收录。已连接账号所能看到的内容可能因账号及其权限而异。

版本历史

1
  1. v1.0.0最新Sep 30, 2026

评分

已满足适用检查项的 85%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通必需25 分
  • 已声明认证方式必需10 分
  • 已列出工具15 分

    请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。

  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分