关于 Kleap
Kleap 是供 AI Agent 使用的命令行工具和 MCP 服务,可创建、编辑、发布和管理网站及 Web 应用。它将部署与域名、数据库、表单、分析功能结合,并在确认网站确实可访问后才报告上线。
主要功能
- 01根据提示词创建和修改网站
- 02编辑文件并生成图像
- 03发布网站并验证上线状态
- 04管理域名和应用数据库
- 05查看表单、分析数据与搜索数据
适用场景
- 01通过 Agent 构建并发布落地页
- 02修改网站内容并重新部署
- 03连接自定义域名并检查 DNS
- 04查看表单线索和网站流量
MCP 相关
Kleap 可作为本地 stdio MCP 服务运行,也提供 https://kleap.co/api/mcp 托管连接器。MCP 客户端可调用网站创建、编辑、发布、域名、数据库、表单和分析工具。
配置
远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。
https://kleap.co/api/mcpclaude mcp add --transport http kleaphq-kleap https://kleap.co/api/mcp{"mcpServers":{"kleaphq-kleap":{"type":"http","url":"https://kleap.co/api/mcp"}}}在 Cursor 中打开{"servers":{"kleaphq-kleap":{"type":"http","url":"https://kleap.co/api/mcp"}}}在 VS Code 中打开{"mcpServers":{"kleaphq-kleap":{"type":"http","url":"https://kleap.co/api/mcp"}}}{"mcpServers":{"kleaphq-kleap":{"serverUrl":"https://kleap.co/api/mcp"}}}命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。
工具
34| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| prompt | string | 是 | 要构建的网站的详细描述 |
| context | string | 是 | 用一个简短句子说明为何调用此工具。用于改进连接器;切勿包含凭据或个人数据。 |
| visibility | enum | 否 | 控制发现列表:public = 可被发现,personal = 不公开列出。两者都可能部署到可公开访问的 URL;personal 不会添加访问控制。public | personal |
详细介绍
Kleap — 面向 AI Agent 的网站基础设施
你的 Agent 负责构建,Kleap 负责上线。 让任何 AI Agent(Claude、ChatGPT、Cursor,或像 Claude Code 这样的 bash 工具 Agent) 为你构建、编辑并发布真实的在线网站。包含托管、数据库、身份验证和域名。
Lovable / v0 / Bolt 的替代方案——但由你的 Agent 驱动, 并且每次发布都附带经验证的在线保障:只有在网站确实可验证地正常提供服务时,才会报告网站已上线,而不会给出 AI 幻觉出来的失效链接。
此软件包既是 CLI(kleap create "…"、kleap publish 42 等),也是
MCP 服务(kleap mcp / 无参数)——使用同一账户、同一 ~/.kleap/config.json 身份验证,以及同一个底层 /api/v1 REST API。
根据你的 Agent 选择合适的方式:shell/bash 工具 Agent(Claude Code、cron
脚本、CI)适合使用 CLI——每次调用只需一行简洁命令,无需 JSON-RPC 封装。
原生支持 MCP 的客户端(Claude Desktop、Cursor、ChatGPT connectors)则适合使用
MCP 服务,此软件包也可直接提供该服务。

