Build, edit, publish, and manage websites and web apps with Kleap hosting, domains, and analytics.
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent β or use 1-click editor setup below.
One-click editor setup isnβt available for this listing yet β we donβt have a confirmed install command, and weβd rather show nothing than point your editor at the wrong package or host. Follow the projectβs own setup instructions, linked above.
Your agent builds. Kleap ships it live. Let any AI agent β Claude, ChatGPT, Cursor, or a bash-tool agent like Claude Code β build, edit and publish real, live websites for you. Hosting, database, auth and domains included.
An alternative to Lovable / v0 / Bolt β except it's driven by your agent, and every publish comes with the verified-live guarantee: a site is only ever reported online once it is provably serving β never a hallucinated dead link.
This package is both a CLI (kleap create "β¦", kleap publish 42, β¦) and an
MCP server (kleap mcp / no args) β same
account, same ~/.kleap/config.json auth, same underlying /api/v1 REST API.
Pick whichever fits your agent: a shell/bash-tool agent (Claude Code, a cron
script, CI) wants the CLI β one compact line per call, no JSON-RPC framing.
An MCP-native client (Claude Desktop, Cursor, ChatGPT connectors) wants the
MCP server, which this package also is, unchanged.

Above: a real run β your agent writes the code with
write_files,publish_appbuilds & deploys it, and the page is live in seconds. Or just ask Kleap's AI in plain English.
No secrets live in this package β it reads your own KLEAP_API_KEY (or the
token saved by kleap auth login) and talks only to kleap.co.
If your agent drives a bash tool rather than MCP, use the CLI directly.
Output is 1-3 lines by default (token-efficient β built for an agent reading
its own tool output, not a human terminal), clean exit codes (0/1), and a
--json flag whenever you want the full structured response.
| Command | What it does |
|---|---|
kleap auth login | Sign in via browser (OAuth, PKCE loopback) β no key to copy |
kleap auth key <KEY> | Store a kleap_live_sk_... key instead (CI / non-interactive) |
kleap auth logout / kleap auth status | Clear / show current auth |
kleap create "<prompt>" [--visibility public|personal] [--webhook <url>] [--no-wait] [--json] | Create a site, wait for the build (~5-15 min), print the live URL |
kleap edit <app> "<prompt>" [--webhook <url>] [--no-wait] [--json] | Ask Kleap's AI to change a site, wait for it to redeploy |
kleap publish <app> [--no-wait] [--json] | Publish/redeploy with the verified-live guarantee |
kleap status <app> [--json] | One-line status: name, id, live URL or "not published" |
kleap list [--limit N] [--q text] [--json] | Your apps, one tab-separated row each: id name url |
kleap domains search <query> [--tlds .com,.io] [--json] | Available domains, one per line |
kleap domains connect <domain> <app> [--json] | Connect a domain you own; prints the A record to set |
kleap screenshot <app> | Capture a preview screenshot, print its URL |
kleap task <task_id> [--wait] / kleap task retry <task_id> [--wait] | A create/edit task's status (long-poll with --wait) / resume a failed one |
kleap rename <app> <name> Β· kleap wake <app> Β· kleap messages <app> Β· kleap credits | Rename (URL unchanged) Β· wake a preview sandbox Β· chat history Β· credit balance + plan |
kleap files ls <app> Β· files cat <app> <path...> | List source paths Β· print file contents |
kleap files write <app> <path> --file <local> | --stdin | --content "<text>" | Write a file (binary extensions go base64 automatically, 512 KB max) β then publish |
kleap files edit <app> <path> --find "<old>" --replace "<new>" [--all] | Replace text inside a file |
kleap files rm <app> <path...> | Delete pages/assets (live until the next publish) |
kleap image <app> <public/name.webp> "<prompt>" [--hd] | Generate an image into the site β then publish |
kleap forms <app> [--since ISO] [--limit N] | Form submissions (leads), newest first; --json is flattened |
kleap analytics <app> [--period 7d|30d|90d] | Visitors, pageviews, top pages |
kleap search-console <app> Β· search-console connect <app> | Google Search numbers Β· the consent link the user opens |
kleap db schema <app> | Tables, row counts, columns of the app's Postgres |
kleap db rows <app> <table> [--where json] [--limit] [--offset] [--order-by col --order asc|desc] | Read rows (one JSON object per line) |
kleap db insert <app> <table> '<json>'|--file rows.json | Insert one object or an array (chunked at 500) |
kleap db update <app> <table> --where json --set json Β· db delete <app> <table> --where json | --where is mandatory and non-empty |
kleap db sql <app> "<sql>" [--params json] | One SQL statement with $1..$n params (owner-level: needs database:write even for SELECT; 500 rows / 5 MB cap) |
kleap domains buy <domain> [--years N] [--app <app>] | Creates a Stripe checkout link the user pays β never bought until they do |
kleap domains check <domain> | DNS / connection status (also: did the paid domain get registered?) |
kleap mcp | Run the MCP stdio server explicitly (same as no args) |
<app> accepts a numeric app id, a slug.kleap.io URL, a bare slug, or a
connected custom domain β resolved server-side in one call
(GET /apps/resolve), same as the MCP find_app tool.
Exit codes are always clean: 0 on success, 1 on any failure, with a single
β <reason> line on stderr (or {"error":{"message":...}} with --json) β
safe to check with $? / try/except subprocess.run(..., check=True) without
scraping prose.
npx -y above needs no install)Same package, same account, same ~/.kleap/config.json auth β just a
different transport for clients that speak MCP
instead of a bash tool.
Add the hosted connector and sign in. Nothing to generate, nothing to paste β you authorize Kleap in your browser like any other app. Works in Claude Desktop, ChatGPT and Cursor.
That's it β all 26 hosted tools are available after OAuth sign-in. Skip straight to step 3.
Prefer a local stdio process? Sign in once β no key to generate or paste:
This opens your browser, you authorize Kleap, and the token is saved to
~/.kleap/config.json. After that, npx -y kleap-cli just works. (kleap auth logout / kleap auth status are there too.) Then add a keyless stdio entry to
your client, e.g. Claude Desktop claude_desktop_config.json:
Prefer a key (e.g. for CI or scripting the REST API directly)?
1. Get an API key β open kleap.co/settings/api-key and click Create my API key (kleap_live_sk_...).
2. Add Kleap to your AI client:
claude_desktop_config.json.cursor/mcp.jsonNo reviews yet β be the first to share how this listing worked for you.
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/kleap)<a href="https://allmcps.com/mcp/kleap"><img src="https://allmcps.com/api/badge/kleap?style=directory" alt="Kleap on AllMCPs" /></a>