Pluma
Docs index
docs/mcp/index.md View markdown →

MCP

Pluma has a remote MCP server. Your agent (Claude Code, Claude, Cursor, ChatGPT) connects to it once and then manages your content with tools, without writing curl.

https://pluma.so/mcp

POST /mcp

  • Streamable HTTP transport, stateless: every request stands on its own.
  • The tools are a thin layer over the same logic as the Management API: same validations, same errors with fix and doc_url.

Authentication

Two ways, same result: a token for one site, and the tools work on that site.

  • OAuth (the usual way): the client opens a Pluma screen, you pick the site and approve. See MCP OAuth.
  • Direct token: your agent's token (pluma_agt_…, from step 2) or a management key, as an Authorization: Bearer … header. For agents without a browser.

Connect it

Claude Code (OAuth: then run /mcp and pick "Authenticate"):

claude mcp add --transport http pluma https://pluma.so/mcp

With a direct token:

claude mcp add --transport http pluma https://pluma.so/mcp --header "Authorization: Bearer $PLUMA_KEY"

Cursor (.cursor/mcp.json) and other clients with a JSON config:

{
  "mcpServers": {
    "pluma": {
      "url": "https://pluma.so/mcp",
      "headers": { "Authorization": "Bearer pluma_agt_…" }
    }
  }
}

Then ask your agent, for example: "With Pluma, show me the draft events and publish the Open House."

Errors

If a tool fails, the response is a result with isError: true and the same error JSON as the API:

{ "error": { "code": "validation_failed", "message": "…", "fix": "…", "doc_url": "…", "details": { "fields": { "slug": ["is required to publish"] } } } }

A missing or bad token gives HTTP 401 with missing_key or invalid_key.

The list of tools is in MCP tools.