Skip to main content
Glama

Server Details

Read-only Total CMS docs: Twig signatures, field types, schema options, the CLI and the REST API.

Ownership verified
Status
Healthy
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL
Repository
totalcms/cms
GitHub Stars
10

TDQS

A3.7/5.0

Scored across 20 tools

Disambiguation2/5

The set has four overlapping search tools—search, search_collections, search_collection, and docs_search—and search vs search_collections both search all collections with only return-shape differences. fetch vs docs_get and get_resource vs get_object are explained but still add selection overhead. Specialized tools like latest_release and needs_review are distinct, but the global search cluster is genuinely muddy.

Naming Consistency3/5

Mostly snake_case, but conventions are mixed: docs_get is noun-first while get_object/get_view are verb-first, and latest_release, needs_review, fetch, and search break the verb_noun pattern. search_collection vs search_collections differs by one character while changing scope significantly.

Tool Count3/5

20 tools is borderline heavy for a docs/content server, and a meaningful portion is duplicated search/discovery surface (search, search_collections, search_collection, docs_search, docs_lookup). Trimming those duplicates would make the set feel well-scoped.

Completeness4/5

The read-only surface is comprehensive for docs and collections: discovery, describe, query, search, get, views, guides, comparisons, releases, and resource resolution. Gaps are minor—no docs page index/listing and no mutation operations—but for a docs/content retrieval server the core workflows are covered.

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.

NameRequiredDescriptionDefault
collectionYesCollection id (slug-form). Use list_collections to discover available collections.

Output Schema

NameRequiredDescription
idYes
accessYesPersona that can query this collection.
ownershipNoSet when the collection limits the caller to their own objects, or has fields only the site sets: what the caller sees and may change.
propertiesYesOne entry per exposed property (mcp.expose:false fields are stripped). Per-property mcp.description is surfaced here when set.
descriptionNoCollection-level mcp.description, falling back to the schema description.
url_patternNoURL template for objects, e.g. "/blog/{id}". Empty string when no pattern is configured.
total_objectsYes

TDQS

A4.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds valuable semantics about what `indexed: true` versus `false` means in downstream query/search results, which goes beyond the annotations; it does not cover error/not-found behavior, keeping it from a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the core action and return shape, followed by the lookup workflow and the indexed-flag semantics. Every sentence carries actionable information with no repetition or filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given a single required parameter, 100% schema coverage, an output schema, and read-only annotations, the description is complete. It explains both the input discovery path and the meaning of returned property flags, leaving no material gap for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the single `collection` parameter is fully documented in the schema. The description adds practical meaning by telling the agent how to obtain a valid collection id via list_collections, exceeding the baseline for complete schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Describe one collection in detail') and immediately specifies what is returned (metadata plus a properties array with type/description/flags). It distinguishes itself from siblings by naming list_collections, query_collection, search_collection, and get_object in service of the workflow.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly prescribes the sequence: 'Call list_collections first to find a collection id, then describe_collection.' It also states the fallback path for non-indexed properties ('retrieve it through get_object instead'), giving both when-to-use and an alternative.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

NameRequiredDescriptionDefault
idYesView id. Use list_views to discover available views.

Output Schema

NameRequiredDescription
idYes
nameYes
accessYes
definitionNoTwig source for the view. Admin persona only — absent for public callers.
last_builtNo
descriptionNo
total_itemsYes
output_shapeYesKeys present on the first cached item. Empty when the view has never been built or produced no items.

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and non-destructive, so the safety profile is covered; the description adds real behavioral detail beyond that with the admin-only Twig definition and the fact that output_shape is sampled from the first cached item rather than exhaustive. It stops short of noting cost or failure behavior for unknown ids, which keeps it out of the top band.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three front-loaded sentences with no filler, and the return-shape and admin notes are packed efficiently. The enumeration of return fields is somewhat redundant given an output schema exists, which is the only thing keeping it from a 5.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-parameter read tool with full schema coverage, an output schema, and complete annotations, the description covers purpose, prerequisite, return contents, sampling caveat, and admin-only extras. Nothing an agent needs in order to call it correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and there is a single required 'id' parameter whose schema description already says to use list_views. The description's own 'use list_views' line duplicates that structured guidance rather than adding format or constraint detail.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The first sentence names a specific verb and resource ('Describe one data view in detail') and the body immediately distinguishes it from get_view and query_view by framing it as the metadata/shape-inspection step that precedes them. An agent can tell what this tool is for without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explicitly states the prerequisite ('Use list_views to discover view ids first') and gives the downstream reason to call this tool ('so agents can compose effective query_view / get_view calls'), which implicitly but clearly routes the agent between the three view-related siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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

