Skip to main content
Glama

Get Website CMS

get_website_cms
Read-onlyIdempotent

Reads every connected website CMS: provider, site URL (the CMS's own address), the workspace website it publishes to (site: id and domain; one site per workspace publishes for now), status, publish mode (draft or live), each channel's collection and field mapping (including which provider that channel publishes to), the collections and fields Mark discovered (localized: true when the collection stores its title and slug per language, so submit_post needs a website post's language there), locales (the site's language codes, [] when it stores none), and a suggested mapping for each unmapped channel. mediaCollections lists the media collections Mark can read (search_cms_media and save_post take any of them; a website cover takes only the collection its cover field accepts, else mediaDestination); mediaDestination is where Mark uploads a website post's Mark images when it publishes (null: Mark uploads nothing). The API key is never returned. Connecting (site URL and key) happens in the Mark app only. Related: update_website_cms, submit_post, approve_posts.

Tool call template

This tool declares no required parameters. Add optional parameters from the input schema as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {},
    "name": "get_website_cms"
  }
}

Input Schema

NameRequiredDescriptionDefault

No arguments

Output Schema

NameRequiredDescriptionDefault
cmsYes
appUrlYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A3.7/5.0
Behavior4/5

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

The annotations already establish readOnly/idempotent/non-destructive/closed-world, so the safety profile is covered. The description adds genuinely new behavioral context: the API key is never returned, and connecting a CMS (site URL and key) can only be done in the Mark app, which prevents an agent from attempting a connect flow here. It also notes the current constraint of one publishing site per workspace.

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 core purpose is front-loaded in the first clause, and the operational caveats (key never returned, connect in the app) are high value. However, the bulk of the text is one long second sentence with deeply nested parentheses enumerating return fields that the output schema already documents, making it dense to parse and partly duplicative.

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 zero-parameter read with a full output schema and complete annotations, an agent has everything needed to invoke it correctly, and the description adds the non-obvious constraints (no key exposure, app-only connection, single publishing site per workspace). It does not clarify behavior across multiple workspaces or ordering of results, a minor gap.

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?

There are zero input parameters, so the baseline of 4 applies and there is no parameter semantics to compensate for. The described fields (locales, mediaCollections, mediaDestination, per-channel mapping) are outputs, not inputs, and are already covered by the output schema.

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 opening verb+resource pair ("Reads every connected website CMS") is unambiguous and scoped to all connected CMSes, which an agent can distinguish from update_website_cms and list_channels. The remaining text is an enumeration of returned fields rather than additional purpose refinement, so the tool's core intent is clear even though its differentiation from sibling read tools (list_channels, list_connections) is only implied by the trailing "Related:" list.

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 conveyed indirectly: the description tells the agent that submit_post needs the post's language from a website CMS, that search_cms_media and save_post accept any listed media collection, and that a website cover must use the cover field's collection or else mediaDestination. These are downstream consumption hints rather than an explicit "call this when you need X before doing Y" statement, and no exclusions or prerequisites for calling this tool itself are given.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources