MCP serverio.github.kleaphq/kleap
Build, edit, publish, and manage websites and web apps with Kleap hosting, domains, and analytics.
Overview
Score?
UNRATED 0.689
of what a free look can see, on 20 looks
Looks
20
last 13 hr ago
Tools
34
changed 1 day ago
More info
URL
kleap.co/api/mcp
streamable-http
Says it is
Kleap AI Website & App Builder 1.1.0
protocol 2025-06-18
In the record since
18 days ago
Among servers18,413 with a card
0median 0.606 · this server 0.689 · highest on record 0.8561
Toolsfrom sha256:06f8e131cb…bf5e1d · +0 −0 1 day ago
| Tool | Schema |
|---|---|
| buy_domain Start buying a domain: returns a Stripe checkout_url (valid 30 min) that the USER must open and pay. Nothing is bought until they complete checkout — give them the link, never say |
input · output |
| check_domain Check a domain's connection / DNS status for a Kleap app. |
input · output |
| 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 |
input · output |
| 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 c |
input · output |
| 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: |
input · output |
| 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 sit |
input · output |
| delete_database_rows Delete the rows matching where (required, non-empty, exact matches, e.g. {"id":42}). Permanent. Returns how many were deleted. |
input · output |
| 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 |
input · output |
| 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. No |
input · output |
| 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 |
input · output |
| 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 |
input · output |
| 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 |
input · output |
| 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 |
input · output |
| get_credits Use this when the user asks how much usage they have left or about their plan status. |
input · output |
| get_database_schema The app's Kleap Database (Postgres): its tables, row counts and columns. Call it before reading or writing rows. provisioned:false means the app has no database yet — create one wi |
input · output |
| 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 ap |
input · output |
| 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 |
input · output |
| 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 ( |
input · output |
| 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 ow |
input · output |
| insert_database_rows Insert up to 500 rows into one table of the app's database. Returns the inserted rows (with generated ids/defaults). |
input · output |
| 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 |
input · output |
| list_apps Use this when the user wants to see all their websites with name, slug, preview URL, and production URL. |
input · output |
| 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 |
input · output |
| 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 ' |
input · output |
| query_database_rows Read rows from one table of the app's database. where = exact matches, e.g. {"status":"new"}. Max 500 rows per call; page with offset while has_more is true. |
input · output |
| 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_file |
input · output |
| 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 |
input · output |
| 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_ |
input · output |
| run_database_sql Run SQL on the app's database (owner-level, needs database:write), values as $1, $2 in params. Rows capped at 500 / 5 MB. A table left without row-level security is rolled back (RL |
input · output |
| search_domains Search for available domains for a site (e.g. 'mybakery'). Returns available names across TLDs. To buy one, call buy_domain — it returns a checkout link the user pays. Use connect_ |
input · output |
| update_database_rows Update the rows matching where (required, non-empty, exact matches, e.g. {"id":42}) with the values in set. Returns the updated rows. |
input · output |
| upgrade_plan Use this when the user wants a paid Kleap plan, runs out of usage, or needs a feature that requires one (custom domain, more usage). Returns an upgrade_url the USER must open and p |
input · output |
| wake_app Use this when the user's website preview is sleeping (sandboxes auto-stop after 15 min). Takes ~30-60s to restart. |
input · output |
| 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 (re |
input · output |
Verify it yourself
npx teppi-check https://kleap.co/api/mcpcurl -s https://api.teppi.xyz/v1/trust/mcp/mcs_01M2MCADH4CX7CFHFHE3PRZ4PS