NameRequiredDescriptionDefault
pathYesDocumentation page path from docs_search results

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, non-destructive and closed-world, so the safety profile is fully covered. The description adds real value beyond that by disclosing the return format (markdown) and that the entire page is returned ('full ... page'), which hints at potentially large responses. It stops short of describing behavior on an invalid or stale path.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One sentence, front-loaded with the verb and resource, then the required precursor and concrete examples. No filler, and every clause (format, full page, path provenance, examples) carries distinct information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present and full parameter coverage, the description needn't explain return values; it still names the format. For a single-parameter read tool with rich annotations, the one gap is what happens when the path is invalid or no longer matches a page.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema documents the single path parameter at 100% coverage, setting a baseline of 3. The description goes beyond that by supplying concrete path format examples ('twig/data', 'site-builder/overview'), which tell the agent what a well-formed value looks like rather than just repeating the field description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (Fetch), a specific resource (a full Total CMS documentation page), an output format (markdown), and the exact input (its path). The phrase 'as returned by docs_search' implicitly separates it from docs_search and docs_lookup, so an agent can distinguish retrieval-by-path from searching without opening a schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The parenthetical 'as returned by docs_search' gives clear ordering context (search first, then fetch by path), which is the key usage decision for this tool. It does not explicitly exclude alternatives such as docs_lookup or list_guides, and the many doc-adjacent siblings make that omission noticeable, but the primary workflow is unambiguous.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

NameRequiredDescriptionDefault
kindYes
nameNoEntry name (function name, field type, "GET /api/collections", command name…). Omit to list the kind.

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is fully covered. The description adds one behavioral detail — that omitting `name` returns a listing rather than a single entry — but says nothing about result shape or limits beyond what the output schema would carry.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with the core purpose and the enumerated kinds, with the listing behavior in the second sentence. No filler or repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be described, and for a two-parameter reference lookup the description covers purpose and the one non-obvious calling mode. The remaining gap is sibling disambiguation against docs_search/docs_get, which matters given the crowded namespace.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 50%, with `name` documented in-schema with examples. The description restates the kind categories that the enum already enumerates and adds the omit-to-list semantics, which is also present in the schema description, so it contributes little beyond structured data. Baseline 3 for a two-parameter tool with partial coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('Look up') plus a specific resource (a Total CMS reference entry) and enumerates the entry kinds covered, so the agent knows exactly what domain it serves. It does not name or differentiate itself from the many sibling lookup tools (docs_get, docs_search, describe_collection), leaving the boundary implicit.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The only explicit usage rule is 'Omit `name` to list all entries of a kind,' which tells the agent how to widen the call into a listing. There is no statement of when to prefer this over docs_search or docs_get, so the choice among siblings is left to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

NameRequiredDescriptionDefault
idYesA document id returned by the `search` tool.

Output Schema

NameRequiredDescription
idYes
urlYes
textYes
titleYes
metadataNo

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false, and openWorldHint=false, so the safety profile is covered. The description adds useful context beyond that: the returned fields and that `text` is the readable body intended for citation. It doesn't discuss failure behavior for a bad id, which is the only notable gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, both front-loaded with the essential information: what is fetched, what comes back, and where the id originates. No sentence is wasted.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter hydration tool with full annotations, an output schema, and a clearly named prerequisite tool, the description covers everything an agent needs to call it correctly. Return values are also summarized, which is a bonus given the output schema exists.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the single parameter already documents that the id comes from the `search` tool. The description repeats that same constraint without adding format or validity details beyond the schema, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: fetch the full document for a search result id. It also names the return shape, so an agent knows this is a hydration call rather than a search. It does not, however, distinguish itself from similar siblings like docs_get or get_resource.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explicitly states the prerequisite: pass an id returned by the `search` tool, which prevents calling it with arbitrary strings. It gives no when-not conditions or comparison against alternatives such as docs_get, so the routing guidance is clear but not exhaustive.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

