Skip to main content
Glama

create_content_brief

Open a brief for one keyword. XeoRank collects the evidence bundle the draft must satisfy: related Search Console queries, the site's own pages that rank for them (internal-link targets and cannibalisation risk), rival pages with their headings and entities, stored content gaps, the keyword cluster, tracked-keyword data, AI-visibility rows, and derived targets — word_count, must_cover topics, questions, entities, secondary_keywords, internal_links. Pass the opportunity object from content_opportunities so its reasoning is kept with the brief. When fewer than three rival pages are on file, XeoRank fetches the LIVE Google results for the keyword once (~$0.0155, on us): the top pages become rivals (their headings feed must_cover), and Google's People-Also-Ask questions and related searches go into targets.questions / secondary_keywords — evidence.serp shows what was fetched. Returns the brief with evidence and a next_step. One open brief per keyword per site — an existing one is returned instead.

Input Schema

NameRequiredDescriptionDefault
kindNocreate | optimize (inferred when omitted)
notesNoAnything the user said about angle, audience or constraints
titleNoWorking title, if the user already has one
intentNoinformational | commercial | transactional | navigational
goal_idNoThe goal this piece serves (from list_goals). Prefer content_for_goal when the user starts from a goal.
site_idYesThe site ID
live_serpNoFetch live Google results when rivals are thin (default true); false = stored evidence only
opportunityNoJSON: the opportunity object from content_opportunities (kept verbatim)
target_keywordYesThe keyword / prompt the piece targets

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.5/5.0
Behavior5/5

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

With annotations already covering write/open-world/destructive profile, the description adds substantial context beyond them: the exact evidence collected, the <3-rivals trigger for a live Google fetch, its ~$0.0155 cost, and what lands in evidence.serp. The dedupe rule (existing brief returned) is exactly the kind of behavior an agent cannot infer from the annotations.

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?

Long but front-loaded: the purpose and keyword scope come first, then evidence, then the live-SERP fallback, then the return and dedupe rule. Dense enumerations of evidence fields are justified for a tool this complex, though the list of artifacts is close to exhaustive.

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 9-parameter, no-output-schema mutation tool, the definition covers what is created, what side effects occur (SERP fetch, cost), and what the response contains ('brief with evidence and a next_step'). Minor gap: it doesn't describe the brief's own structure or what next_step values imply.

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 the baseline is 3, but the description adds real meaning beyond the schema strings: it explains the opportunity object's passthrough semantics ('kept verbatim', reasoning preserved), the live_serp trigger condition, and names the specific derived target fields. It stops short of clarifying kind/intent interaction or the notes field.

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 ('Open a brief for one keyword') and immediately spells out the evidence bundle it assembles. An agent can distinguish it from get_content_brief, list_content_briefs, update_content_brief and publish_content_brief 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?

Gives concrete routing guidance: pass the opportunity object from content_opportunities, and the 'one open brief per keyword per site — an existing one is returned instead' rule tells the agent this is safe to call repeatedly. It doesn't explicitly say when to prefer get_content_brief or when a brief should be updated rather than opened, so it stops short of full when/when-not coverage.

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