Payload CMS
Next.js-native headless CMS with an official MCP plugin that exposes every collection to an agent.
Payload is an MIT-licensed CMS and app framework that installs into a Next.js /app folder, with an admin UI, REST and GraphQL APIs, auth, drafts, and localization. Content types are TypeScript in payload.config.ts. The Builder ships @payloadcms/plugin-mcp, which serves an MCP endpoint at /api/mcp with find, create, update, and delete tools per collection and global, gated by API keys.
- I want a CMS inside my Next.js app that my agent can fill and update without me building endpoints
- I need a content backend with auth and drafts that deploys to Vercel or Cloudflare in one click
- plugin-mcp is versioned 4.0.0-canary.14 in the monorepo; check whether the release you install is stable
- Each collection must be explicitly enabled in the plugin config before an agent can reach it
- MCP requests need a user API key created in the admin panel; keys inherit that user's access control
- Payload runs inside Next.js; there is no standalone server binary
Last activity Sep 3, 2026. Fit: adaptable 3, operable 3.
Adaptable: what is yours to change
Make it yours
Light edit9 things to edit
Start from the website template: .env sets database, secret, server URL, cron and preview secrets. Everything you actually adapt is TypeScript: collections and globals in payload.config.ts and src/collections, plus the mcpPlugin block that decides which collections an agent may touch. Expect to edit schema files, not just config.
- Env vars
DATABASE_URLPAYLOAD_SECRETNEXT_PUBLIC_SERVER_URLCRON_SECRETPREVIEW_SECRET- Config files
payload.config.tssrc/collections/*.tssrc/globals/*.ts.env- Prompt files
- none
- Accounts you need
- database host (MongoDB Atlas, Neon, or self-run)Vercel or Cloudflare (optional one-click)
Source
- github.com/payloadcms/payload
- MIT license
- Last commit Sep 3, 2026
- 44,549 stars
Operable: what an agent can drive
Interface
OfficialMCP serverpublished by the builderremote
How an agent can drive an Operable Listing, in five levels: native (built for the agent as the primary interface), official (the Builder ships an agent interface), wrapped (a third party wraps the software's API), config (an agent can only drive it by editing files), gui (screen control only). An interface is official only when it is published by the same organization that ships the software. GUI-level Listings are allowed and sorted last.
Reach
Partial coverage. 4 of 10 jobs reachable through the stated interface.
| Job | Through the interface | Evidence |
|---|---|---|
| Create, read, update, and delete documents in any collection | Reachable | plugin docs: find, create, update, delete tools generated per enabled collection |
| Read and update globals such as site settings | Reachable | plugin docs: find and update tools per enabled global |
| Run custom business logic | Reachable | plugin docs: developer-defined custom tools |
| Manage users and auth | Reachable | users are a collection; enable it in mcpPlugin collections config |
| Upload media files | Undetermined | uploads are collections but binary upload over MCP is not documented |
| Save drafts and publish versions | Undetermined | versions and drafts are a core feature; draft status through MCP update not documented |
| Localize content per locale | Undetermined | localization is core; locale parameter on MCP tools not documented |
| Define collections, fields, and blocks | Not reachable | content model is code in payload.config.ts |
| Configure access control | Not reachable | access functions are code in collection configs |
| Live preview and on-demand revalidation | Not reachable | front-end integration, not an MCP operation |
Code stack
- Languages
- TypeScript
- Frameworks
- Next.jsReactLexical
- Package manager
- pnpm
- Database
- MongoDBPostgreSQLSQLiteCloudflare D1
- Hosting target
- Vercel one-clickCloudflare Workers one-clickDockerany Node host
- Built
- Human-written (recorded, never ranked)
Skills
Payload ships a payload skill with a large reference set so an agent can build Payload apps; the repo separately carries contributor-only skills under .claude/skills/.
- Kind
- bundled
- Paths
packages/payload/skills/payload/SKILL.md- Install
/plugin marketplace add payloadcms/payload
Evidence and confidence
| Field | Where it was seen | Confidence |
|---|---|---|
| formFactor | README: installs in your existing /app folder; admin UI and API served by Next.js | 80% |
| executionModel | no model at runtime; OPENAI_KEY in root .env.example is for monorepo tests | 90% |
| operability | packages/plugin-mcp in the payloadcms/payload monorepo, documented at payloadcms.com/docs/plugins/mcp | 95% |
| effort | templates/website/.env.example names five vars; collections are TypeScript per docs | 85% |
| editions | README: completely free and open-source, one-click Vercel and Cloudflare; Payload Cloud is the paid hosted offer | 80% |
| active | pushedAt 2026-09-03 | – |
| provenance | company-built since 2021 with large contributor base; no vibe-coded claim | 85% |
| reach | 75% |
Open questions
- Payload Cloud pricing was not fetched
- Does the MCP plugin handle file uploads, draft status, and locale parameters? Reach items left null
- Is plugin-mcp released as stable on npm, or only canary?
Sources
- github.com/payloadcms/payload sourcing:content-publishing:curated
- payloadcms.com/docs/plugins/mcp analysis:content-publishing
- github.com/payloadcms/payload/tree/main/templates/website analysis:content-publishing