NameRequiredDescriptionDefault
competitorYesCompetitor name, e.g. "Kirby" or "Craft".

Output Schema

NameRequiredDescription
itemsYesMatching comparisons objects, each decorated with a `url` field where the collection has a public URL pattern configured. Field set varies by collection — call describe_collection for the schema.
limitYesCap applied to this response — server may have lowered the requested limit.
totalYesTotal matching items (post-persona-filter).
offsetYes
has_moreYesTrue when total > offset + count(items); call again with offset += limit to paginate.

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, openWorldHint=false, and destructiveHint=false, so the safety profile is clear. The description adds useful matching semantics (case-insensitive partial match) and mentions page content, but the return statements are somewhat inconsistent: 'full page content including the feature table' versus 'paginated comparisons objects with url per item.'

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short and front-loaded with purpose, but the explicit Parameters section largely duplicates the schema, and the Returns section is redundant because an output schema exists. The two return-related sentences also create ambiguity rather than adding clarity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple, single-parameter read-only lookup with rich annotations and an output schema, the description is mostly complete. The only notable gap is the ambiguous phrasing around whether the tool returns full page content or paginated comparison objects with URLs.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents the single competitor parameter and examples. The description adds meaningful semantics beyond the schema by specifying case-insensitive partial matching, which affects how the agent should supply the competitor name.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: find the head-to-head comparison page for a competitor. It also names the matching behavior and scopes the result to comparison pages, which distinguishes it from generic sibling tools like search or docs_search.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied by the tool name and description, but there is no explicit guidance on when to use this tool versus search, docs_search, or other sibling lookup tools. The description does not mention exclusions or alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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)

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

  • roundups — heading (text), lede (textarea), reviewed (date, sortable), draft (toggle), sort (number, sortable), id (id, sortable)

  • 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)

NameRequiredDescriptionDefault
idYesObject id (slug). Get candidate ids from query_collection or search_collection output.
formatNoRendered format for content fields. Accepted now for forward-compat; full conversion ships with the Tiptap→markdown converter in a later release.markdown
localeNoBCP 47 locale tag. Accepted for forward-compat with the 3.6 i18n release — has no effect today.
collectionYesCollection id. Use list_collections to discover available collections.

Output Schema

NameRequiredDescription
idYesObject id (slug).
urlNoPublic URL for this object when the collection has a URL pattern configured.

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, non-destructive, closed-world, so the safety profile is covered. The description adds genuine behavioral detail beyond that: the return is a flat map of fields and may be decorated with a derived `url` when a URL pattern is configured — a non-obvious transformation. It stops short of noting anything about missing/404 behavior or permission scoping.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The first two sentences are tight and front-loaded, but the bulk of the description is a per-collection field inventory labeled 'filterable properties' (including sortable/range markers) — metadata that is largely irrelevant to a get-by-id call and belongs on query_collection. It is informative but not well-matched to this tool's job.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, return shapes need not be explained, and annotations carry the safety profile; the description covers purpose, alternatives, id sourcing, and valid collections. The residual gap is the off-purpose filter-property inventory, which could make an agent think filtering is supported here despite the explicit denial.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline would be 3, but the description earns extra credit: the schema's `collection` examples ('blog', 'products') are misleading, and the enumerated collection list (articles, comparisons, extension, releases, roundups, showcase) supplies the actual valid ids. It adds nothing about `format`/`locale`, though those are already self-documented as forward-compat no-ops.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Opens with a specific verb+resource+scope: 'Fetch a single object by its id from a collection.' It then explicitly names what it is not (search/filter) and routes to the correct siblings, so the agent can distinguish it from query_collection and search_collection without opening a schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

