{"apiVersion":"v1","directorySlug":"totalcms-mcp-8aa1d78fb6","title":"Total CMS","description":"Build your site by hand, in your favorite web builder, or with a coding agent — your client edits only the parts you choose, and your design stays exactly as you built it. No database, no subscription, nothing leaves your server.","pageUrl":"https://www.mcpbundles.com/skills/totalcms-mcp-8aa1d78fb6","connectPath":"importable","connectAction":"import_server","catalogListing":false,"bundleSlug":null,"listingKind":"remote_mcp","kind":"provider","transportUrl":"https://totalcms.co/mcp","hostedMcpUrl":null,"toolCount":19,"toolInventoryStatus":"observed","refreshedAt":"2026-11-03T13:26:00.516172+00:00","registryName":"co.totalcms/totalcms-mcp-8aa1d78fb6","registryVersion":"2026.11.3","registryEligible":true,"tools":[{"name":"describe_collection","description":"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","inputSchema":{"type":"object","required":["collection"],"properties":{"collection":{"type":"string"}},"additionalProperties":false},"annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"describe_collection","displayName":"describe_collection","title":"describe_collection"},{"name":"describe_view","description":"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.","inputSchema":{"type":"object","required":["id"],"properties":{"id":{"type":"string"}},"additionalProperties":false},"annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"describe_view","displayName":"describe_view","title":"describe_view"},{"name":"docs_get","description":"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\".","inputSchema":{"type":"object","required":["path"],"properties":{"path":{"type":"string"}}},"annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"docs_get","displayName":"docs_get","title":"docs_get"},{"name":"docs_lookup","description":"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.","inputSchema":{"type":"object","required":["kind"],"properties":{"kind":{"enum":["twig_function","twig_filter","field_type","api_endpoint","schema_config","cli_command","extension_api","builder_api"],"type":"string"},"name":{"type":"string"}}},"annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"docs_lookup","displayName":"docs_lookup","title":"docs_lookup"},{"name":"docs_search","description":"Search the Total CMS documentation. Returns matching pages with their path, title, group, and section headings. Use docs_get with a returned path to read the full page.","inputSchema":{"type":"object","required":["query"],"properties":{"limit":{"type":"integer"},"query":{"type":"string"}}},"annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"docs_search","displayName":"docs_search","title":"docs_search"},{"name":"fetch","description":"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.","inputSchema":{"type":"object","required":["id"],"properties":{"id":{"type":"string"}},"additionalProperties":false},"annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"fetch","displayName":"fetch","title":"fetch"},{"name":"find_comparison","description":"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.","inputSchema":{"type":"object","required":["competitor"],"properties":{"competitor":{"type":"string"}}},"annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"find_comparison","displayName":"find_comparison","title":"find_comparison"},{"name":"get_object","description":"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.","inputSchema":{"type":"object","required":["collection","id"],"properties":{"id":{"type":"string"},"format":{"enum":["markdown","html","text"],"type":"string","default":"markdown"},"locale":{"type":"string","default":""},"collection":{"type":"string"}},"additionalProperties":false},"annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_object","displayName":"get_object","title":"get_object"},{"name":"get_resource","description":"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.","inputSchema":{"type":"object","required":["uri"],"properties":{"uri":{"type":"string"}},"additionalProperties":false},"annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_resource","displayName":"get_resource","title":"get_resource"},{"name":"get_view","description":"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.","inputSchema":{"type":"object","required":["id"],"properties":{"id":{"type":"string"},"format":{"enum":["markdown","html","text"],"type":"string","default":"markdown"},"locale":{"type":"string","default":""}},"additionalProperties":false},"annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_view","displayName":"get_view","title":"get_view"},{"name":"latest_release","description":"The most recent Total CMS release: version, title, date and the release summary.","inputSchema":{"type":"object","properties":{}},"annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"latest_release","displayName":"latest_release","title":"latest_release"},{"name":"list_collections","description":"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.","inputSchema":{"type":"object","properties":{},"additionalProperties":false},"annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"list_collections","displayName":"list_collections","title":"list_collections"},{"name":"list_views","description":"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.","inputSchema":{"type":"object","properties":{},"additionalProperties":false},"annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"list_views","displayName":"list_views","title":"list_views"},{"name":"needs_review","description":"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.","inputSchema":{"type":"object","properties":{"before":{"type":"string","format":"date"}}},"annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"needs_review","displayName":"needs_review","title":"needs_review"},{"name":"query_collection","description":"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 he","inputSchema":{"type":"object","required":["collection"],"properties":{"sort":{"type":"string","default":""},"limit":{"type":"integer","default":10,"maximum":50,"minimum":1},"format":{"enum":["markdown","html","text"],"type":"string","default":"markdown"},"locale":{"type":"string","default":""},"offset":{"type":"integer","default":0,"minimum":0},"exclude":{"type":"string","default":""},"include":{"type":"string","default":""},"collection":{"type":"string"}},"additionalProperties":false},"annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"query_collection","displayName":"query_collection","title":"query_collection"},{"name":"query_view","description":"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.","inputSchema":{"type":"object","required":["id"],"properties":{"id":{"type":"string"},"sort":{"type":"string"},"limit":{"type":"integer","default":10,"maximum":50,"minimum":1},"format":{"enum":["markdown","html","text"],"type":"string","default":"markdown"},"locale":{"type":"string","default":""},"offset":{"type":"integer","default":0,"minimum":0},"exclude":{"type":"string"},"include":{"type":"string"}},"additionalProperties":false},"annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"query_view","displayName":"query_view","title":"query_view"},{"name":"search","description":"Search site content across all collections you can see. Returns matching results as {id, title, url}; pass a result id to `fetch` to read the full document. Drafts are hidden from anonymous callers.","inputSchema":{"type":"object","required":["query"],"properties":{"query":{"type":"string"}},"additionalProperties":false},"annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"search","displayName":"search","title":"search"},{"name":"search_collection","description":"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 ar","inputSchema":{"type":"object","required":["collection","query"],"properties":{"limit":{"type":"integer","default":10,"maximum":50,"minimum":1},"query":{"type":"string"},"format":{"enum":["markdown","html","text"],"type":"string","default":"markdown"},"locale":{"type":"string","default":""},"collection":{"type":"string"}},"additionalProperties":false},"annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"search_collection","displayName":"search_collection","title":"search_collection"},{"name":"search_collections","description":"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 sea","inputSchema":{"type":"object","required":["query"],"properties":{"limit":{"type":"integer","default":10,"maximum":50,"minimum":1},"query":{"type":"string"},"format":{"enum":["markdown","html","text"],"type":"string","default":"markdown"},"locale":{"type":"string","default":""}},"additionalProperties":false},"annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"search_collections","displayName":"search_collections","title":"search_collections"}],"toolSource":"directory_preview","agentAction":"both","installLinks":[{"id":"cursor","label":"Cursor","href":"cursor://anysphere.cursor-deeplink/mcp/install?name=Total-CMS&config=eyJ1cmwiOiAiaHR0cHM6Ly90b3RhbGNtcy5jby9tY3AifQ%3D%3D"},{"id":"vscode","label":"VS Code","href":"vscode:mcp/install?%7B%22name%22%3A%22Total-CMS%22%2C%22type%22%3A%22http%22%2C%22url%22%3A%22https%3A%2F%2Ftotalcms.co%2Fmcp%22%7D"},{"id":"vscode-insiders","label":"VS Code Insiders","href":"vscode-insiders:mcp/install?%7B%22name%22%3A%22Total-CMS%22%2C%22type%22%3A%22http%22%2C%22url%22%3A%22https%3A%2F%2Ftotalcms.co%2Fmcp%22%7D"},{"id":"claude-web","label":"Claude.ai","href":"https://claude.ai/customize/connectors?modal=add-custom-connector&connectorName=Total+CMS&connectorUrl=https%3A%2F%2Ftotalcms.co%2Fmcp"},{"id":"codex","label":"Codex","copyText":"codex mcp add \"Total-CMS\" --url \"https://totalcms.co/mcp\""},{"id":"chatgpt","label":"ChatGPT","href":"https://www.mcpbundles.com/docs/integrations/chatgpt"}],"catalogUrl":"https://www.mcpbundles.com/api/directory/v1/servers/totalcms-mcp-8aa1d78fb6","callUrl":"https://www.mcpbundles.com/api/directory/v1/servers/totalcms-mcp-8aa1d78fb6/tools/{tool}","mcpServerUrl":"https://totalcms.co/mcp","liveCatalogUrl":"https://www.mcpbundles.com/api/directory/v1/servers/totalcms-mcp-8aa1d78fb6?live=1"}