Platform

AEO Website Research-grade Content Content Factory About Audits Rankings Pricing

Resources

Browse all resources → Blog Knowledge Base Research Docs FAQ

Content Tools

Create topics, save articles, get benchmarks, and manage the content pipeline with MCP tools.

aeo_list_topics

List content topics with optional status filter. Shows title, keywords, priority, and status. Results are ordered by priority (highest first), then by creation date.

Parameters

NameTypeRequiredDescription
statusstringOptionalFilter by status: suggested, approved, in_progress, in_review, published, rejected, archived
limitnumberOptionalMax results to returnDefault: 50

Example

json
aeo_list_topics({ status: class="code-string">"approved", limit: 10 })

aeo_create_topic

Create a new content topic for tracking. Sets status to approved and source to manual. Priority defaults to 50.

Parameters

NameTypeRequiredDescription
titlestringRequiredTopic title
keywordsstring[]OptionalTarget keywords
descriptionstringOptionalAdditional context or notes

Example

json
aeo_create_topic({
  title: class="code-string">"How to Add Schema.org Markup for AI Visibility",
  keywords: [class="code-string">"schema.org", class="code-string">"structured data", class="code-string">"AEO"]
})

aeo_update_topic_status

Approve, reject, or archive a content topic. Use after reviewing topics from aeo_list_topics. Rejection requires a reason and increments the topic's rejection count.

Parameters

NameTypeRequiredDescription
topic_idstringRequiredTopic UUID
statusstringRequired"approved", "rejected", or "archived"
rejection_reasonstringOptionalRequired when status is "rejected"

Examples

json
class=class="code-string">"code-comment">// Approve a topic
aeo_update_topic_status({ topic_id: class="code-string">"abc-123", status: class="code-string">"approved" })

class=class="code-string">"code-comment">// Reject with reason
aeo_update_topic_status({
  topic_id: class="code-string">"abc-123",
  status: class="code-string">"rejected",
  rejection_reason: class="code-string">"Too similar to existing article on Schema.org"
})
Typical workflow: aeo_list_topics (browse suggested) → aeo_update_topic_status (approve best ones) → write article → aeo_save_article.

aeo_save_article

Save a completed article to pipeline executions as a draft. Stores TypeScript source code and metadata. The article enters the review workflow with draft status.

Parameters

NameTypeRequiredDescription
topic_titlestringRequiredArticle topic title
content_tsstringRequiredFull article as TypeScript KnowledgeTopic source code
word_countnumberRequiredTotal word count
slugstringRequiredURL slug for the article

aeo_publish_article

Publish an article by updating its review status to published and creating a published articles record. Optionally link to a CMS connection for Webflow publishing.

Parameters

NameTypeRequiredDescription
execution_idstringRequiredPipeline execution ID to publish
connection_idstringOptionalCMS connection ID (optional, for Webflow etc.)

aeo_get_benchmarks

Get sector and category benchmark averages, score ranges, and domain counts. Returns data for each category in the benchmark taxonomy, including average score, min/max range, and the number of audited domains.

Parameters

NameTypeRequiredDescription
sector_slugstringOptionalSector slug (e.g., "saas-productivity", "healthcare")
category_namestringOptionalCategory name (e.g., "Project Management")

Example

json
aeo_get_benchmarks({ sector_slug: class="code-string">"saas-productivity" })

Example Response

response
[
  {
    class="code-string">"sector_slug": class="code-string">"saas-productivity",
    class="code-string">"sector_name": class="code-string">"SaaS & Productivity",
    class="code-string">"category_name": class="code-string">"Project Management",
    class="code-string">"domain_count": 18,
    class="code-string">"average_score": 58,
    class="code-string">"min_score": 31,
    class="code-string">"max_score": 82,
    class="code-string">"score_range": class="code-string">"31-82"
  }
]
Use aeo_get_benchmarks to pull real sector averages and score ranges when writing articles. This provides concrete data points that make content more authoritative.