States the negative constraint ('does not search or filter') and names both alternatives with their selecting conditions ('query_collection for paginated lists', 'search_collection for free-text search'). The id parameter descriptions reinforce the workflow by pointing to query_collection/search_collection output as the source of ids.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

NameRequiredDescriptionDefault
uriYesA tcms:// resource URI identifying one object. Format: tcms://{collection}/{id}.

Output Schema

NameRequiredDescription
idYesObject id (slug).
urlNoPublic URL for this object when the collection has a URL pattern configured.

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare read-only, idempotent, non-destructive behavior. The description adds meaningful context beyond annotations: it returns the same shape as get_object and that extension-registered schemes are reachable via the resources/read transport surface.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads the core purpose and format, then gives usage guidance and a note on extension URIs. It is efficient overall, though the extension-URI sentence is somewhat niche and dense.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With a fully described schema, rich annotations, and an output schema, the description covers what the tool does, how to use it versus the sibling, and what shape to expect. No critical information is missing for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and already documents the uri format with examples. The description adds only the parsing equivalence to get_object (collection + id), which is marginal beyond the schema's own details.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: resolve a tcms:// URI to its underlying object. It explicitly distinguishes itself from the sibling get_object by explaining the equivalence and the different input shape.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives explicit routing guidance: use get_resource when a URI has been surfaced, use get_object directly when you have a separate collection + id pair. It also mentions extension-registered URIs are handled through resources/read.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

NameRequiredDescriptionDefault
idYesView id. Use list_views to discover available views.
formatNoForward-compat with collection tools. View data is freeform so this has no effect today.markdown
localeNoBCP 47 locale tag — forward-compat for the 3.6 i18n release. No effect today.

Output Schema

NameRequiredDescription
hintNoPresent only when truncated — points the agent at query_view.
itemsYesItems produced by the view, capped at 50. Field set varies by view — call describe_view for the expected shape.
totalYesTotal cached items in the view (pre-cap).
truncatedYesTrue when total > 50; pair with query_view for full pagination.

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well past the annotations (which only declare read-only/idempotent safety) by disclosing that output is freeform and shape-dependent on the Twig definition, and by disclosing the hard 50-item cap plus the truncation hint. Those are exactly the behaviors an agent needs and cannot infer from structured fields.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four tight sentences, each doing distinct work: purpose, output shape, prerequisite, and truncation/routing. The cap and the fallback to query_view are front-loaded before any incidental detail.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Although an output schema exists, the description correctly warns that the return shape is effectively freeform and view-dependent, plus it covers truncation and the prerequisite call. Nothing an agent needs to invoke this correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3; the description confirms the 'by id' lookup but adds no syntax or format guidance for params. The schema itself already documents format and locale as no-effect forward-compat fields, so the description's silence is acceptable but not additive.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: 'Fetch a data view's full cached result by id'. The 'full cached result' phrasing contrasts with the per-item paginated access of query_view, so the agent can separate the two siblings without reading schemas.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives explicit sequencing ('Call describe_view first to learn the expected shape') and an explicit alternative with its selecting condition ('For per-item paginated access use query_view directly'). Both when-to-use and when-to-use-something-else are covered.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription
itemsYesMatching releases objects, each decorated with a `url` field where the collection has a public URL pattern configured. Field set varies by collection — call describe_collection for the schema.
limitYesCap applied to this response — server may have lowered the requested limit.
totalYesTotal matching items (post-persona-filter).
offsetYes
has_moreYesTrue when total > offset + count(items); call again with offset += limit to paginate.

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare read-only, idempotent, non-destructive, and closed-world behavior. The description adds that results are paginated and include a URL per item, which is useful behavioral context beyond annotations, but it does not discuss auth, rate limits, or other operational constraints.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two compact sentences with no wasted text. It front-loads the core purpose and then adds a brief return-format note.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given that the tool takes no parameters, has rich annotations, and has an output schema, the description is nearly complete. It states the resource and pagination behavior; the remaining details are appropriately delegated to structured fields.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so there is no parameter semantics to document. The baseline for zero-parameter tools is 4.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly identifies the resource as the most recent Total CMS release and names the specific fields returned: version, title, date, and release summary. It is specific enough to distinguish the tool from generic search/list siblings, though it does not explicitly contrast itself with any alternative.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'most recent' implies this tool should be used when only the latest release is needed, but there is no explicit guidance on when to use it versus siblings like search, query_collection, or list tools. Usage is inferable but not stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription
totalYesNumber of collections in the response (post-persona-filter).
collectionsYesPersona-filtered list, sorted alphabetically by id.

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already establish read-only, idempotent, non-destructive, closed-world behavior. The description adds useful context beyond that: results are limited to visible collections, the response is a lean one-entry-per-collection overview, and total_objects is provided to help decide whether to paginate or enumerate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded and structured well, moving from what the tool does to return shape and then next-step siblings. It is slightly redundant in enumerating all returned fields despite an output schema, though the total_objects rationale earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema and strong annotations already present, the description supplies the remaining context an agent needs: visibility scope, overview granularity, useful return highlights, and explicit next-tool routing. Nothing critical is missing for a zero-parameter listing tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so there is no parameter semantics burden. The description appropriately does not invent parameter details; the baseline score for a zero-parameter tool applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific resource and scope: collections visible to the caller, one entry per collection. It explicitly contrasts this lean overview with describe_collection for per-property detail and with query_collection/search_collection/get_object for data, so an agent can distinguish its role from key siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives clear routing guidance: use describe_collection for per-property detail, then query_collection/search_collection/get_object to retrieve data. It does not explicitly state when not to use this tool or how it differs from search_collections, so it is strong but not fully exhaustive.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_guidesA
Read-onlyIdempotent
Inspect

