← Back to home

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/mcp

Connect 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)

  1. Install the PressGo plugin from WordPress.org (or use Plugins → Add New → search "PressGo").
  2. Activate the plugin. The MCP server is enabled by default.
  3. In your AI client's MCP/Connector settings, paste your MCP URL: https://<your-site>/wp-json/pressgo/v1/mcp
  4. The first request opens OAuth consent; approve with your WordPress login. Your AI client now has an access token.
  5. 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 site
  • inspect_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-section
  • get_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 call
  • update_section — edit a section in place
  • set_globals — update the page's palette, fonts, layout settings
  • clone_page — duplicate a page for A/B variants
  • undo_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_page calls 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