内容
# Kleap — AI 智能体网站基础设施
[](https://github.com/kleaphq/cli/actions/workflows/ci.yml)
[](#CLI)
[](https://modelcontextprotocol.io)
[](#工具)
[](./LICENSE)
> **您的智能体构建。Kleap 让它上线。**
> 让任何 AI 智能体 — Claude、ChatGPT、Cursor 或像 Claude Code 一样的 bash 工具智能体 — 为您构建、编辑和**发布真正的实时网站**。包括托管、数据库、身份验证和域名。
一种替代 Lovable / v0 / Bolt 的方案 — 但它由**您的**智能体驱动,并且每次发布都带有**已验证的实时保证**:只有在网站**确实提供服务**时,才会报告上线 — 绝不会是虚假的死链接。
此软件包既是 CLI(`kleap create "…"`, `kleap publish 42`, ...),又是 [MCP](https://modelcontextprotocol.io) 服务器(`kleap mcp` / 无参数)— 相同的账户,相同的 `~/.kleap/config.json` 身份验证,相同的底层 `/api/v1` REST API。根据您的智能体选择更适合的:shell/bash 工具智能体(Claude Code、cron 脚本、CI)需要 **CLI** — 每次调用只有一个紧凑的行,无需 JSON-RPC 帧。MCP 原生客户端(Claude Desktop、Cursor、ChatGPT 连接器)需要 **MCP 服务器**,此软件包也提供此功能,不变。

> *上方:真实运行 — 您的智能体使用 `write_files` 编写代码,`publish_app` 构建并部署,页面几秒钟后上线。或者只需用纯英文询问 Kleap 的 AI。*
**此软件包中不存储任何密钥** — 它读取您自己的 `KLEAP_API_KEY`(或 `kleap auth login` 保存的令牌)并且只与 `kleap.co` 通信。
---
## CLI(适用于智能体 shell — Claude Code、Codex、脚本)
如果您的智能体驱动 **bash 工具** 而不是 MCP,请直接使用 CLI。默认输出为 1-3 行(适用于智能体读取其自己的工具输出,而不是人类终端),干净的退出代码(`0`/`1`),并且有一个 `--json` 标志以获取完整的结构化响应。
```bash
npx -y kleap-cli auth login # 打开您的浏览器一次,无需粘贴密钥
# — 或者,对于 CI / 非交互式:npx -y kleap-cli auth key kleap_live_sk_...
npx -y kleap-cli create "一个用于我的面包店的单页网站,温暖的调色板"
# ✓ 创建应用 4821 — https://warm-bakery-fold.kleap.io
npx -y kleap-cli edit 4821 "将标题更改为 '烤得很慢'"
# ✓ 编辑应用 4821 — https://warm-bakery-fold.kleap.io
npx -y kleap-cli publish 4821
# ✓ 发布 https://warm-bakery-fold.kleap.io
npx -y kleap-cli status warm-bakery-fold.kleap.io # 按 ID、slug、Kleap.io URL 或连接的自定义域名
# ✓ 面包店(4821)— 上线:https://warm-bakery-fold.kleap.io
```
### 命令
| 命令 | 执行操作 |
|---|---|
| `kleap auth login` | 通过浏览器登录(OAuth,PKCE 环回)— 无需复制密钥 |
| `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> [--json]` | 捕获预览截图,打印其 URL |
| `kleap mcp` | 显式运行 MCP stdio 服务器(与无参数相同) |
`<app>` 接受数字应用 ID、`slug.kleap.io` URL、裸 slug 或连接的自定义域名 — 在服务器端通过一次调用解析(`GET /apps/resolve`),与 MCP 的 `find_app` 工具相同。
### 示例:Claude Code / bash 工具智能体
```bash
# 一次性:构建它,发布它,并返回人类可以点击的 URL。
url=$(npx -y kleap-cli create "一个用于我的播客的着陆页" --json | node -e \
'let d="";process.stdin.on("data",c=>d+=c).on("end",()=>console.log(JSON.parse(d).url))')
echo "上线:$url"
# 非阻塞流程(智能体在构建过程中执行其他工作):
npx -y kleap-cli create "一个用于我的播客的着陆页" --no-wait --json # → { task_id, app_id, ... }
# ... 稍后 ...
npx -y kleap-cli status 4821
```
退出代码始终干净:成功时为 `0`,失败时为 `1`,在 stderr 上有一行 `✗ <reason>`(或使用 `--json` 时为 `{"error":{"message":...}}`)— 可以安全地使用 `$?` / `try/except subprocess.run(..., check=True)` 检查,无需分析文本。
### 安装(可选 — 上面的 `npx -y` 无需安装)
```bash
npm i -g kleap-cli
kleap auth login
kleap create "一个用于我的面包店的单页网站"
```
---
## MCP 服务器(适用于 MCP 原生客户端 — Claude Desktop、Cursor、ChatGPT)
同一个软件包,同一个账户,同一个 `~/.kleap/config.json` 身份验证 — 只是用于通过 [MCP](https://modelcontextprotocol.io) 而不是 bash 工具的客户端的传输方式不同。
### 最简单 — 使用 OAuth 连接,无需密钥
添加托管的连接器并登录。**无需生成任何内容,无需粘贴** — 您像其他应用一样在浏览器中授权 Kleap。在 Claude Desktop、ChatGPT 和 Cursor 中有效。
```
https://kleap.co/api/mcp
```
- **Claude Desktop** — 设置 → 连接器 → **添加自定义连接器** → 粘贴 URL → **连接** → 登录到 Kleap。
- **ChatGPT** — 设置 → 连接器 → 添加 URL → 使用 OAuth 授权。
- **Cursor** — 设置 → **MCP** → 添加服务器 → 粘贴 URL → 授权。
就是这样 — 相同的 17 个工具,无需 API 密钥。直接跳到步骤 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`:
```json
{ "mcpServers": { "kleap": { "command": "npx", "args": ["-y", "kleap"] } } }
```
---
### 或 — 本地 CLI 使用 API 密钥
更喜欢密钥(例如用于 CI 或直接使用 REST API 编写脚本)?
**1. 获取 API 密钥** — 在 [kleap.co](https://kleap.co) → **设置 → API 密钥 → MCP / API 访问 → 生成 MCP 密钥** (`kleap_live_sk_...`)。
**2. 将 Kleap 添加到您的 AI 客户端:**
<details open>
<summary><b>Claude Desktop</b> — <code>claude_desktop_config.json</code></summary>
```json
{
"mcpServers": {
"kleap": {
"command": "npx",
"args": ["-y", "kleap"],
"env": { "KLEAP_API_KEY": "kleap_live_sk_..." }
}
}
}
```
</details>
<details>
<summary><b>Cursor</b> — <code>.cursor/mcp.json</code></summary>
```json
{
"mcpServers": {
"kleap": {
"command": "npx",
"args": ["-y", "kleap"],
"env": { "KLEAP_API_KEY": "kleap_live_sk_..." }
}
}
}
```
</details>
<details>
<summary><b>Claude Code</b> — 一条命令</summary>
```bash
claude mcp add kleap -e KLEAP_API_KEY=kleap_live_sk_... -- npx -y kleap-cli
```
</details>
<details>
<summary><b>Cline / Roo (VS Code)</b> — <code>cline_mcp_settings.json</code></summary>
```json
{
"mcpServers": {
"kleap": {
"command": "npx",
"args": ["-y", "kleap"],
"env": { "KLEAP_API_KEY": "kleap_live_sk_..." }
}
}
}
```
</details>
<details>
<summary><b>Windsurf</b> — <code>~/.codeium/windsurf/mcp_config.json</code></summary>
```json
{
"mcpServers": {
"kleap": {
"command": "npx",
"args": ["-y", "kleap"],
"env": { "KLEAP_API_KEY": "kleap_live_sk_..." }
}
}
}
```
</details>
<details>
<summary><b>ChatGPT 和托管智能体</b> — 无本地进程</summary>
在 **`https://kleap.co/api/mcp`** 处添加托管连接器并使用 OAuth 授权(或粘贴您的 `kleap_live_sk_` 密钥)。相同的工具,无需安装。
</details>
> 每个 stdio 配置都相同 — `npx -y kleap-cli` + 一个 `KLEAP_API_KEY` 环境变量 —
> 因此任何 MCP 客户端都有效。
**最小权限密钥:** 当您生成密钥时,选择一个范围 — **只读**(检查站点,无更改),**构建** 或 **完全**。默认情况下,购买域名从不包含在内。给只读智能体一个只读密钥。
**3. 重启客户端并请求:**
> *"为我的面包店创建一个单页网站,发布它,并给我一个上线 URL。*"
> *"在我的网站上添加一个联系表单并重新部署。*"
> *"将标题更改为 '烤得很慢' 并发布。*"
与 **任何 MCP 兼容的智能体** 配合使用:Claude · ChatGPT · Cursor · Claude Code · Codex。
---
## 工具
**查找和构建** — `find_app` · `create_app` · `modify_app` · `read_files` · `write_files` · `rename_app` · `check_task` · `retry_task`
**发布和域名** — `publish_app` · `get_publish_status` · `search_domains` · `check_domain` · `connect_domain`
**账户** — `list_apps` · `get_app` · `list_app_files` · `get_credits`
| 工具 | 执行操作 |
|------|--------------|
| `find_app` | 解析域名 / URL / slug → 应用 ID |
| `create_app` | 从提示创建 Astro 站点 → 返回任务(自动部署上线) |
| `modify_app` | 请求应用的 AI 修改它 → 返回任务 |
| `read_files` | 读取文件的**当前内容**,以便您可以安全地编辑它们(不是盲目的) |
| `write_files` | 直接写入精确文件(**您的**代码,确定性的)→ 然后 `publish_app` |
| `rename_app` | 重命名显示名称(URL 保持不变) |
| `check_task` | 长轮询创建/修改任务直到完成(等待最多 50 秒) |
| `retry_task` | 从部分状态恢复失败/卡住的构建(新的 task_id) |
| `publish_app` | 发布具有已验证的实时保证(实时或回滚,绝不会出现虚假的“上线”) |
| `get_publish_status` | 确认站点确实已发布 + 上线 |
| `search_domains` | 查找可用域名(在 Kleap 中购买域名需要用户确认) |
| `connect_domain` | 将您已经拥有的域名连接到上线应用 |
| `check_domain` | 域名的连接 / DNS 状态 |
| `list_apps` / `get_app` / `list_app_files` | 您的应用,应用的详细信息,它的文件(只读) |
| `get_credits` | 剩余信用余额 + 计划 |
应用参数使用下划线:`app_id`、`task_id`、`prompt`、`message`、`visibility`。
## 食谱
**将代码放到站点上的两种方法 — 按任务选择:**
- **`write_files`(确定性):** *您的* 模型编写精确的文件内容;您推送它们,Kleap 构建并部署为原样。无 Kleap-AI 步骤 → 无 Kleap 积分,绝不会卡住。然后 `publish_app`。与 Lovable/v0/Bolt 不同,您的智能体可以直接编写代码。
- **`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`),或为完全无需人工干预的流程传递 `webhook_url` 到 `create_app` / `modify_app`。
- **构建失败了** — `TASK_TIMEOUT`/`STALE_TASK` = 暂时,调用 `retry_task`;它
返回一个新的 **task_id** — 轮询 *那个*。`TASK_FAILED` = 读取消息,重新尝试一次。
## 已验证的实时保证
大多数工具告诉智能体“它在线了”,只要部署请求发出。Kleap 仅在新版本**确实提供服务**时才报告站点已发布 — 否则回滚并报告“未确认上线”。您的智能体绝不会向用户提供死链接。
如果 `check_task` 报告 `failed`(暂时生成卡住),请调用 `retry_task`,使用该 `task_id` 恢复 — 它返回一个新的 `task_id` 来轮询,并且部分工作被保留。或者跳过 AI,直接使用 `write_files` 编写精确代码,然后 `publish_app`。
## 常见问题
**我需要 API 密钥吗?** 不,最简单的路径是 OAuth 连接器(`https://kleap.co/api/mcp`)— 您用浏览器登录,从不复制密钥。只有在需要本地 CLI / 直接使用 REST API 时才需要 API 密钥。
**安全吗?** 是的。无论您使用 OAuth 还是 API 密钥,智能体只能触及**您自己的** Kleap 应用。OAuth 令牌和 `kleap_live_sk_` 密钥范围限定,通过 HTTPS 发送,仅可撤销一次,在 **设置 → API 密钥** 中。`kleap auth login` / `kleap auth key` 存储的凭证位于 `~/.kleap/config.json`(权限 `0600`); **`kleap auth logout` 删除该文件**。存储的 OAuth 登录绑定到其颁发来源 — 如果 `KLEAP_API_URL` 指向其他地方,CLI 拒绝发送令牌(`CREDENTIAL_ORIGIN_MISMATCH`),因此恶意/错误终端无法捕获它。对于自定义终端(例如,暂存),使用 `KLEAP_API_KEY` 或 `kleap auth key` — 您提供的明确密钥发送到您指向的位置。详细信息在 [SECURITY.md](./SECURITY.md) 中。
**多少钱?** 连接是免费的。构建和编辑使用 Kleap 积分(`get_credits` 报告您的余额) — 请参阅 [定价](https://kleap.co/pricing)。
**哪些智能体有效?** 任何 MCP 客户端:Claude Desktop、Claude Code、Cursor、ChatGPT(托管连接器)等。
## 要求和运行
节点 ≥ 18。直接运行:
```bash
KLEAP_API_KEY=kleap_live_sk_... npx -y kleap-cli
# → [kleap-mcp] ready (stdio) → https://kleap.co. 工具:list_apps, ...
```
覆盖 API 基址使用 `KLEAP_API_URL`(默认为 `https://kleap.co`)。缺少密钥 → 服务器以明确的消息退出。注意:存储的 OAuth 登录仅适用于其颁发的来源 — 使用自定义 `KLEAP_API_URL` 时,请使用 `KLEAP_API_KEY` 或 `kleap auth key` 代替。
## 链接
- Kleap:https://kleap.co · MCP 和 CLI 页面:https://kleap.co/mcp
- 问题和安全:https://github.com/kleaphq/cli/issues
由 [Kleap](https://kleap.co) 团队维护。MIT © Kleap。
MCP 配置
以下是此 MCP Server 的配置信息,可直接复制到 Cursor 或其他 MCP 客户端中使用。
mcp.json
连接信息
猜你喜欢
暂无推荐服务器