The site's Guides: evergreen buying-guide pages served at /guides/{id}, stored in the roundups collection. 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 "roundups".

Returns: paginated roundups objects with url per item.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription
itemsYesMatching roundups objects, each decorated with a `url` field where the collection has a public URL pattern configured. Field set varies by collection — call describe_collection for the schema.
limitYesCap applied to this response — server may have lowered the requested limit.
totalYesTotal matching items (post-persona-filter).
offsetYes
has_moreYesTrue when total > offset + count(items); call again with offset += limit to paginate.

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive, so the safety profile is covered. The description adds real context beyond that: results come back in display order, the draft flag is meaningful metadata, and pagination behavior. It doesn't say what pagination controls look like, but that's minor here.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with what the tool returns and how it's stored, then the get_object pointer. The trailing 'Returns: paginated roundups objects with url per item' partially repeats the fields already enumerated in the first sentence, costing a little tightness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, yet the description still summarizes the returned fields and pagination, which is helpful orientation rather than wasted duplication. Combined with annotations, an agent has what it needs to call this correctly; only edge cases like empty results or paging mechanics are unstated.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Zero parameters, so there is nothing to document and the baseline of 4 applies. The description's mention of pagination is the only hint that paging might be involved, which is consistent with a no-arg call returning a paginated envelope.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Names the specific resource (evergreen buying-guide pages), its serving path (/guides/{id}), and its backing collection (roundups). It also distinguishes itself from get_object by stating where full guide content lives, so an agent can tell the two apart without opening schemas.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Implicitly scopes use to listing/overview of guides and explicitly routes to get_object with collection "roundups" when full content is needed. It does not state exclusions (e.g., when to prefer search_collection or query_collection for filtered subsets), so it stops short of a full when/when-not matrix.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription
totalYes
viewsYesPersona-filtered list, sorted alphabetically by id.

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, non-destructive, and closed-world, so the safety profile is covered. The description adds real value beyond that: the results are pre-computed and cached, the listing is a lean one-entry-per-view overview, and the id is the handle into three differently-shaped access paths. It doesn't discuss visibility scoping rules, staleness of last_built, or pagination of the list itself.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with purpose, then semantics, then routing, then the exclusion — a logical ordering with no filler. The enumeration of returned fields (id, name, description, last_built, access) is somewhat redundant given an output schema exists, costing a bit of space.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Complete for a zero-param discovery tool: it explains what a view is, that results are cached, what the id unlocks across three sibling tools, and when to switch to collections. With an output schema present, it needn't detail return shapes further, and annotations carry the safety profile.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters, which is the baseline-4 case; there is nothing for the description to disambiguate. It correctly explains that all filtering is handled by downstream tools taking the returned id rather than by this call.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Opens with a specific verb+resource ('Discover the pre-computed data views') and immediately defines the domain concept ('Twig-defined queries that aggregate across collections; result is cached and accessible by id'). It explicitly distinguishes itself from list_collections, so an agent can separate it from the many collection-oriented siblings without opening a schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

