Skip to main content
Glama

Generate page content for pending rows

seo_content_generate

ASYNCHRONOUS. Starts the content-generation queue over every PENDING row in the project. It also spends real AI budget per generated page. Requires the project to be configured (check readyToGenerate via seo_project_get first). Returns a jobId immediately; poll seo_job_status. Generated pages land in GENERATED status and are NOT live until approved and published. Costs 75c per call.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
projectIdYesThe project id, exactly as returned by seo_project_list (a cuid such as 'cmtjyi1q20000l204octn48ai'). Not the slug, not the display name. If you do not have one, call seo_project_list first.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
jobIdNoPoll seo_job_status until COMPLETED.
totalNoRows queued for generation.
nextStepYes
projectIdYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A4.4/5.0
Behavior5/5

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

Annotations only declare readOnlyHint=false and idempotentHint=false, leaving behavioral disclosure to the description. The description adds critical facts: cost ('spends real AI budget per generated page', 'Costs 75c per call'), asynchronous return ('Returns a jobId immediately'), and the lifecycle ('NOT live until approved and published'). No contradiction with 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?

Each sentence carries operational value: async marker, queue scope, cost, prerequisite, return contract, and final status. The cost is mentioned twice in different units (per page vs per call), which is mild redundancy but not harmful. Well structured and front-loaded.

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 queue-starting, cost-bearing, asynchronous mutation, the description covers all required context: what it does, prerequisite check, return contract, follow-up polling, and resulting page status. The output schema exists to document the jobId shape, and the description explicitly references it. Complete.

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?

The schema already covers the sole parameter at 100% and explains it in detail (cuid, not slug/display name, call seo_project_list if missing). The main description adds no additional parameter semantics beyond the schema, so the baseline 3 applies as the schema carries the full burden.

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 ('starts'), resource ('content-generation queue'), and scope ('every PENDING row in the project'). The leading 'ASYNCHRONOUS' and the mention of 'jobId' differentiate it from synchronous tools, and the sibling 'start' tools (seo_audit_start, seo_research_start) are clearly distinct by naming the generation queue.

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?

Provides explicit prerequisites: 'Requires the project to be configured (check readyToGenerate via seo_project_get first)' and describes the follow-up: 'poll seo_job_status'. This tells the agent when it is safe to call and what to do after, but it does not explicitly name alternatives when the project is not configured or when only a subset of rows is desired. Clear context without an explicit exclusion.

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