Skip to main content
Glama

Server Details

Total CMS docs, guides and CMS comparisons: Twig, field types, schemas, CLI, REST API and releases.

Ownership verified
Status
Healthy
Uptime
100.0% over the last 24 hours
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL
Repository
totalcms/cms
GitHub Stars
10
ChatGPT
Total CMS
Claude
–

TDQS

A3.9/5.0

Scored across 20 tools

Disambiguation3/5

The collection vs. view vs. docs families are cleanly separated, but `search`, `search_collection`, and `search_collections` are three near-identical names with subtly different scopes (site-wide result ids vs. single-collection items vs. cross-collection hits), which invites misselection. `fetch` vs `get_object` and the convenience tools (`latest_release`, `needs_review`, `find_comparison`, `list_guides`) also overlap with `query_collection` on the same collections, though the descriptions do steer callers.

Naming Consistency4/5

Most tools follow a predictable snake_case verb_noun pattern (list_collections, describe_view, query_collection, get_object, docs_search). A few outliers break the pattern: bare `fetch`, bare `search`, noun-only `latest_release`, and verb_verb `needs_review`.

Tool Count3/5

20 tools is on the heavy side, and the surface is somewhat padded by convenience wrappers (latest_release, list_guides, needs_review, find_comparison) that duplicate what query_collection plus a filter could do. Still, the count roughly maps to coherent families (collections, views, docs, search) rather than arbitrary sprawl.

Completeness4/5

The server is consistently read-only, and it covers the read lifecycle well: discovery (list_*), schema (describe_*), filtering (query_*), free-text (search*), full records (get_object/get_resource), plus docs. Gaps are minor — no asset/media or navigation/menu access, no write operations if authoring was intended, and the three search tools suggest the search surface was bolted on incrementally.

Publisher details

Operator
Aspect Services, LLC · Publisher source
Vendor relationship
First-party · Publisher source
Restrictions
None. Public read-only endpoint over Streamable HTTP: no account, no API key, no OAuth, no paid plan, no regional limits. · Publisher source

Available Tools

20 tools
describe_collectionA
Read-onlyIdempotent
Inspect

Describe one collection in detail. Returns the collection metadata plus a properties array — each entry is a property with its type, description, and indexed/filterable/sortable flags. Call list_collections first to find a collection id, then describe_collection to see what is queryable inside it. indexed: true means the property appears in query_collection / search_collection results (and may be filterable/sortable). indexed: false means the property exists on objects but is not returned by query/search — retrieve it through get_object instead.

Inputs: collection (required). Returns: id, access, ownership, properties, +3 more

describe_viewA
Read-onlyIdempotent
Inspect

Describe one data view in detail. Returns metadata (id, name, description, last_built, access, total_items) plus output_shape — the list of keys present on the first cached item, sampled so agents can compose effective query_view / get_view calls. Admin callers also receive the view's Twig definition for dev visibility. Use list_views to discover view ids first.

Inputs: id (required). Returns: id, name, access, definition, +4 more

docs_getA
Read-onlyIdempotent
Inspect

Fetch a full Total CMS documentation page as markdown by its path (as returned by docs_search), e.g. "twig/data" or "site-builder/overview".

Inputs: path (required). Returns: object

docs_lookupA
Read-onlyIdempotent
Inspect

Look up a specific Total CMS reference entry: Twig functions/filters, field types, REST API endpoints, schema configuration keys, CLI commands, extension API, or builder API. Omit name to list all entries of a kind.

Inputs: kind (required), name. Returns: object

fetchA
Read-onlyIdempotent
Inspect

Fetch the full document for a search result id. Returns {id, title, text, url, metadata}; text is the readable body for citation. Pass an id returned by the search tool.

Inputs: id (required). Returns: id, url, text, title, +1 more

find_comparisonA
Read-onlyIdempotent
Inspect

Find the head-to-head comparison page for a competitor by name (case-insensitive partial match). Returns the full page content including the feature table.