States exactly what to do next with the returned id and names each downstream tool with its role: query_view for paginated queries, get_view for the whole cached result, describe_view for shape/metadata. It also names the exclusion condition ('For raw collection content use list_collections instead'), which is a genuine when-not-to-use rule.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

NameRequiredDescriptionDefault
beforeNoOnly pages whose reviewed date is on or before this ISO date (optional).

Output Schema

NameRequiredDescription
itemsYesMatching comparisons objects, each decorated with a `url` field where the collection has a public URL pattern configured. Field set varies by collection — call describe_collection for the schema.
limitYesCap applied to this response — server may have lowered the requested limit.
totalYesTotal matching items (post-persona-filter).
offsetYes
has_moreYesTrue when total > offset + count(items); call again with offset += limit to paginate.

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare a read-only, idempotent, non-destructive, closed-world operation, so safety is covered. The description adds genuinely new behavior: the oldest-first ordering, the pagination of results, and the fact that verification dates are shown publicly, which explains why freshness matters.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the ordering rule, then filtering, then rationale, then a compact returns line. Slight waste in repeating the parameter description already present in the schema, but nothing extraneous otherwise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so the short returns line is redundant but not harmful. Between annotations, the single fully documented parameter, and the description's ordering and pagination notes, an agent has everything needed to call it correctly; only the sibling routing guidance is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the description's parameter section restates the schema's own wording almost verbatim (including the inclusive 'on or before' boundary). It adds no format examples or guidance on omitting the parameter beyond what the schema already provides, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Names the specific resource (comparison pages) and the exact ordering (staleness of competitor-fact verification, oldest first), which disambiguates against the otherwise similar find_comparison sibling by implication. It never explicitly says how it differs from find_comparison, so the differentiation relies on the reader inferring it from the ordering clause.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Implies usage through 'keeping these fresh matters' and shows how to narrow with `before`, but gives no explicit when-to-use versus alternatives such as find_comparison or query_collection. An agent gets a hint of intent but no routing rule.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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)

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

  • roundups — heading (text), lede (textarea), reviewed (date, sortable), draft (toggle), sort (number, sortable), id (id, sortable)

  • 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)

