Build and publish websites from Cursor
Tell Cursor: “build a one-page website for a bakery”. It builds the site and publishes it at a kleap.io link.
- Copy the config
.cursor/mcp.json - ConnectRun it in Cursor, then sign in on kleap.co when asked.
- Paste the promptThe tested prompt is just below. Change the studio for your business.
- Kleap's build itself
- 5 minmedian of 36 recorded builds. We could not run Cursor's own agent: the reason is below
{
"mcpServers": {
"kleap": { "url": "https://kleap.co/api/mcp" }
}
}Checked Oct 19, 2026
Use Kleap to build a website for my yoga studio: class schedule, teachers, pricing and a booking request form. Calm colours. Wait for the build to finish, publish it and send me the link.
Not run end to end. Cursor was not run to build a site, and here is exactly why. See why
$ agent mcp enable kleap✓ Enabled and approved MCP server: kleap$ agent mcp listkleap: ready$ agent mcp list-tools kleapTools for kleap (35):- check_task (task_id, wait, context)- create_app (prompt, visibility, context)- edit_files (app_id, edits, context)- publish_app (app_id, context) … 31 more$ agent statusNot logged inHow do you connect Kleap to Cursor?
One JSON entry, then a sign-in. Use the project file for one repository or the global file for all of them. Kleap's side is verified (OAuth, 35 tools). We did not run Cursor's agent ourselves: the steps come from Cursor's documentation.
One file, one sign-in.
Add Kleap to mcp.json
Put this in .cursor/mcp.json for one project, or ~/.cursor/mcp.json for every project.
.cursor/mcp.json{ "mcpServers": { "kleap": { "url": "https://kleap.co/api/mcp" } } }You should see: The Kleap entry is in .cursor/mcp.json (this project) or ~/.cursor/mcp.json (every project).
Sign in with OAuth
Cursor supports OAuth for remote servers that require it. Open Cursor's MCP settings (the Customize page), enable kleap and sign in: a browser tab opens on kleap.co. Kleap's server publishes its OAuth metadata, so no client ID is needed.
You should see: Kleap is enabled in Cursor's MCP settings and a browser tab opened on kleap.co. No client ID needed: the server publishes its OAuth metadata.
Optional: install the Kleap skills
The skills CLI detects Cursor and installs build, edit, publish, data and multilingual skills.
Terminalnpx skills add kleaphq/skillsYou should see: The skills CLI detects Cursor and installs the build, edit, publish, data and multilingual skills.
Without the browser, for a repo others share or a script.
Or use a key instead of the browser
Create a key at https://kleap.co/settings/api-key with the narrowest preset and send it as a header.
.cursor/mcp.json{ "mcpServers": { "kleap": { "url": "https://kleap.co/api/mcp", "headers": { "Authorization": "Bearer kleap_live_sk_..." } } } }You should see: The key is in the global ~/.cursor/mcp.json, not in a project file you commit.
What can you ask Cursor to do with Kleap?
Copy one, change the details to yours. Each names what you want and what done looks like, then shows the Kleap tools it makes the agent call and what comes back.
Read this repository's README and package.json, then use Kleap to build a marketing site for the project: hero, features, install steps, pricing placeholder and a contact form. Wait for the build to finish, publish it and give me the URL.
- create_app
- write_files
- publish_app
What you get. A marketing site for the project: hero, features, install steps, a pricing placeholder and a contact form, at a live address. A small repository ended the same way in our Codex run.
Open my Kleap site's pricing page, replace its copy with the text in pricing.md from this repo, keep the layout, publish and confirm it is live.
- read_files
- write_files
- publish_app
What you get. The pricing page copy replaced by your Markdown, layout untouched, republished and confirmed live.
Write the Astro page src/pages/changelog.astro and a src/data/changelog.json with the entries from CHANGELOG.md to my Kleap site using write_files, then publish it.
- list_app_files
- write_files
- publish_app
What you get. A changelog page and its data file written as exact Astro files from CHANGELOG.md. No Kleap AI involved, so no credits.
src/layouts/Base.astro src/components/KleapForm.tsx src/pages/index.astro public/robots.txt …
Pull my Kleap site's analytics and Search Console data for the last 28 days and tell me which page I should rewrite first and why.
- get_analytics
- get_search_console
What you get. The page to rewrite first, with the numbers behind the choice. Search Console must be connected to the site.
connected: false · clicks 0 · impressions 0Google Search Console isn't connected for this site. The owner connects it from the site's options in Kleap (Integrations → Search Console).
Does Cursor really get a site live on Kleap?
We ran the same job, on the same day, and kept every run.
Cursor was not run to build a site, and here is exactly why
Cursor's agent needs a Cursor account to talk to a model, and we have none for this test, so we could not make it build a site. What we could test is Cursor's own MCP client, with no model involved.
- Cursor Agent CLI 2026.10.16, installed from cursor.com/install into a throwaway home folder on Oct 19, 2026.
- With one entry in .cursor/mcp.json (Kleap's URL and a key in the Authorization header): agent mcp enable kleap approved the server, agent mcp list answered “kleap: ready”, and agent mcp list-tools kleap listed all 35 Kleap tools (34 earlier that day, before seo_audit shipped).
- agent status answered “Not logged in”. A run that builds a site needs a Cursor login or an API key from a Cursor account.
In numbersCursor and Kleap in numbers
Four measured figures from our runs, and what each one is.
- 35 toolslisted by Cursor's own agent CLI (2026.10.16) after one mcp.json entry: the server is approved and shows ready
- 4 min 36 sfrom one sentence to a verified-live site, with a script sending the same calls. Cursor's agent itself was not run: it needs a Cursor login we do not have
- 0 broken linksin the publish audit of that recorded run
- 1 creditcharged for the build. Cursor's own usage is billed by Cursor
Look insideWhat does a Kleap site look like to Cursor?
A real block of output, with the note that says what it is.
The real file list of a finished one-page site, as list_app_files returns it. An Astro project: pages in src/pages, one layout, one form component that saves leads to Kleap. This is what write_files and edit_files target.
astro.config.mjs
components.json
package.json
public/robots.txt
src/components/anim/Stage.tsx
src/components/auth/KleapAuth.tsx
src/components/KleapForm.tsx
src/components/ui/button.tsx
src/components/ui/card.tsx
src/components/ui/input.tsx
src/layouts/Base.astro
src/lib/kleap-db.ts
src/lib/utils.ts
src/pages/404.astro
src/pages/index.astro
src/styles/global.css
tsconfig.jsonReal output from Oct 18, 2026 (kleap-cli 2.1.0). Cursor can read any of these with read_files, change a line with edit_files, or replace a file with write_files, then publish builds the site and checks it serves.
Ask Cursor for a site and watch it go live.
What can't Cursor do with Kleap yet?
Every guide says what does not work, so you do not find out in the middle of a project.
No scheduler we can vouch for
We have not verified a scheduler inside Cursor. For recurring jobs, put the Kleap CLI in cron or CI with an API key, then bring the result to Cursor's agent for the edits.
Keep keys out of the repo
If you use a key, put it in the global ~/.cursor/mcp.json rather than a project file you commit.
Kleap sites are Astro projects
write_files can push pages, data files and components, and publish builds them. A site that is not Astro-shaped is a different job.
Not run by us
The Cursor steps are from Cursor's documentation. Kleap's side is verified. Test the first publish by hand.
VerificationWhat we verified for Cursor, and what we did not
Each claim is marked: we ran it, we read it in the docs, or we do not know.
Setup guides rot quietly. So each claim here is marked by how we know it. Runs last checked Oct 19, 2026; setup steps were verified on October 18, 2026 unless a line gives its own date.
We ran it
- Kleap's MCP server answers initialize and tools/list with 35 tools, and publishes OAuth metadata with dynamic client registration, which is what Cursor's OAuth support uses. Verified Oct 18, 2026.
- Cursor's own agent CLI (2026.10.16, installed Oct 19, 2026) against Kleap with one mcp.json entry and a key: agent mcp enable kleap approved it, agent mcp list answered “kleap: ready”, agent mcp list-tools kleap listed the 35 tools.
- The build, publish and verify path through the same server, with a script client, in the replay above.
We read it in the docs
- mcp.json, the project and global file locations, and Cursor's OAuth sign-in are from Cursor's MCP documentation. We did not run Cursor's agent to build a site: agent status answers “Not logged in” and a run needs a Cursor account or API key, which we do not have. We tested its MCP client only, and say so plainly.
We do not know
- We have not verified a scheduler inside Cursor, so we do not claim one.
What if something doesn't work?
The failures we met, or the ones this setup is known to produce, with the fix.
The Kleap tools are not available in the agent
- Why:
- The server is not enabled in Cursor's MCP settings, or the sign-in is not finished.
- Fix:
- Open Cursor's MCP settings, enable kleap, and sign in again if prompted. A restart can help after editing mcp.json.
The JSON entry is rejected
- Why:
- A trailing comma or the wrong nesting.
- Fix:
- The entry sits under mcpServers, with the server name as the key and url inside. Copy the block exactly.
I do not want a browser sign-in for a shared repo
- Why:
- OAuth is per user and needs a browser.
- Fix:
- Use a key in the global file, with the Read-only or Build preset, and revoke it from Kleap's settings if it leaks.
My pushed files do not appear on the live site
- Why:
- write_files stores them; the site only updates on publish.
- Fix:
- Ask for publish_app and wait for the verified-live result.
What do people ask about Cursor and Kleap?
Can Cursor build a website with Kleap?
Yes. With Kleap added as an MCP server, Cursor's agent can create a site, write exact files to it, publish it and check it is live. Kleap hosts the result on a kleap.io address or your own domain.
Where does the code live?
On Kleap, as an Astro project you can read and change through the same tools. Kleap can also back the code up to GitHub; the repository you are working in stays yours.
Does Cursor run it on a schedule?
We have not verified a scheduler in Cursor. For recurring jobs, run the Kleap CLI from cron or CI with an API key, for example npx -y kleap-cli search-console followed by the name of your site.
Does it work with other editors?
Yes. Kleap's server is a standard remote MCP server, so any MCP client works. Windsurf and Cline follow the same pattern as Cursor: a URL and an OAuth sign-in.
Do I need an API key?
No. The connector signs you in with OAuth in your browser, so there is nothing to copy. Cursor opens the OAuth sign-in from its MCP settings. An API key (kleap_live_sk_…, created at https://kleap.co/settings/api-key) is only for unattended jobs, scripts and clients that cannot open a browser. Pick the narrowest preset: Read-only to inspect sites, Build to change and publish them.
Does it cost anything to connect Kleap?
Connecting is free. Building and AI edits draw on your Kleap usage: every build we recorded was charged 1 credit, and the free plan includes some usage. If your agent writes the files itself with write_files or edit_files, Kleap does not run its own AI for that step. Publishing on a Kleap address is free. Cursor's own usage is billed by Cursor, not by Kleap. See the pricing page for what each plan includes.
Can Cursor edit a site that Kleap's AI built?
Yes. It lists the files, reads them, and makes exact edits with edit_files or write_files, then publishes. That is the same pattern Claude Code and Codex used in our real runs.
Should Cursor push exact files or ask Kleap's AI to build?
Push exact files with write_files when the content already exists in your repo: that step runs no Kleap AI. Ask Kleap's AI with create_app or modify_app when you start from a description. Many projects use both: Kleap's AI builds the first version, then Cursor reads the files and makes exact edits where the wording matters.
What happens if a publish from Cursor fails?
Kleap only reports a publish as done once the new version is actually serving at its address. If it cannot confirm that, it rolls back and says so, and get_publish_status returns the audit so the agent can fix what the report names, such as a dead link or a missing page. Ask Cursor to read the report and push the fix with write_files.
Official documentation: Model Context Protocol in Cursor (docs).
More about this setup
What it is, how it compares with the other ways in, and how to put it on a schedule.
In shortKleap + Cursor, in one paragraph
What it is and the three steps.
Add one JSON entry to Cursor. Its agent can then create a site on Kleap, push exact files to it, publish it, and check that it is live. Recorded through the same server: a site verified live in 4 min 36 s.
Connect
Paste the command or URL above into Cursor, then sign in on kleap.co.
Ask
Describe the site in plain words. The prompts below are ready to copy.
Live
Kleap builds and publishes, and reports it live only when the address answers.
Your optionsWhere can a website from Cursor end up?
Alone, in the app, or with Kleap, side by side.
The agent writes the same code either way. What changes is who runs it afterwards.
- The default
Cursor in your repo, your deployment
- The site is a folder in your project, deployed by the pipeline you already have.
- Full control, and full responsibility: hosting, a domain, forms, analytics are yours.
- Fine for a docs site that belongs to the product.
Best if you already deploy and like owning it.
- What this page sets up
Cursor pushes exact files to Kleap
- write_files puts the exact pages, data files and components on Kleap. No Kleap AI runs in that step.
- publish_app builds the Astro site and reports it done only when the address serves.
- Kleap hosts it on a kleap.io address or your domain, with forms and analytics.
Best for a marketing site you generate from the repo.
- From a description
Cursor asks Kleap's AI to build
- create_app and modify_app let Kleap's AI write the site from words (this uses credits).
- Cursor then reads the files and makes exact edits where wording matters.
- A good start when you have no content yet.
Best when you start from a sentence, not from files.
Our take. Push exact files when the content already exists in your repo. Ask Kleap's AI when it does not.
More from Kleap
Pages on the rest of the site that pair with this guide.
Using another agent? Same Kleap account, same sites. Compare the seven agent guides.
Put Cursor to work on your website
Connect once, then ask in plain words. Kleap builds, hosts and publishes, and your agent keeps the site improving.
