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
fixanddoc_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 amanagementkey, as anAuthorization: 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.