NameRequiredDescriptionDefault
sortNoSort rule "field:direction"; multiple rules comma-separated. Only fields marked sortable in the catalog will sort.
limitNoMaximum items to return. Capped at 50 (vs. REST's 100) to fit MCP response-size budgets.
formatNoRendered format for content fields. Accepted now for forward-compat; full conversion ships with the Tiptap→markdown converter in a later release.markdown
localeNoBCP 47 locale tag. Accepted for forward-compat with the 3.6 i18n release — has no effect today.
offsetNoNumber of items to skip — combine with limit for pagination.
excludeNoComma-separated field:value pairs that exclude items (OR). Drafts the caller may not see are removed before this filter runs, whatever it says.
includeNoComma-separated field:value pairs items must ALL match. Wildcards "*foo*", "foo*", "*foo" supported.
collectionYesCollection id (slug-form). Use list_collections to discover available collections.

Output Schema

NameRequiredDescription
itemsYesMatching objects in sort order. Field set varies by collection — call describe_collection for the schema.
limitYesCap applied to this response — server may have lowered the requested limit.
totalYesTotal matching items (post-persona-filter).
offsetYes
has_moreYesTrue when total > offset + count(items); call again with offset += limit to paginate.

TDQS

A5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare read-only, idempotent, non-destructive behavior. The description adds substantial context beyond that: pagination metadata is returned, items are decorated with a public url when configured, drafts may be removed before filters run, include uses AND semantics while exclude uses OR semantics, and only catalog-listed properties are queryable.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with purpose and alternative routing before presenting the per-collection catalog. Although long, every part earns its place because the catalog and filter semantics are required to use include, exclude, and sort correctly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Even though an output schema exists, the description usefully states the return shape and pagination metadata. It covers the required collection parameter, filter and sort behavior, pagination limits, catalog limitations, and sibling alternatives—complete for an eight-parameter query tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is already 100%, but the description adds meaning beyond the schema: it explains include/exclude as comma-separated field:value pairs with AND vs OR semantics and wildcard support, notes that only fields marked sortable can be used in sort, and provides a per-collection catalog of filterable properties.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: query a collection for paginated content. It clearly distinguishes this tool from search_collection for free-text search and get_object for single-record retrieval, so an agent can identify it without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explicitly names alternatives and the conditions that select them: use search_collection for free-text search, get_object to fetch a single object or full record, and describe_collection to see every property. This is exactly the routing guidance an agent needs among many sibling tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

NameRequiredDescriptionDefault
idYesView id from list_views.
sortNoSort spec, e.g. "date:desc".
limitNo
formatNoForward-compat with query_collection; no effect today since view data is freeform.markdown
localeNoForward-compat for 3.6 i18n.
offsetNo
excludeNoREST-style negative filter.
includeNoREST-style filter, e.g. "category:tech,published:true". Field names depend on the view's output shape.

Output Schema

NameRequiredDescription
itemsYesItems in the requested page. Field set varies by view; call describe_view for the shape.
limitYesEffective cap applied to this response.
totalYes
offsetYes
has_moreYes

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so safety is covered. The description adds genuinely new behavioral context: results are cached, view data is freeform, and limit is capped at 50. It does not discuss staleness of the cache or latency, which would have pushed it higher.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four tight sentences with the core action and the describe_view prerequisite front-loaded. Every sentence contributes a distinct constraint or routing hint, and there is no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists so return values need not be explained, and the description covers the remaining agent-relevant concerns: freeform field discovery, pagination, and the limit cap. Nothing needed to invoke it correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 75% schema description coverage the baseline is 3, and the description earns above that by explaining that include/exclude/sort use REST syntax and the same vocabulary as query_collection, plus routing field-name discovery to describe_view. It adds cross-tool semantics the schema cannot express.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource ('Paginated query against a data view's cached result') and immediately differentiates itself from query_collection by sharing its vocabulary. An agent can distinguish it from siblings like get_view or query_collection without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives an explicit prerequisite ('call describe_view first to learn the field set') and a pagination instruction ('use offset to paginate larger views'). It stops short of stating exclusions relative to query_collection, but the 'cached result' scoping implies the boundary.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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)

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

  • roundups — heading (text), lede (textarea), reviewed (date, sortable), draft (toggle), sort (number, sortable), id (id, sortable)

  • 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)

NameRequiredDescriptionDefault
limitNoMaximum items to return (capped at 50 to fit MCP response-size budgets).
queryYesSearch terms. AND-semantics by default; use `or` between terms for OR; wrap phrases in double quotes.
formatNoOutput format for styledtext properties on the matched items. markdown is friendliest for AI consumption.markdown
localeNoBCP 47 locale tag. Accepted for forward-compat with the 3.6 i18n release — has no effect today.
collectionYesCollection id to search within. Use list_collections to discover available collections.

Output Schema

NameRequiredDescription
itemsYesMatched objects, each a flat field map decorated with a `url`. Field set varies by collection.
limitYesApplied result cap.
queryYesThe query that was run.
totalYesNumber of items returned.

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile (readOnly, idempotent, non-destructive, closed-world), and the description adds real context on top: matching items get a public `url`, `total` reflects actual matches, and drafts are auto-hidden from anonymous callers — an auth-dependent behavior nothing in the annotations implies. It stops short of describing ranking/relevance ordering or pagination beyond the 50 cap, which would be the last increment to 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The substantive guidance is front-loaded in four tight sentences before the catalog, and each sentence adds a distinct rule (search scope, query syntax, searchable-vs-full-record, field-filter alternative). The per-collection property dump is long and partly overlaps what describe_collection returns, which keeps it from a 5.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 5-parameter read tool with full schema coverage, an output schema, and complete annotations, nothing an agent needs to call it correctly is missing — target collection values, query grammar, result decoration, and draft visibility are all present.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3; the description exceeds it by supplying the collection catalog, which is the value space for the required `collection` parameter and cannot be derived from the schema. It also restates the AND/OR/quoted-phrase query grammar, though that is largely duplicated from the schema's own query description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('free-text search') and bounded resource ('within a single collection'), and immediately distinguishes itself from the plural sibling search_collections and the field-filter sibling query_collection. An agent can pick between them without opening any schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicit when-not guidance: 'does not filter by field value — use query_collection with include/exclude for that', plus pointers to get_object for full records and describe_collection for all properties. The alternatives and the conditions selecting them are named outright, not inferred.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

NameRequiredDescriptionDefault
limitNoMaximum items returned in aggregate across all collections. Capped at 50 for MCP response-size budgets.
queryYesSearch terms. AND-semantics by default; use `or` between terms for OR; wrap phrases in double quotes.
formatNoOutput format for styledtext properties on the matched items. markdown is friendliest for AI consumption.markdown
localeNoBCP 47 locale tag. Accepted for forward-compat with the 3.6 i18n release — has no effect today.

Output Schema

NameRequiredDescription
itemsYesMatched objects across collections, each a flat field map decorated with `collection` (the source collection id) and `url`. Field set varies by collection.
limitYesApplied aggregate result cap.
queryYesThe query that was run.
totalYesNumber of items returned in aggregate.

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive behavior, but the description adds real context beyond them: drafts are auto-hidden from anonymous callers, non-filterable properties exist on objects yet are not searched, and results are decorated with `collection` and `url`. It stops short of describing result ordering or pagination behavior beyond the limit cap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads the core action in the first sentence, then layers alternatives and caveats. Dense but nearly every clause earns its place; the property/filterable caveat is the only sentence that could be trimmed for a hurried reader.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given an output schema exists, the description need not detail return shapes, yet it still flags the two key result fields and how to use them. Combined with the scoping caveats and sibling routing, an agent has everything needed to call this correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% (baseline 3), and the description adds semantic scope for `query` by clarifying that only filterable properties are searched and that results must be paired with `id` to fetch records. It doesn't restate limit/format/locale, which the schema already handles well.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Full-text search across every collection you can see, in one call') plus the scope boundary (all collections vs. one). It explicitly names the narrower sibling search_collection and contrasts it, so an agent can distinguish the two without opening schemas.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly routes the agent: use list_collections for available collections, describe_collection for property lists, get_object (via collection + id) for the full record, and search_collection for single-collection scope. Each alternative is paired with the condition that selects it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

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

  1. 20 tool updates
    • First observeddescribe_collection
    • First observeddescribe_view
    • First observeddocs_get
    • First observeddocs_lookup
    • First observeddocs_search
    • First observedfetch
    • First observedfind_comparison
    • First observedget_object
    • First observedget_resource
    • First observedget_view
    • First observedlatest_release
    • First observedlist_collections
    • First observedlist_guides
    • First observedlist_views
    • First observedneeds_review
    • First observedquery_collection
    • First observedquery_view
    • First observedsearch
    • First observedsearch_collection
    • First observedsearch_collections

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

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    B
    maintenance
    Read-only remote tools let agents search a curated directory of skills, harnesses, MCP servers, tools, protocols and APIs, then fetch full entries plus long-form guides, comparisons, stacks and downloadable Agent Skills. Needs no install, API key or authentication over Streamable HTTP.
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Read-only, unauthenticated remote MCP server for public Wavedash docs, providing SDK guidance, engine setup help, and publishing checklists for agents.
    2
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.