PressGo MCP Server
Connect Claude, Cursor, or any MCP-capable AI to your WordPress site and build Elementor pages by chat.
Public documentation · MCP Protocol Version 2025-06-18
What it is
PressGo is a self-hosted MCP (Model Context Protocol) server that runs as a WordPress plugin. Every WordPress site that installs the plugin exposes its own per-tenant MCP endpoint at:
https://<your-site>/wp-json/pressgo/v1/mcpConnect Claude Desktop, Cursor, Claude Code, claude.ai, Zed, or any MCP-compatible client to that URL. Your AI client can then read, build, and edit Elementor landing pages on your site by chatting with you, with sections appearing in your Elementor editor in real time.
Authentication
OAuth 2.1 with PKCE and Dynamic Client Registration (RFC 7591) plus discovery via RFC 9728 / RFC 8414.
- Discovery:
GET /.well-known/oauth-protected-resource - Authorize:
/pressgo-oauth/authorize(PKCE S256 required) - Token:
/pressgo-oauth/token(90-day access, 365-day refresh, rotated on use) - Manual tokens: for CLI clients (Claude Code, custom scripts), tokens can also be issued from the WordPress admin under PressGo → MCP Server.
All requests use bearer-token authentication on the JSON-RPC endpoint.
Setup (5 minutes)
- Install the PressGo plugin from WordPress.org (or use Plugins → Add New → search "PressGo").
- Activate the plugin. The MCP server is enabled by default.
- In your AI client's MCP/Connector settings, paste your MCP URL:
https://<your-site>/wp-json/pressgo/v1/mcp - The first request opens OAuth consent; approve with your WordPress login. Your AI client now has an access token.
- Start a chat. The MCP server will guide your AI to interview you and build the page section by section.
Tools (15 total)
All tools include MCP-standard annotations (title, readOnlyHint or destructiveHint) so your AI client can present them safely.
Read-only
list_pages— list PressGo-built pages on this siteinspect_page— read the current Elementor structure of a page (cheap state check)get_brain— load PressGo's design-pattern reference (variants, field schemas)screenshot_page— capture a PNG of a page at desktop / tablet / mobile / all viewports, full-page or single-sectionget_header/get_footer— read the site-wide header/footer (Pro)
Build / edit (write tools)
create_page— create a new draft Elementor page (optionally with full config)add_section/add_sections— add one or multiple sections in a single callupdate_section— edit a section in placeset_globals— update the page's palette, fonts, layout settingsclone_page— duplicate a page for A/B variantsundo_last_change— roll back the most recent edit (20-deep history)set_header/set_footer— site-wide header/footer (Plus only)
Resources
pressgo://schema— full configuration schema (section types, variants, field requirements)pressgo://brain— design-pattern reference (typography, color palettes, layout patterns)pressgo://pages/{id}— Elementor element tree for a specific page
Live preview + pause-and-resume
Every page created via MCP comes with a watch_url — a standalone page that auto-reloads as the AI adds sections, so users can show clients a build live without giving them WP admin access. Inside the Elementor editor itself, a small "Live" toggle pill (bottom-right) does the same in-editor, so the user can drag-and-drop while the AI works.
When the user opens the Elementor editor on a page the AI is working on, the MCP server returns mcp_paused on the next write tool call (detected via WordPress's built-in _edit_lock). The AI relays the pause to the user and stops; calling inspect_pageis still allowed so the AI can re-orient when the user is done.
Limits
- Free tier: 3
create_pagecalls per UTC day per WordPress install. Iteration on existing pages is unlimited. - Plus tier ($12/mo): unlimited page builds + site-wide custom header/footer + 1,000 screenshots/day.
- Tool result size: ≤25k tokens.
- Tool execution time: ≤5 minutes (most return in under 2 seconds).
- Screenshot timeout: 90 seconds.
Data handling
All page content, prompts, and generated Elementor structures live on your WordPress site — they do not pass through PressGo's servers. The plugin sends a minimal heartbeat after each create_page call containing only an irreversible MD5 hash of your site's home URL, your current tier, today's count, and version info. Page URLs sent to the screenshot service are not persistently logged. See the full Privacy Policy for detail.
Source & support
- Plugin source (GPLv2): github.com/acehobojoe/pressgo-builder
- WordPress.org listing: wordpress.org/plugins/pressgo-builder
- Contact / support: [email protected]