Parameters:

  • competitor (string, required): Competitor name, e.g. "Kirby" or "Craft".

Returns: paginated comparisons objects with url per item.

Inputs: competitor (required). Returns: items, limit, total, offset, +1 more

get_objectA
Read-onlyIdempotent
Inspect

Fetch a single object by its id from a collection. Returns the full object as a flat map of fields, decorated with a url field where the collection has a public URL pattern configured. This tool does not search or filter — use query_collection for paginated lists or search_collection for free-text search.

Available collections and filterable properties:

  • articles — id (id, sortable), title (text), author (select), summary (textarea), date (date, sortable), draft (toggle), updated (datetime, sortable)

  • comparisons — competitor (text), competitorUrl (url), heading (text), lede (textarea), reviewed (date, sortable), draft (toggle), sort (number, sortable), id (id, sortable)

  • extension — id (id, sortable), name (text), extensionId (text), soldAs (text), summary (textarea), category (select), price (number, sortable), currency (select), minEdition (select), minVersion (text), bundled (toggle), beta (toggle), docsUrl (url), productUrl (url), draft (toggle), owner (select), featured (toggle), approved (datetime, sortable), submitted (datetime, sortable), weight (range, sortable)

  • guides — heading (text), lede (textarea), reviewed (date, sortable), draft (toggle), sort (number, sortable), id (id, sortable), kind (select), product (select)

  • releases — id (id, sortable), version (text), title (text), date (date, sortable), draft (toggle), urgent (toggle), fullnotesurl (url), announce (toggle)

  • showcase — name (text), url (url), industry (select), id (id, sortable), owner (select), draft (toggle), featured (toggle), approved (datetime, sortable), submitted (datetime, sortable), weight (range, sortable)

  • starters — id (id, sortable), name (text), job (text), useCase (select), siteName (text), summary (textarea), status (select), package (text), buildCommand (text), coreStarter (select), minEdition (select), minVersion (text), demoUrl (url), repoUrl (url), featured (toggle), draft (toggle), updated (datetime, sortable)

  • streams — id (id, sortable), title (text), date (date, sortable), summary (textarea), release (select), draft (toggle)

  • studio-app — id (id, sortable), summary (textarea)

Inputs: id (required), collection (required), format, locale. Returns: id, url

get_resourceA
Read-onlyIdempotent
Inspect

Resolve a tcms:// resource URI to its underlying object. Format: tcms://{collection}/{id} — e.g. tcms://blog/hello-world. Equivalent to calling get_object with the parsed collection and id; returns the same shape. Use this when a URI has been surfaced to you (in other tool output, in user input, etc.); use get_object directly when you have a separate collection + id pair. Extension-registered URIs (other schemes) are reachable via the resources/read transport surface.

Inputs: uri (required). Returns: id, url

get_viewA
Read-onlyIdempotent
Inspect

Fetch a data view's full cached result by id. Output is freeform — each item's field set depends on the view's Twig definition. Call describe_view first to learn the expected shape. Capped at 50 items; larger views return the first 50 plus a hint to call query_view for pagination. For per-item paginated access use query_view directly.

Inputs: id (required), format, locale. Returns: hint, items, total, truncated

latest_releaseA
Read-onlyIdempotent
Inspect

The most recent Total CMS release: version, title, date and the release summary.

Returns: paginated releases objects with url per item.

Inputs: no named parameters. Returns: items, limit, total, offset, +1 more

list_collectionsA
Read-onlyIdempotent
Inspect

Discover the collections visible to you. Lean overview — one entry per collection. Returns id, name (display label), schema (the schema id this collection uses), description, url_pattern, access level, and total_objects (so you can decide whether to paginate or enumerate). For the per-property detail of one collection (which properties exist, which are filterable/sortable), call describe_collection. Then query_collection / search_collection / get_object for the data.

Inputs: no named parameters. Returns: total, collections

