MCP Plugin
The Model Context Protocol (MCP) plugin exposes a subset of Payload operations to MCP-capable agent clients (Claude Code, Claude Desktop, etc.) on top of the same service layer the CLI and REST API use.
What’s enabled
ShipMore ships a set of custom MCP tools that thinly wrap the same service layer the CLI and REST API use. Tool names are the public surface — an agent can also enumerate the live list directly from the MCP server at connect time. The tools fall into three groups:
page_*— page composition and lifecycle:page_create,page_add_block,page_update_block,page_remove_block,page_publish,page_unpublish,page_get,page_get_block,page_list,page_delete, pluspage_add_pricing_section_for_subscription(creates a subscription product and injects apricing-section-block).tenant_*— tenant management:tenant_create,tenant_get,tenant_list,tenant_update_branding,tenant_assign_domain.- Composer —
page_build(build a full page from a blocks spec) andblock_schema(discover block schemas).
The generic collection find is intentionally disabled — full-page reads can blow MCP context. Use the scoped page_* / tenant_* read tools instead.
How agents connect
ShipMore’s MCP server runs in-process on the deployed box. Point your MCP client at:
https://<your-shipmore-box>/api/mcpAuthentication is separate from the CLI. The MCP plugin authenticates against its own payload-mcp-api-keys collection — generate a key in the Payload admin panel and pass it as a bearer token. (The CLI, by contrast, uses a standard Payload user API key — a different system.)
For Claude Desktop, add to your config:
{
"mcpServers": {
"shipmore": {
"url": "https://your-shipmore-box/api/mcp",
"headers": { "Authorization": "Bearer YOUR_MCP_API_KEY" }
}
}
}Adapter rule
Each MCP tool is a thin wrapper: it validates its inputs against a schema and performs one operation. Tools hold no business logic of their own, so the same operation behaves identically whether it’s invoked over MCP, the CLI, or the admin.
Extending the MCP surface
The MCP surface is extensible — more of the platform’s operations can be exposed as tools over time. Agents discover whatever is available from the live tool list and from SKILL.md, so new operations show up without client changes.
When to add custom MCP tools vs. generic CRUD
| Add a custom MCP tool when… | Use generic CRUD when… |
|---|---|
| The operation has business logic (composition, multi-step orchestration, validation beyond field-level) | Plain create/update/delete is enough and access control is sufficient |
Generic find would return too much context (e.g. full pages with all blocks) | Reads are small and well-bounded |
| There’s a CLI counterpart that already encapsulates the operation | The collection is simple and admin-managed |
Reference
- Upstream plugin docs:
@payloadcms/plugin-mcp - Patterns: Agents → Patterns