The website builder MCP server
Connect Claude, Cursor, or any MCP client to PageHub. Your agent builds a real site in a draft, checks it in a browser, and publishes it to your domain. You or your client can keep editing it in the visual editor, no AI needed.
- 85 tools
- Browser sign-in
- Streamable HTTP
- Works on the free plan
Connect in one minute
There's nothing to install. Add the URL to your client and sign in to PageHub in your browser. No API key to copy.
Claude on the web or desktop
- In Claude on the web or desktop, open Settings → Connectors.
- Click Add custom connector, name it PageHub, and paste the URL below.
- Click Connect, then sign in to PageHub in the window that opens.
https://pagehub.dev/api/mcp
Claude Code
- Run this in your terminal.
- Start Claude Code, type
/mcp, pick PageHub, and sign in in the browser window that opens.
claude mcp add --transport http PageHub https://pagehub.dev/api/mcp
Cursor
- Click Add to Cursor. Or add this to
~/.cursor/mcp.jsonfor every project, or.cursor/mcp.jsonfor one. - Cursor asks you to sign in to PageHub the first time it connects.
{
"mcpServers": {
"PageHub": {
"url": "https://pagehub.dev/api/mcp"
}
}
}VS Code or any other agent
- In VS Code, click Install in VS Code.
- For any other agent, paste this prompt. It adds PageHub to its own settings and tells you if it needs you to restart or approve anything.
Set up the PageHub MCP server for me, then connect to it. - Name: PageHub - URL: https://pagehub.dev/api/mcp - Transport: Streamable HTTP (hosted, nothing to install) - Auth: OAuth. Start the sign-in and give me the link to approve in my browser. No API key needed. If you can't do OAuth, send the header "Authorization: Bearer <key>" with my key from https://pagehub.dev/dashboard/api-key instead. Add it to your own MCP settings. If I need to restart you, reload a window, or approve something to finish connecting, tell me exactly what to click. Once you're connected, call list_sites and tell me what you can see. PageHub sends its own build instructions when you connect, so follow those.
Client can't sign in through the browser? Send the header Authorization: Bearer <key> with a key from your API key page. Once connected, PageHub sends its build rules to the agent automatically, so there's no prompt file to keep in sync.
How it works
Your agent talks to PageHub over MCP. PageHub keeps the site, the draft, the hosting, and the domain.
Your agent connects
It signs in as you and gets PageHub's build rules on connect.
It builds in a draft
Every write lands in the draft. The live site keeps serving the old version.
It checks the result
screenshot_site renders the draft in a real browser, at desktop width and at 390px for phones.
It publishes
Nothing goes live until publish_site runs. The agent is told to ask you first.
It connects your domain
set_domain returns the DNS records to add at your registrar. SSL is issued once they check out.
People keep editing
The site opens in the visual editor. The agent reads the draft, so it sees your edits next time.
Example session
One request, from an empty account to a live site on your own domain. The tool calls are the ones the server actually runs.
- YouI just bought mossandfern.co. I need a one-page site for my plant shop with a contact form. Show me before it goes live.
- list_presets# looks for a calm, green theme
- create_site# new site named Moss & Fern
- set_theme# applies the nature-green preset
- search_blocks# finds hero, services, hours, and contact blocks
- apply_kit_block# places each block with your shop's copy
- find_image# picks plant photos with working URLs
- screenshot_site# desktop and 390px phone shots of the draft
- AgentHere's the draft on desktop and phone. Want any changes before it goes live?
- YouLooks good. Put it on my domain.
- set_domain# attaches mossandfern.co and returns its DNS records
- AgentAdd these DNS records at your registrar, then tell me when you're done.
- get_domain_status# confirms the records are in place
- publish_site# makes the draft live
- AgentIt's live at mossandfern.co. The certificate can take a few minutes.
What an agent can do
The server has 85 tools, listed here straight from the server, grouped by job.
Sites and pages (13)
Start a site from a template, copy one, rename it, and add or change pages and their SEO fields.
- list_sites
- select_site
- create_site
- duplicate_site
- update_site
- delete_site
- list_templates
- pull_template
- select_template
- list_pages
- add_page
- update_page
- delete_page
Blocks and components (6)
Look up the block library, component props, and style tokens before writing anything.
- search_blocks
- list_blocks
- get_block
- list_block_nodes
- get_component_schema
- get_style_reference
Build and edit (10)
Place library blocks, add or move sections, and change any element, one at a time or in a batch.
- apply_kit_block
- add_nodes
- insert_node
- move_node
- delete_node
- patch_site_node
- patch_site_bulk
- list_site_nodes
- search_site_nodes
- get_site_node
Theme (7)
Colors, fonts, spacing, button styles, and the favicon. Palette and font tools offer choices without changing the site.
- set_theme
- list_presets
- suggest_palettes
- suggest_font_pairings
- generate_button_classes
- validate_button_classes
- set_favicon
Images, video, and icons (8)
Find stock photos, videos, and icons, upload your own files to the site's media library, or host files people can download.
- find_image
- find_video
- find_icon
- upload_image
- upload_file
- list_downloads
- set_download
- remove_download
Collections (CMS) (11)
Per-site content types for blogs, listings, and products. Import rows from a CSV.
- list_collections
- get_collection
- create_collection
- update_collection_schema
- delete_collection
- list_collection_rows
- create_collection_row
- create_collection_rows
- update_collection_row
- delete_collection_row
- import_collection_csv
Selling with Stripe (5)
Connect Stripe, make a collection sellable, and look up products for a shop page.
- stripe_connect
- set_checkout
- stripe_search_products
- stripe_list_categories
- stripe_get_product
Check the work (3)
Screenshot the draft in a real browser, then run SEO and accessibility audits.
- screenshot_site
- audit_seo
- audit_accessibility
Publish and domains (9)
Publish or unpublish, attach a custom domain and get its DNS records, plus redirects and analytics tags.
- publish_site
- unpublish_site
- check_domain
- set_domain
- get_domain_status
- set_domain_redirect_mode
- clear_domain
- set_redirects
- set_integrations
Site emails (4)
Edit and preview the emails visitors and buyers get, like order receipts and sign-in links.
- list_site_emails
- get_site_email
- update_site_email
- preview_site_email
Site chat (2)
Turn on the chat bubble that answers visitors from the published site, and choose what it asks for and where their messages go.
- get_site_chat
- set_site_chat
Team and client review (6)
Invite people to a site with a role, and turn on a portal such as a sales banner or client review.
- invite_site_member
- list_site_members
- revoke_site_invite
- set_portal
- get_portal
- remove_portal
Other (1)
Newer tools that aren't sorted into a group yet.
- place_section_tree
Auth, limits, and safety
What the server checks on every call, and what stops an agent from changing a live site by accident.
- Browser sign-in
- OAuth 2.1 with dynamic client registration and PKCE, so your client registers itself and you approve it in the browser. Access tokens start with
ph_at_, expire, and are refreshed by the client. - API keys
- For clients without OAuth, send
Authorization: Bearer ph_…with a key from your API key page. PageHub stores keys hashed and shows the full key once. - Rate limit
- 120 requests per minute per token. Past that, the server answers 429. Wait a minute and try again.
- Request size
- Request bodies can be up to 5 MB. For large images, pass a public link to
upload_imageasimageUrlinstead of the file data. - Drafts until you publish
- Every write goes to the draft. Visitors keep seeing the published version until
publish_siteruns, and the agent is told to ask before publishing a site unless you asked it to. - Undo
- Site history keeps earlier versions of the site, so you can restore one from the dashboard. The free plan keeps 15.
- Plans
- MCP works on every plan, including free. Plan limits still apply to what the tools do. For example, the free plan has 20 pages per site and 1 custom domain. See pricing.
- Pin a site per request
- Stateless clients can send
x-pagehub-site-idso every call targets one site without callingselect_sitefirst.
PageHub vs Webflow, Wix, Framer, and Duda MCP servers
If your sites already live on one of these platforms, use that platform's server. PageHub fits when you want any agent to build a new site, host it, and hand it to people who edit without AI.
| Server | How you connect | Worth knowing |
|---|---|---|
| PageHub | Remote URL with browser sign-in | Creates sites from nothing, keeps every write in a draft until publish_site, and attaches your own domain. |
| Wix | Remote endpoint, or an npx config | Built around Wix sites and Wix business features. |
| Webflow | Webflow's MCP server | Its docs list Node 22.3+ as a requirement. Some operations, like snapshots and reading your selection, need the Designer open with the Bridge App. |
| Framer | npx @framer/agent setup | Changes go to a branch before you publish. The community Framer MCP plugin only works while the project is open. |
| Duda | Duda's MCP server (beta) | Manages, publishes, and unpublishes existing sites, blogs, and stores. Its docs don't say whether it can create a site, and warn that changes are permanent. |
From each vendor's public MCP docs, September 2026. Check their docs for changes.
For agencies
Build client sites with your agent, then hand them over to clients who edit them in the visual editor.
duplicate_sitecopies a site you've built as the starting point for a new client. The domain and published state aren't copied.invite_site_memberadds your client as an owner, editor, or viewer. Editors change content but can't manage members or billing. Free allows 1 collaborator per site; Pro and up allow unlimited.set_portalwraps a site in a portal, such as a client review or a sales banner.- A second server,
https://pagehub.dev/api/mcp/agency, handles the business side: leads, clients, and invoices. It uses an API key, not browser sign-in.
Putting client sites under your own brand? See the white-label setup.
Troubleshooting
- The PageHub tools don't show up
- Check the URL is exactly
https://pagehub.dev/api/mcp, then restart the client or reload its window. In Claude Code, run/mcpto see whether PageHub is connected. - The sign-in window never opened
- Your client may not support OAuth. Send
Authorization: Bearer <key>with a key from your API key page instead. - Calls fail with 429
- The token went over 120 requests in a minute. Wait a minute. For many small edits, ask the agent to use
patch_site_bulk, which applies them in one call. - Calls fail with 413
- The request was over 5 MB. For images, upload by link with
imageUrl. - The agent says no site is selected
- Ask it to run
list_sitesand thenselect_site, or to pass the site id with each call. - My changes aren't on the live site
- They're in the draft. Ask the agent to run
publish_site. - The domain still shows as pending
- The DNS records aren't in place yet, or haven't spread. Ask the agent to run
get_domain_statusand compare its records with your registrar's. The SSL certificate can take a few minutes after that. Attaching a domain doesn't publish, so runpublish_sitetoo.
Still stuck? Email support@pagehub.dev and we'll help you get connected.
Questions about the MCP server
Setup, cost, and what an agent can and can't do on its own.
Connect your agent
Add the URL, sign in once, and ask for a site. It stays a draft until you publish.