MCP · Model Context Protocol

The only deploy target your agent can drive end-to-end.

Most hosting tools stop at “copy this curl command into your chat.” Pagenta ships a remote MCP server: any agent that speaks the protocol — Claude.ai, Claude Desktop, Claude Code, Cursor, Codex, Goose — can deploy pages, manage portals, gate with passwords and expiry, and read back analytics in one round trip. No CLI, no copy-paste, no human in the loop.

One server URL, every client

https://pagenta.ai/api/mcp

OAuth 2.1 + PKCE + Dynamic Client Registration. Each connection is scoped to whichever Pagenta account you approve at sign-in. Revoke via Settings → Connected apps.

Claude.ai (web) — two clicks

Button opens the connector dialog directly. Paste the URL, approve the OAuth prompt, done.

Open Claude.ai → Add connector

Paste this in the URL field

https://pagenta.ai/api/mcp

Other clients

All four below use the same mcp-remote bridge to handle the OAuth dance with a remote HTTP server. Copy, save, restart your client.

Claude Desktop

Settings (⌘,) → Developer Edit Config → paste → save → restart.

{
  "mcpServers": {
    "pagecraft": {
      "command": "npx",
      "args": ["-y", "mcp-remote", "https://pagenta.ai/api/mcp"]
    }
  }
}

Claude Code (CLI)

One command. OAuth opens in your browser on first call.

claude mcp add pagecraft https://pagenta.ai/api/mcp --transport http

Cursor

~/.cursor/mcp.json — same schema as Claude Desktop.

{
  "mcpServers": {
    "pagecraft": {
      "command": "npx",
      "args": ["-y", "mcp-remote", "https://pagenta.ai/api/mcp"]
    }
  }
}

Codex CLI · Goose · any MCP client

Anything that speaks the OAuth-protected HTTP MCP spec works with the same URL. No client-specific code on our end.

https://pagenta.ai/api/mcp

What your agent can do

All tools scoped to the user who authorized the connector.

deploy_page

Create or update a page. Same slug = update in place, same URL.

list_pages · get_page · update_page

Read the user's pages, inspect HTML + metadata, edit in place.

set_password · set_expiration

Gate a page behind a password or auto-expire after a window.

get_page_analytics · get_page_optimization_snapshot · get_page_experiment_snapshot

Views plus visits, goal completions, CTA/form events, screens, targets, and current A/B experiment results for daily optimization loops.

create_client · list_clients · get_client

Portals: group pages for a single audience under one URL + password.

set_secret · list_secrets · remove_secret

Store encrypted API keys scoped to a page or portal. Exposed to cron jobs server-side.

set_cron · get_cron · delete_cron

Schedule a refresh.js that writes to shared state. Pair with set_secret for live API data — no client-side keys.

pagecraft_guide

A short primer the agent reads first so it knows the plan limits, slug rules, and idioms.

Try saying

“Take this HTML and deploy it to Pagenta as /q1-review, attach to the acme portal, and set a password of spring-2026.”

“Deploy a Reykjavík ↔ New Haven weather + FX dashboard as /rey-newhaven, then set a 24h cron that pulls from Open-Meteo and Frankfurter and writes the data to shared state.”

The agent calls deploy_page, then set_cron, and reports back the live URL. No terminal, no CLI, no keys in client code.