Total CMS

co.totalcms由 totalcms.co 发布官方发布者v1.0.2更新于 Oct 29, 2026

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

已验证Streamable HTTP可网页运行网页搜索与抓取知识与记忆开发者工具

概览

AI 生成的概览

以只读方式通过 MCP 访问 Total CMS 站点:浏览集合与对象、运行数据视图,并检索其文档、指南与竞品对比页。

可以做什么
  • 发现集合与数据视图,查看其 schema、属性与可查询字段
  • 查询、搜索并获取集合中的对象,支持分页结果与 tcms:// 资源 URI
  • 运行并分页读取以 Twig 定义的缓存数据视图
  • 搜索站点内容并获取完整文档以便引用
  • 搜索、阅读并查找 Total CMS 文档:Twig、字段类型、REST API、CLI 与 schema 配置项
  • 读取指南、竞品对比页、版本发布说明以及待复核页面
适用场景
适合需要回答关于某个在线 Total CMS 站点内容的问题,或需要查阅 Total CMS 文档与 API 细节而不是靠猜测的场景。也适合需要搜索并引用站点页面的研究型客户端。
运行要求
需要一个位于 Total CMS 站点的远程 MCP 端点,无需本地运行时或安装包。所述连接为只读且匿名,读取无需密钥。写入与管理工具需要 API key 或 OAuth 令牌,而此连接不具备。
安装前请注意
该连接为只读;写入与管理操作(schema、集合、缓存)需要 API key 或 OAuth 令牌,应向用户说明而不是尝试执行。草稿对匿名调用者隐藏,因此结果可能与已发布站点不同。查询与搜索内容会发送到远程 Total CMS 站点。

安装

在 SourceWeft 中

  1. 打开 控制台中的 Total CMS,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Web executable,通过 Streamable HTTP。 远程服务在工作区中配置后即可从网页运行时运行。

交给智能体安装

把这段提示词粘贴到 Claude Code、Codex、Cursor 等智能体,或 SourceWeft 对话中。智能体会读取该服务器的安装指南,先向你展示发布者、端点和登录方式,经你同意后再把它添加到你的客户端。密钥不会写进任何命令。

阅读 https://sourceweft.com/mcp/co.totalcms%2Fdocs/install.md,并按其中说明把这个 MCP 服务器接入我的客户端。修改任何配置之前,先告诉我它的发布者、端点和登录方式,等我确认。不要把 API 密钥写进命令或我会提交的文件;问我密钥应从哪里获取。

查看智能体所依据的安装指南

其他 MCP 客户端

把它添加到你客户端的 mcpServers 配置中。

{
  "mcpServers": {
    "total-cms": {
      "type": "http",
      "url": "https://totalcms.co/mcp"
    }
  }
}

README

Total CMS

A modern flat-file CMS for PHP — no database required

[Latest stable version on Packagist] [Required PHP version] [Commercial license]

Website • Documentation • Pricing • Free trial


About

Total CMS is a content management system built on PHP 8.2+ and Slim 4 that stores content as flat JSON files instead of in a database. There is no MySQL to provision, no migrations to run, and no plugin ecosystem to keep patched — content lives on disk, so it version-controls, backs up, and deploys like the rest of your code.

It is designed for web designers, freelancers, and agencies who want structured content and a polished admin for their clients, on any commodity PHP host.

  • No database — content is JSON on disk; deploy by copying files
  • 33 built-in collection types — blog, image, gallery, file, and more — plus unlimited custom schemas
  • Twig templating — 89 custom filters and 49 functions on top of stock Twig 3
  • Site Builder — add a page in the admin and it is live; no build or generate step
  • REST API — full CRUD for headless use, with API-key or OAuth 2.1 authentication
  • Built-in MCP server — exposes your site's collections and search to AI agents (Pro)
  • Automations — schedule, webhook, and event-triggered handlers with a job queue
  • Extensions — a register/boot lifecycle with capability-based permissions
  • Admin interface — form builder with 20+ field types, media management, passkey login
  • CLI (tcms) — collections, schemas, objects, import/export, sync, and deploys
  • Image processing — on-the-fly resizing, watermarking, and OKLCH color handling

Requirements

  • PHP 8.2+ (8.4 supported)
  • Composer 2.0+
  • Apache or Nginx with URL rewriting
  • PHP extensions: GD or ImageMagick, JSON, Fileinfo, OpenSSL

No database server. No Node.js runtime in production.

Installation

bash
composer create-project totalcms/totalcms mysitecd mysite

Point your web server's document root at public/, then open the site in a browser — the setup wizard handles the admin account, data directory, and license from there.

The installer also offers a subpath layout, which serves Total CMS from /tcms/ and leaves public/ free for your own frontend build. See the Installation Guide for web server configuration.

Twig templates

twig
{% for post in cms.collection.objects('blog') %}    <article>        <h2>{{ post.title }}</h2>        {{ post.content|markdown }}    </article>{% endfor %}

See the Twig documentation for the full filter and function reference.

CLI

bash
vendor/bin/tcms collection:listvendor/bin/tcms jumpstart:export backup.jsonvendor/bin/tcms cache:clearvendor/bin/tcms deploy

For AI agents

Total CMS is built to be worked on by coding agents:

  • llms.txt and llms-full.txt — the complete documentation in one fetch
  • Agent skill — installed into .claude/skills/ automatically on composer install, covering collections, schemas, the CLI, and the Site Builder workflow
  • Built-in MCP server — point an agent at a live site to query its collections and schemas directly (Pro edition)

Documentation

Full documentation is at docs.totalcms.co.

Support

License

Total CMS is commercial software. A license is required for production use. See LICENSE.md for terms.

Free 45-day trials are available — no credit card required. Visit totalcms.co for details.

来源:README.md,提交 6450ab3

工具

20

describe_collection

Describe Collection

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.

输入参数collection必填

describe_view

Describe Data View

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.

输入参数id必填

docs_get

Get Documentation Page

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".

输入参数path必填

docs_lookup

Look Up Reference Entry

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.

输入参数kind必填name

fetch

Fetch

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.

输入参数id必填

find_comparison

Find Comparison

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.

输入参数competitor必填

get_object

Get Object

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)

输入参数id必填formatlocalecollection必填

get_resource

Get Resource

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.

输入参数uri必填

get_view

Get Data View

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.

输入参数id必填formatlocale

latest_release

Latest Release

The most recent Total CMS release: version, title, date and the release summary. Returns: paginated releases objects with url per item.

无需输入参数。

list_collections

List Collections

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.

无需输入参数。

list_guides

List Guides

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.

无需输入参数。

list_views

List Data Views

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.

无需输入参数。

needs_review

Needs Review

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.

输入参数before

query_collection

Query Collection

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

输入参数sortlimitformatlocaleoffsetexcludeincludecollection必填

query_view

Query Data View

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.

输入参数id必填sortlimitformatlocaleoffsetexcludeinclude

search_collection

Search Collection

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)

输入参数limitquery必填formatlocalecollection必填

search_collections

Search Across Collections

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.

输入参数limitquery必填formatlocale

版本历史

2
  1. v1.0.2最新Oct 29, 2026
  2. v1.0.1Oct 24, 2026

评分

已满足适用检查项的 90%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通必需25 分
  • 已声明认证方式必需10 分
  • 已列出工具必需15 分
  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分

    请在仓库或注册中心条目中声明许可证。

其他 Totalcms 集成