AI-Native
Your site, addressable by any AI agent
Point a conformant MCP client at your site URL with /mcp on the end. The agent can list your collections, learn their shape, query them and fetch objects — from the same content the admin edits.
Every Total CMS site serves the Model Context Protocol at /mcp. There is nothing to install on either end: point Claude Code, Claude Desktop, ChatGPT, Cursor or any conformant client at that URL and it can discover your collections, learn which properties are queryable, run filtered queries, search across collections, and fetch individual objects. The endpoint requires Standard or Pro — Lite does not serve it at all.
One URL serves three audiences, and the tool surface scales to the caller. An anonymous agent sees only tools marked public, and only collections you explicitly marked mcp.access: 'public' — drafts are filtered out server-side and can never leak. An API key raises the connection to the admin persona: schemas, collections, cache and content writes. An OAuth token sits between the two, seeing the intersection of the scopes the person consented to, what their access groups actually grant, and which collections are exposed to MCP at all. API keys and the OAuth server are Pro features, so writing to a site from an agent is a Pro capability; anonymous reads work on Standard.
Public access is default-deny. A fresh install exposes nothing: mcp.publicAccess is off and every reserved schema is set to admin-only access. Exposure is a deliberate two-step — turn public access on in settings, and mark at least one collection's MCP access as public in the schema editor. Anonymous callers are rate-limited per IP, and a 429 carries the usual retry headers.
Control runs down to the property. Each collection carries an MCP card holding its access level, an AI-targeted description, and whether it should be addressable as a resource. Each property carries its own MCP details: a description written for agents rather than editors, and an expose flag that strips it from every MCP response when false. Password and secret fields default to not exposed, and the reserved auth schema hides passwords and passkeys explicitly — those defaults hold regardless of persona.
Beyond tools, collections and data views can be published as tcms:// resource URIs an agent can bookmark, re-fetch across sessions and subscribe to for change notifications. A concrete setup: run tcms mcp:status to confirm the endpoint is live and see which tools each persona gets, then claude mcp add --transport http totalcms https://yoursite.com/mcp, and ask the agent what collections the site has. It answers from your schemas rather than guessing.
What you get
One URL, three audiences
Anonymous, API key and OAuth callers all use /mcp. The tools and collections each one sees are filtered per persona on every request.
Default-deny exposure
A fresh install exposes nothing. Public access is off, and every reserved schema is admin-only until you opt a collection in.
Tools that map your content
list_collections and describe_collection show the shape; query_collection, search_collections and get_object read it with the same filter syntax as the REST API.
Resources agents can bookmark
Opt a collection in and it gains a tcms:// URI an agent can re-fetch across sessions, and subscribe to for push notifications when content changes.
Per-property control
Any property can be stripped from MCP responses entirely. Password and secret fields are hidden by default, on every persona.
In practice
One snippet
# Confirm the endpoint, the edition gate, and the tools each persona sees
tcms mcp:status
# Connect Claude Code to the site
claude mcp add --transport http totalcms https://yoursite.com/mcp
# Invoke a tool locally, without going through HTTP
tcms mcp:test query_collection --params='{"collection":"blog","limit":3}'
The CLI answers both halves of the setup question: is the server serving, and does the tool return what you expected.
FAQ
Common questions
Which edition do I need?
Standard or Pro — Lite does not serve the endpoint. On Standard, anonymous read access works. API keys and the OAuth server are Pro features, so agent writes and per-user access need Pro.
Does connecting an agent expose my whole site?
No. Nothing is exposed until you enable public access and mark a collection's MCP access as public. Anonymous callers never see drafts, and password and secret fields are stripped for everyone.
Do I have to run OAuth?
No. Anonymous and API-key access work without it. Note that Claude's connector setup demands a login whenever it can discover an OAuth server, so a site that wants visitors connecting to public collections should turn the OAuth server off.
It works in a browser but my agent gets a 403.
That is usually a server firewall filtering by user-agent — every MCP client is a non-browser client. Exempt /mcp, /oauth/* and /.well-known/* from user-agent rules before debugging anything else.
Related features
- Agents that write Agent writes run the same save path as the admin form. Patch merges only what you send, binary fields are untouchable, and access groups cap the reach.
- REST API JSON endpoints for every collection: CRUD, filtered queries, property-level writes, uploads and reports. Pro adds API keys for external access.
- Access groups & permissions Per-group CRUD permissions over collections, schemas, settings and utility pages, enforced on every route and mirrored in the admin interface.
Want the details? Read the Built-in MCP server documentation →
Or keep browsing: every Total CMS feature →
Start Your Free 45-Day Trial