Connect Kleap and your agent gets 26 tools, among them check_domain, check_task, connect_domain. It answers at https://kleap.co/api/mcp over streamable HTTP, and it listed its tools to an anonymous client, so no sign-in was needed for that. Our probes reached it 4 of 4 times since 15 September 2026; the last check, on 20 October 2026, succeeded.
Build, edit, publish, and manage websites and web apps with Kleap hosting, domains, and analytics.
Description as the publisher wrote it.
| Tool | What it does |
|---|---|
check_domain | Check a domain's connection / DNS status for a Kleap app. Inputs: domain, context |
check_task | Check a create/modify task. Returns quickly with the CURRENT status — report it to the user rather than calling again in the same turn; a build takes 5-15 min, so the answer to 'is it ready?' is usually 'still building, here is the progress Inputs: task_id, wait, context |
connect_domain | Connect a domain the user ALREADY OWNS to a live Kleap app (routing + automatic TLS). The app must be live first — a create_app/modify_app with deployment_status deployed already counts as published, so you do NOT need publish_app first. Th Inputs: app_id, domain, context |
connect_search_console | Use this when the user wants to connect (or reconnect) Google Search Console for a site — typically right after get_search_console reported connected:false. Returns a consent_url: give it to the user as a link and ask them to open it and ap Inputs: app_id, context |
create_app | Use this when the user wants a complete, hosted website or web app built from a text description (e.g. 'build me a website for X'). Kleap's AI builds AND auto-deploys the whole site; this takes a few minutes (typically 5 to 15 min). Returns Inputs: prompt, visibility, context |
delete_files | Remove pages, components or assets from a site — the counterpart to write_files. Use it when a page should no longer exist: a wrong route, a duplicate, an outdated landing page, an image nobody references. Do NOT overwrite the file with emp Inputs: app_id, paths, context |
edit_files | Change PART of a file without resending it — the counterpart to write_files. Give `old_string` (exact text as in the file today) and `new_string`; Kleap reads, replaces, stores. Nothing else moves. Use it whenever the file exists and only a Inputs: app_id, edits, context |
find_app | Resolve a website the user refers to by its ADDRESS — a custom domain ('mysite.ch'), a kleap.io URL ('mysite.kleap.io'), or a slug — to its app_id. Use this FIRST whenever the user names a site by its address instead of an app_id (e.g. 'edi Inputs: query, context |
generate_image | Put a REAL photo or illustration on the site by describing it — no image bytes to send. Give a vivid `prompt` and a `public/` `path` (e.g. public/hero.jpg); Kleap generates it with Cloudflare FLUX.2 and stores it as a proper binary asset, e Inputs: app_id, path, prompt, width, height, hd |
get_analytics | Use this when the user asks about traffic, visitors, or which pages/referrers are performing on their PUBLISHED site. Backed by the same analytics as the Kleap dashboard's Visitors view. Returns zeroed data with configured:false if the app Inputs: app_id, period, context |
get_app | Show a website to the user: its screenshot, name and live address. This is the ONE tool that renders the finished-site card, so call it once after a build or edit has finished and deployed (check_task says deployment_status deployed) — that Inputs: app_id, context |
get_credits | Use this when the user asks about their remaining credit balance or plan status. Inputs: context |
get_form_submissions | Use this when the user asks who filled out their contact form, or wants to see/export leads from their live site. Returns submissions from any <form> built with KleapForm on the app, newest first. Empty list is normal for a brand new site w Inputs: app_id, limit, since, context |
get_publish_status | Use this to check whether a website is actually published and live. Returns the published state, the live production URL, and — once a publish has run — the PUBLISH REPORT of what Kleap checked on the site it just built: broken_links (exist Inputs: app_id, context |
get_screenshot | Use this when the user wants to see a visual screenshot of their website. Rate-limited to 1/min per app. The returned image_url is a PNG on the asset host — render it as an image () and nothing else. It is NOT the websi Inputs: app_id, context |
get_search_console | Use this when the user asks how their site is doing IN GOOGLE SEARCH — keywords/queries they rank for, impressions, clicks from search, CTR, or average position. Backed by their own Google Search Console property (connected per site in Klea Inputs: app_id, period, context |
list_app_files | List the source file PATHS of an app (names only, no contents). See the project structure, then read_files to get contents before editing. Astro: src/pages/*.astro, src/data/*.json, src/components/*.astro, public/*. Inputs: app_id, context |
list_apps | Use this when the user wants to see all their websites with name, slug, preview URL, and production URL. Inputs: limit, offset, context |
modify_app | Use this when the user wants to change or update an existing website. The AI can overwrite or remove existing content and automatically publishes the result to the live site. This consumes Kleap credits. Needs the app_id — if the user named Inputs: app_id, message, context |
publish_app | Use this to take a website LIVE at its public URL. Publishing is VERIFIED-LIVE: the app is only reported published once the new version is provably serving — otherwise it reports 'not confirmed live', never a false 'it is online'. Publishin Inputs: app_id, context |
read_files | Read existing file contents so you can edit them SAFELY instead of rewriting blind (which risks breaking shared components/homepages). Loop: list_app_files → read_files → edit_files (change just the lines that must change) → publish_app; us Inputs: app_id, paths, context |
rename_app | Rename an app's display name. Does NOT change the URL — the live address ({slug}.kleap.io) and any links to it stay intact. (There is no tool to delete the entire app; delete_files removes selected source files.) Inputs: app_id, name, context |
retry_task | Resume a failed or stalled create/modify task from where it stopped — partial files are preserved. Use this when check_task reports 'failed' instead of starting a brand-new create_app. Returns a NEW task_id — poll check_task on that NEW id Inputs: task_id, context |
search_domains | Search for available domains for a site (e.g. 'mybakery'). Returns available names across TLDs. NOTE: agents cannot buy a domain — purchase is confirmed by the user in Kleap. Use connect_domain for a domain the user already owns. Inputs: query, tlds, context |
wake_app | Use this when the user's website preview is sleeping (sandboxes auto-stop after 15 min). Takes ~30-60s to restart. Inputs: app_id, context |
write_files | Write WHOLE files DIRECTLY — YOUR model generates the code, Kleap stores, builds and deploys it as-is. To change something in a file that ALREADY EXISTS, use edit_files instead (read_files → edit_files): it replaces just the lines you name, Inputs: app_id, files, context |
Every block below points at https://kleap.co/api/mcp. Pick your client and copy.
claude mcp add --transport http kleap https://kleap.co/api/mcp
{
"mcpServers": {
"kleap": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://kleap.co/api/mcp"]
}
}
}{
"mcpServers": {
"kleap": {
"url": "https://kleap.co/api/mcp"
}
}
}{
"servers": {
"kleap": {
"type": "http",
"url": "https://kleap.co/api/mcp"
}
}
}{
"context_servers": {
"kleap": {
"url": "https://kleap.co/api/mcp"
}
}
}{
"mcpServers": {
"kleap": {
"serverUrl": "https://kleap.co/api/mcp"
}
}
}{
"mcpServers": {
"kleap": {
"url": "https://kleap.co/api/mcp"
}
}
}name: Kleap
version: 0.0.1
schema: v1
mcpServers:
- name: Kleap
type: streamable-http
url: https://kleap.co/api/mcp{
"mcpServers": {
"kleap": {
"httpUrl": "https://kleap.co/api/mcp"
}
}
}{
"mcpServers": {
"kleap": {
"type": "http",
"url": "https://kleap.co/api/mcp"
}
}
}{
"mcpServers": {
"kleap": {
"url": "https://kleap.co/api/mcp"
}
}
}goose://extension?url=https%3A%2F%2Fkleap.co%2Fapi%2Fmcp&type=streamable_http&id=kleap&name=Kleap
It answered our last check on 20 October 2026 in 145 ms. Over 4 checks since 15 September 2026 it answered 4. Status here comes from Neuronto's own probes, not from the publisher.
26, as returned by the server's own tools/list on 24 September 2026: check_domain, check_task, connect_domain, connect_search_console, create_app, delete_files, edit_files, find_app, and 18 more.
It answered our last check on 20 October 2026 in 145 ms. Over 4 checks since 15 September 2026 it answered 4.
Put the server under mcpServers in ~/.cursor/mcp.json with the URL https://kleap.co/api/mcp. The exact JSON is above, with the same setup for Claude Code, Claude Desktop, VS Code, Windsurf, Zed, Gemini CLI and the rest.
It listed its tools to an anonymous client, so reading the tool list needs no key. Individual tools can still ask for credentials in their own inputs.
Publisher: io.github.kleaphq. Endpoint host: kleap.co. ARD identifier: urn:air:io.github.kleaphq:mcp:kleap.
First indexed 15 September 2026. The tools are exactly what the server returned; nothing on this page
is inferred from its name. Ranking in Neuronto search is never for sale.