list_guidesA
Read-onlyIdempotent
Inspect

The site's Guides: evergreen buying-guide pages served at /guides/{id}. Returns every guide in display order with its id, heading, lede, reviewed date and draft flag. A guide's full content (contenders, choose, howToChoose, faqs, sources) is on the object itself: get_object with collection "guides".

Returns: paginated guides objects with url per item.

Inputs: no named parameters. Returns: items, limit, total, offset, +1 more

list_viewsA
Read-onlyIdempotent
Inspect

Discover the pre-computed data views visible to you. Lean overview — one entry per view. Data views are Twig-defined queries that aggregate across collections; their result is cached and accessible by id. Returns id, name, description, last_built, and access. Use the id with query_view (paginated query), get_view (fetch the whole cached result), or describe_view (output shape + metadata). For raw collection content use list_collections instead.

Inputs: no named parameters. Returns: total, views

needs_reviewA
Read-onlyIdempotent
Inspect

Comparison pages ordered by how long ago their competitor facts were last verified, oldest first. Pass before (ISO date) to return only pages last verified before that date. Each page shows its verification date publicly, so keeping these fresh matters.

Parameters:

  • before (string, optional): Only pages whose reviewed date is on or before this ISO date (optional).

Returns: paginated comparisons objects with url per item.

Inputs: before. Returns: items, limit, total, offset, +1 more

query_collectionA
Read-onlyIdempotent
Inspect

Query a collection for paginated content. Returns the matching items plus pagination metadata (total, limit, offset, has_more); each item is decorated with a public url field where one is configured. Use REST-style include / exclude filter strings (comma-separated field:value pairs; AND-semantics for include, OR-semantics for exclude) and sort (e.g. date:desc). Only properties listed in the catalog below are queryable — other schema properties exist on objects but are not filterable here; use get_object if you need the full record or describe_collection to see every property. This tool does not free-text search content — use search_collection for that. It does not fetch a single object by id — use get_object.

Available collections and filterable properties:

  • articles — id (id, sortable), title (text), author (select), summary (textarea), date (date, sortable), draft (toggle), updated (datetime, sortable)

  • comparisons — competitor (text), competitorUrl (url), heading (text), lede (textarea), reviewed (date, sortable), draft (toggle), sort (number, sortable), id (id, sortable)

  • extension — id (id, sortable), name (text), extensionId (text), soldAs (text), summary (textarea), category (select), price (number, sortable), currency (select), minEdition (select), minVersion (text), bundled (toggle), beta (toggle), docsUrl (url), productUrl (url), draft (toggle), owner (select), featured (toggle), approved (datetime, sortable), submitted (datetime, sortable), weight (range, sortable)

  • guides — heading (text), lede (textarea), reviewed (date, sortable), draft (toggle), sort (number, sortable), id (id, sortable), kind (select), product (select)

  • releases — id (id, sortable), version (text), title (text), date (date, sortable), draft (toggle), urgent (toggle), fullnotesurl (url), announce (toggle)

  • showcase — name (text), url (url), industry (select), id (id, sortable), owner (select), draft (toggle), featured (toggle), approved (datetime, sortable), submitted (datetime, sortable), weight (range, sortable)

  • starters — id (id, sortable), name (text), job (text), useCase (select), siteName (text), summary (textarea), status (select), package (text), buildCommand (text), coreStarter (select), minEdition (select), minVersion (text), demoUrl (url), repoUrl (url), featured (toggle), draft (toggle), updated (datetime, sortable)

  • streams — id (id, sortable), title (text), date (date, sortable), summary (textarea), release (select), draft (toggle)

  • studio-app — id (id, sortable), summary (textarea)

Inputs: collection (required), sort, limit, format, +4 more. Returns: items, limit, total, offset, +1 more

query_viewA
Read-onlyIdempotent
Inspect