上方:真实运行过程——你的 Agent 使用
write_files编写代码,publish_app会构建并部署,几秒钟内页面就会上线。也可以直接用通俗语言向 Kleap 的 AI 提出要求。
此软件包中不存储任何机密信息——它会读取你自己的 KLEAP_API_KEY(或 kleap auth login 保存的令牌),并且只与 kleap.co 通信。
CLI(适用于 Agent Shell——Claude Code、Codex、脚本)
如果你的 Agent 使用的是 bash 工具而不是 MCP,请直接使用 CLI。
默认输出为 1–3 行(节省令牌——专为读取自身工具输出的 Agent 设计,而非供人类在终端中查看),退出码清晰(0/1),
并且可随时使用 --json 标志获取完整的结构化响应。
npx -y kleap-cli auth login # opens your browser once, no key to paste
# — or, for CI / non-interactive: npx -y kleap-cli auth key kleap_live_sk_...
npx -y kleap-cli create "a one-page site for my bakery, warm palette"
# ✓ created app 4821 — https://warm-bakery-fold.kleap.io
npx -y kleap-cli edit 4821 "change the headline to 'Roasted slow'"
# ✓ edited app 4821 — https://warm-bakery-fold.kleap.io
npx -y kleap-cli publish 4821
# ✓ published https://warm-bakery-fold.kleap.io
npx -y kleap-cli status warm-bakery-fold.kleap.io # by id, slug, kleap.io URL, or connected custom domain
# ✓ Bakery (4821) — live: https://warm-bakery-fold.kleap.io
命令
| 命令 | 功能 |
|---|---|
kleap auth login | 通过浏览器登录(OAuth,PKCE loopback)——无需复制密钥 |
kleap auth key <KEY> | 改为存储 kleap_live_sk_... 密钥(CI / 非交互式场景) |
kleap auth logout / kleap auth status | 清除 / 显示当前身份验证信息 |
kleap create "<prompt>" [--visibility public|personal] [--webhook <url>] [--no-wait] [--json] | 创建网站,等待构建完成(约 5-15 分钟),并打印线上 URL |
kleap edit <app> "<prompt>" [--webhook <url>] [--no-wait] [--json] | 请求 Kleap 的 AI 修改网站,并等待重新部署完成 |
kleap publish <app> [--no-wait] [--json] | 发布 / 重新部署,并确保网站已验证上线 |
kleap status <app> [--json] | 单行状态:名称、id、线上 URL 或“尚未发布” |
kleap list [--limit N] [--q text] [--json] | 你的应用,每个应用占一行制表符分隔的内容:id name url |
kleap domains search <query> [--tlds .com,.io] [--json] | 可用域名,每行一个 |
kleap domains connect <domain> <app> [--json] | 连接你拥有的域名;打印要设置的 A 记录 |
kleap screenshot <app> | 截取预览图,并打印其 URL |
kleap task <task_id> [--wait] / kleap task retry <task_id> [--wait] | 查看创建 / 编辑任务的状态(使用 --wait 长轮询)/ 恢复失败的任务 |
kleap rename <app> <name> · kleap wake <app> · kleap messages <app> · kleap credits | 重命名(URL 不变)· 唤醒预览沙箱 · 聊天记录 · 额度余额 + 套餐 |
kleap files ls <app> · files cat <app> <path...> | 列出源文件路径 · 打印文件内容 |
kleap files write <app> <path> --file <local> | --stdin | --content "<text>" | 写入文件(二进制扩展名会自动进行 base64 编码,最多 512 KB)→ 然后执行 publish |
kleap files edit <app> <path> --find "<old>" --replace "<new>" [--all] | 替换文件中的文本 |
kleap files rm <app> <path...> | 删除页面 / 资源(下次执行 publish 前,线上内容不会变) |
kleap image <app> <public/name.webp> "<prompt>" [--hd] | 生成图片并存入网站 → 然后执行 publish |
kleap forms <app> [--since ISO] [--limit N] | 表单提交记录(潜在客户),按时间从新到旧排列;--json 输出扁平数据 |
kleap analytics <app> [--period 7d|30d|90d] | 访客数、页面浏览量、热门页面 |
kleap search-console <app> · search-console connect <app> | Google 搜索数据 · 用户打开的授权链接 |
kleap db schema <app> | 应用 Postgres 数据库的表、行数和列 |
kleap db rows <app> <table> [--where json] [--limit] [--offset] [--order-by col --order asc|desc] | 读取行(每行一个 JSON 对象) |
kleap db insert <app> <table> '<json>'|--file rows.json | 插入单个对象或数组(每批最多 500 条) |
kleap db update <app> <table> --where json --set json · db delete <app> <table> --where json | --where 为必填项,且不能为空 |
kleap db sql <app> "<sql>" [--params json] | 执行一条 SQL 语句并使用 $1..$n 参数(所有者级别:即使是 SELECT,也需要 database:write;上限为 500 行 / 5 MB) |
kleap domains buy <domain> [--years N] [--app <app>] | 创建 Stripe 结账链接,由用户付款——用户付款前绝不会购买域名 |
kleap domains check <domain> | DNS / 连接状态(也可检查付费域名是否已注册) |
kleap mcp | 显式运行 MCP stdio 服务(与不带参数时相同) |
<app> 可以是数字应用 id、slug.kleap.io URL、纯 slug 或
已连接的自定义域名——由服务端通过一次调用解析(GET /apps/resolve),
与 MCP find_app 工具的行为相同。
示例:Claude Code / bash-tool Agent
# One-shot: build it, publish it, hand back a URL a human can click.
url=$(npx -y kleap-cli create "a landing page for my podcast" --json | node -e \
'let d="";process.stdin.on("data",c=>d+=c).on("end",()=>console.log(JSON.parse(d).url))')
echo "Live: $url"
# Non-blocking flow (agent does other work while it builds):
npx -y kleap-cli create "a landing page for my podcast" --no-wait --json # → { task_id, app_id, ... }
# ... later ...
npx -y kleap-cli status 4821
退出码始终明确:成功时为 0,任何失败时为 1,并在 stderr 上输出单行
✗ <reason>(使用 --json 时则输出 {"error":{"message":...}})——
可以安全地通过 $? / try/except subprocess.run(..., check=True) 检查,无需
解析说明文字。
安装一次(可选——上文的 npx -y 无需安装)
npm i -g kleap-cli
kleap auth login
kleap create "a one-page site for my bakery"
MCP 服务(适用于原生支持 MCP 的客户端 — Claude Desktop、Cursor、ChatGPT)
同一个软件包、同一个账户、同一个 ~/.kleap/config.json 身份验证——只是改用另一种传输方式,供支持 MCP 而非 bash 工具的客户端使用。
最简单的方式 — 使用 OAuth 连接,无需密钥
添加托管连接器并登录。无需生成任何内容,也无需粘贴任何内容——只需像使用其他应用一样,在浏览器中授权 Kleap。适用于 Claude Desktop、ChatGPT 和 Cursor。
https://kleap.co/api/mcp
- Claude Desktop — Settings → Connectors → Add custom connector → 粘贴 URL → Connect → 登录 Kleap。
- ChatGPT — Settings → Connectors → 添加 URL → 使用 OAuth 授权。
- Cursor — Settings → MCP → Add server → 粘贴 URL → 授权。
就是这样——OAuth 登录后即可使用全部 34 个托管工具(下方列出的 33 个工具加上 upgrade_plan)。直接跳到第 3 步。
或者 — 使用本地 CLI,在浏览器中登录(无需密钥)
更喜欢本地 stdio 进程?只需登录一次——无需生成或粘贴密钥:
npx kleap-cli auth login
这会打开浏览器,你可以在其中授权 Kleap,令牌会保存到
~/.kleap/config.json。之后,npx -y kleap-cli 即可直接使用。(也可以使用 kleap auth logout / kleap auth status。)然后在客户端中添加一个无密钥的 stdio 配置项,例如 Claude Desktop 的 claude_desktop_config.json:
{ "mcpServers": { "kleap": { "command": "npx", "args": ["-y", "kleap"] } } }
或者 — 使用 API 密钥运行本地 CLI
更喜欢使用密钥(例如用于 CI 或直接通过脚本调用 REST API)?
1. 获取 API 密钥 — 打开 kleap.co/settings/api-key,然后点击 Create my API key(kleap_live_sk_...)。
2. 将 Kleap 添加到 AI 客户端:
Claude Desktop — claude_desktop_config.json
{
"mcpServers": {
"kleap": {
"command": "npx",
"args": ["-y", "kleap"],
"env": { "KLEAP_API_KEY": "kleap_live_sk_..." }
}
}
}
Cursor — .cursor/mcp.json
{
"mcpServers": {
"kleap": {
"command": "npx",
"args": ["-y", "kleap"],
"env": { "KLEAP_API_KEY": "kleap_live_sk_..." }
}
}
}
Claude Code — 一条命令
claude mcp add kleap -e KLEAP_API_KEY=kleap_live_sk_... -- npx -y kleap-cli
Cline / Roo(VS Code) — cline_mcp_settings.json
{
"mcpServers": {
"kleap": {
"command": "npx",
"args": ["-y", "kleap"],
"env": { "KLEAP_API_KEY": "kleap_live_sk_..." }
}
}
}
Windsurf — ~/.codeium/windsurf/mcp_config.json
{
"mcpServers": {
"kleap": {
"command": "npx",
"args": ["-y", "kleap"],
"env": { "KLEAP_API_KEY": "kleap_live_sk_..." }
}
}
}
ChatGPT 和托管 Agent — 无需本地进程
添加托管连接器 https://kleap.co/api/mcp,并使用 OAuth 授权(或粘贴你的 kleap_live_sk_ 密钥)。工具相同,无需安装。
所有 stdio 配置都相同——
npx -y kleap-cli加上KLEAP_API_KEY环境变量—— 因此任何 MCP 客户端都能使用。
最小权限密钥:生成密钥时,请选择一个权限范围——只读 (查看网站,不做更改)、构建或完整权限。默认情况下不包含购买域名的权限。为只读 Agent 提供只读密钥。
3. 重启客户端,然后直接提出需求:
“为我的面包店制作一个单页网站,发布它,并提供线上 URL。” “在我的网站上添加联系表单,然后重新部署。” “将标题改为 ‘Roasted slow’,然后发布。”
适用于任何兼容 MCP 的 Agent:Claude · ChatGPT · Cursor · Claude Code · Codex。
工具
查找与构建 — find_app · create_app · modify_app · check_task · retry_task · rename_app · get_screenshot · wake_app
文件 — list_app_files · read_files · write_files · edit_files · delete_files · generate_image
发布与域名 — publish_app · get_publish_status · search_domains · buy_domain · check_domain · connect_domain
潜在客户、流量、SEO — get_form_submissions · get_analytics · get_search_console · connect_search_console
数据库 — get_database_schema · query_database_rows · insert_database_rows · update_database_rows · delete_database_rows · run_database_sql
账户 — list_apps · get_app · get_credits
| 工具 | 功能 |
|---|---|
find_app | 一次调用即可将域名 / URL / slug 解析为 app_id |
create_app / modify_app | 根据提示词构建网站 / 请 AI 对网站进行更改 → 返回一个任务(自动部署上线) |
check_task / retry_task | 长轮询任务(wait 最长 50s)/ 恢复失败的任务(新的 task_id) |
read_files → edit_files / write_files / delete_files | 读取当前内容,然后只更改需要更改的内容(二进制文件使用 base64)→ publish_app |
generate_image | 将真实图片生成到 public/,无需发送字节数据 |
publish_app / get_publish_status | 使用 verified-live 发布;确认发布状态并读取部署后的报告 |
search_domains / buy_domain | 查找域名 / 创建结账链接 由用户付款(Agent 不会购买任何内容) |
connect_domain / check_domain | 连接用户拥有的域名 / 查看其 DNS 状态 |
get_form_submissions | 网站收到的潜在客户信息,按时间从新到旧排列(使用 since 仅获取新信息) |
get_analytics / get_search_console / connect_search_console | 流量 / Google 搜索数据 / Search Console 的授权链接 |
get_database_schema … run_database_sql | 应用的 Postgres:架构、行的 CRUD 操作(更新 / 删除时必须提供 where)、SQL |
rename_app / get_screenshot / wake_app | 重命名(URL 不变)/ 截图 URL / 唤醒预览沙盒 |
list_apps / get_app / get_credits | 你的应用、单个应用的详情、积分余额与套餐 |
数据库和结账工具需要 database:* / domains:checkout 权限范围:在这些权限范围可用之前创建的密钥会返回 403 INSUFFICIENT_SCOPE — 请使用 Full 预设创建新密钥。
应用参数采用 snake_case:app_id、task_id、prompt、message、visibility。
使用示例
有两种方式可以将代码部署到网站——根据任务选择:
- **
write_files(确定性):**由你的模型编写精确的文件内容;你推送这些文件,Kleap 会原样构建并部署。无需经过 Kleap-AI → 不消耗 Kleap 额度,也绝不会卡住。然后调用publish_app。与 Lovable/v0/Bolt 不同,你的 Agent 可以直接编写代码。 - **
modify_app(Kleap 的 AI):**用通俗的英语描述预期结果,由 Kleap 的 AI 编写代码。类似 Lovable 的消息传递方式——保留此功能,方便你在希望由它自行判断如何修改时使用。
无论采用哪种方式,均由 Kleap 托管(构建、部署、SSL、DB、身份验证、域名、验证上线状态)。
- 安全编辑现有文件(不要盲目重写)——
list_app_files(app_id)→read_files(app_id, ["src/components/Header.astro"])→ 用你自己的模型只修改必须更改的内容 →write_files(app_id, [{ path, content }])→publish_app(app_id)。这个读取→编辑→写入循环是修复页眉/页脚、错误电话号码、失效链接或无法使用的表单,同时又不影响网站其他部分的可靠方式。 - 通过地址指定网站进行编辑——
find_app("mysite.ch")→read_files(...)→write_files(...)→publish_app(...),或者modify_app(app_id, "…")→check_task(task_id, wait=45)。 - **多个页面(程序化 SEO)——最佳方式:**用你自己的模型生成动态路由和数据文件,然后通过一次
write_files推送,再调用publish_app:write_files(app_id, [{ path: "src/pages/[service]/[city].astro", content: … }, { path: "src/data/locations.json", content: … }])→publish_app(app_id)确定性强,可扩展至数千个页面,不会卡住,也不消耗额度。(或者让 Kleap 的 AI 通过一次modify_app完成同样的工作——不要每页循环调用一次。) - 无需守着 5-15 分钟的构建过程——
check_task会长轮询(默认wait=45), 也可以向create_app/modify_app传入webhook_url,实现完全免人工干预的流程。 - 构建失败时——
TASK_TIMEOUT/STALE_TASK表示暂时性问题,请调用retry_task;它会返回一个新的 task_id——轮询这个新 ID。TASK_FAILED表示任务失败——阅读消息,然后重试一次。
已验证上线保证
大多数工具在部署请求发出的那一刻,就会告诉 Agent“已上线”。Kleap 只有在能够确认新版本正在其线上 URL 提供服务后,才会报告网站已发布—— 否则会回滚并报告“未确认上线”。你的 Agent 绝不会给用户一个无法访问的链接。
如果 check_task 报告 failed(暂时性的生成卡顿),请使用对应的
task_id 调用 retry_task,从停止处继续执行——它会返回一个用于轮询的新
task_id,并保留已完成的部分工作。也可以完全跳过 AI,自己通过 write_files
写入精确的代码,然后调用 publish_app。
常见问题
**我需要 API 密钥吗?**不需要。最简单的方式是使用 OAuth 连接器
(https://kleap.co/api/mcp)——你只需在浏览器中登录,无需复制密钥。
只有使用本地命令行 / 直接调用 REST 时才需要 API 密钥。
安全吗?安全。无论使用 OAuth 还是 API 密钥进行连接,Agent 都只能操作
你自己的 Kleap 应用。OAuth 令牌和 kleap_live_sk_ 密钥均有作用域限制,
仅通过 HTTPS 发送,并且可以随时在 https://kleap.co/settings/api-key 中撤销。
kleap auth login / kleap auth key 提供的凭据存储在
~/.kleap/config.json 中(权限为 0600);kleap auth logout 会删除该
文件。存储的 OAuth 登录信息绑定到签发它的源站——如果
KLEAP_API_URL 指向其他地址,命令行工具会拒绝发送令牌
(CREDENTIAL_ORIGIN_MISMATCH),防止恶意或拼写错误的端点窃取令牌。
对于自定义端点(例如 staging),请使用 KLEAP_API_KEY 或 kleap auth key——
你提供的显式密钥会发送到你指定的地址。详情请参阅
SECURITY.md。
**费用是多少?**连接免费。构建和编辑会消耗 Kleap 额度
(get_credits 可查询余额)——请参阅定价。
**哪些 Agent 可用?**任何 MCP 客户端:Claude Desktop、Claude Code、Cursor、 ChatGPT(托管连接器)等。
要求与运行
Node ≥ 18。直接运行:
KLEAP_API_KEY=kleap_live_sk_... npx -y kleap-cli
# → [kleap-mcp] ready (stdio) → https://kleap.co. Tools: list_apps, ...
使用 KLEAP_API_URL 覆盖 API 基础 URL(默认值为 https://kleap.co)。
缺少密钥时 → 服务会以清晰的提示退出。注意:已存储的 OAuth
登录仅适用于签发该登录的源站 — 使用自定义
KLEAP_API_URL 时,请改用 KLEAP_API_KEY 或 kleap auth key 进行身份验证
(参见 SECURITY.md)。
链接
- Kleap:https://kleap.co · MCP 与 CLI 页面:https://kleap.co/mcp
- 问题与安全:https://github.com/kleaphq/cli/issues
由 Kleap 团队维护。MIT © Kleap。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。