Paginated query against a data view's cached result. REST-syntax include/exclude/sort, same vocabulary as query_collection. View data is freeform — call describe_view first to learn the field set before composing filters. limit is capped at 50; use offset to paginate larger views.

Inputs: id (required), sort, limit, format, +4 more. Returns: items, limit, total, offset, +1 more

search_collectionA
Read-onlyIdempotent
Inspect

Free-text search within a single collection. Returns matching items decorated with a public url; total reflects what was found. Supports AND (default), OR, and "quoted phrases". Searches across the properties listed in the catalog below — other schema properties exist on objects but are not searchable here; use get_object for the full record or describe_collection to see every property. This tool does not filter by field value — use query_collection with include/exclude for that. Drafts are auto-hidden from anonymous callers.

Available collections and filterable properties:

  • articles — id (id, sortable), title (text), author (select), summary (textarea), date (date, sortable), draft (toggle), updated (datetime, sortable)

  • comparisons — competitor (text), competitorUrl (url), heading (text), lede (textarea), reviewed (date, sortable), draft (toggle), sort (number, sortable), id (id, sortable)

  • extension — id (id, sortable), name (text), extensionId (text), soldAs (text), summary (textarea), category (select), price (number, sortable), currency (select), minEdition (select), minVersion (text), bundled (toggle), beta (toggle), docsUrl (url), productUrl (url), draft (toggle), owner (select), featured (toggle), approved (datetime, sortable), submitted (datetime, sortable), weight (range, sortable)

  • guides — heading (text), lede (textarea), reviewed (date, sortable), draft (toggle), sort (number, sortable), id (id, sortable), kind (select), product (select)

  • releases — id (id, sortable), version (text), title (text), date (date, sortable), draft (toggle), urgent (toggle), fullnotesurl (url), announce (toggle)

  • showcase — name (text), url (url), industry (select), id (id, sortable), owner (select), draft (toggle), featured (toggle), approved (datetime, sortable), submitted (datetime, sortable), weight (range, sortable)

  • starters — id (id, sortable), name (text), job (text), useCase (select), siteName (text), summary (textarea), status (select), package (text), buildCommand (text), coreStarter (select), minEdition (select), minVersion (text), demoUrl (url), repoUrl (url), featured (toggle), draft (toggle), updated (datetime, sortable)

  • streams — id (id, sortable), title (text), date (date, sortable), summary (textarea), release (select), draft (toggle)

  • studio-app — id (id, sortable), summary (textarea)

Inputs: query (required), collection (required), limit, format, +1 more. Returns: items, limit, query, total

search_collectionsA
Read-onlyIdempotent
Inspect

Full-text search across every collection you can see, in one call. Returns matching items each decorated with collection (which collection the hit came from) and url. Pair collection + id to fetch the full record via get_object. Call list_collections for the available collections and describe_collection on any one for its full property list; properties not flagged filterable there exist on objects but are not searched here (use get_object for the full record). For a single-collection search use search_collection instead — same query syntax, scoped tighter. Drafts are auto-hidden from anonymous callers.

Inputs: query (required), limit, format, locale. Returns: items, limit, query, total

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      A
      quality
      B
      maintenance
      Small self-hosted CMS (PHP 8, no database) for sites with a few pages and a blog, managed by an AI assistant over MCP. The AI changes content, never code: pages, posts, menus, images, PDF documents, redirects, drafts and version history.
      26
      MIT
    • A
      license
      Not graded
      quality
      B
      maintenance
      Agent-first headless CMS running as a Cloudflare Worker, providing MCP servers for schema/content management and editorial operations.
      17 npm
      5
      MIT
    • A
      license
      C
      quality
      B
      maintenance
      MCP server for MODX Revolution 2.8.x and 3.x. Enables AI agents to safely manage CMS resources, templates, chunks, snippets, TVs, settings and dependencies, with backups, access controls and auditing.
      192
      5
      MIT
    Try in Browser

    Glama MCP Gateway

    Add one secure layer between your agents and this server.