7 MCP tools for content cluster management. Design topic clusters from audit gaps, create interlinked article groups, and manage the cluster lifecycle.
aeo_get_cluster_context
Get audit gaps, MISS queries, existing content, voice profile, and CMS content for a domain. This is the starting point for designing a content cluster - it surfaces everything needed to identify which gaps the cluster should target.
Parameters
Name
Type
Required
Description
domain
string
Required
Domain to get cluster context for (e.g., "understoodcare.com")
audit.weak_criteria holds the entries of the latest audit scorecard that score 7 or lower out of 10, lowest score first. visibility.miss_queries holds the visibility queries from the latest report where the domain was not visible, as full query records. In existing_articles, status is the article's review status.
response
{
class="code-string">"domain": class="code-string">"understoodcare.com",
class="code-string">"audit": {
class="code-string">"overall_score": 82,
class="code-string">"weak_criteria": [
{
class="code-string">"id": 27,
class="code-string">"criterion": class="code-string">"Content Freshness Signals",
class="code-string">"score": 5,
class="code-string">"status": class="code-string">"PARTIAL",
class="code-string">"keyFindings": class="code-string">"Most content pages show no published or updated date.",
class="code-string">"pillar": class="code-string">"Trust & Authority",
class="code-string">"clientName": class="code-string">"Content Freshness",
class="code-string">"weight": 0.019,
class="code-string">"confidence": 0.85,
class="code-string">"googleRecommended": true
},
{
class="code-string">"id": 5,
class="code-string">"criterion": class="code-string">"Original Data & Expert Analysis",
class="code-string">"score": 7,
class="code-string">"status": class="code-string">"GOOD",
class="code-string">"keyFindings": class="code-string">"Few pages cite first-party numbers or named experts.",
class="code-string">"pillar": class="code-string">"Answer Readiness",
class="code-string">"clientName": class="code-string">"Original Research & Data",
class="code-string">"weight": 0.0699,
class="code-string">"confidence": 0.75,
class="code-string">"googleRecommended": true
}
],
class="code-string">"opportunities": null
},
class="code-string">"visibility": {
class="code-string">"miss_queries": [
{
class="code-string">"query": class="code-string">"does medicaid cover home health aides",
class="code-string">"intent": class="code-string">"informational",
class="code-string">"what_llm_returns": class="code-string">"A general overview of Medicaid home care benefits citing government and nonprofit sites.",
class="code-string">"target_visible": false,
class="code-string">"competitor_visibility": { class="code-string">"competitor-one.com": true, class="code-string">"competitor-two.com": false },
class="code-string">"content_needed": class="code-string">"A guide to Medicaid coverage for home health aides with eligibility steps."
},
{
class="code-string">"query": class="code-string">"caregiver certification online",
class="code-string">"intent": class="code-string">"informational",
class="code-string">"what_llm_returns": class="code-string">"A list of online caregiver training programs.",
class="code-string">"target_visible": false,
class="code-string">"competitor_visibility": { class="code-string">"competitor-one.com": false, class="code-string">"competitor-two.com": true },
class="code-string">"content_needed": class="code-string">"A comparison of online caregiver certification options and costs."
}
]
},
class="code-string">"existing_articles": [
{
class="code-string">"execution_id": class="code-string">"a8f3c6d2-7e19-4b5a-9c04-3d6e2b1f8a57",
class="code-string">"slug": class="code-string">"what-is-cdpap",
class="code-string">"title": class="code-string">"What Is CDPAP?",
class="code-string">"word_count": 4350,
class="code-string">"status": class="code-string">"published"
},
{
class="code-string">"execution_id": class="code-string">"0b4e7a9c-5d21-4f63-a8e9-c7f2d1b6e035",
class="code-string">"slug": class="code-string">"home-care-vs-nursing-home",
class="code-string">"title": class="code-string">"Home Care vs Nursing Home",
class="code-string">"word_count": 4620,
class="code-string">"status": class="code-string">"published"
}
],
class="code-string">"voice_profile": {
class="code-string">"target_criteria": [class="code-string">"original_data", class="code-string">"faq_section"],
class="code-string">"tone": class="code-string">"conversational",
class="code-string">"brand_stance": class="code-string">"Families deserve plain answers about care costs and coverage."
},
class="code-string">"cms_content": [
{ class="code-string">"title": class="code-string">"What Is CDPAP?", class="code-string">"slug": class="code-string">"what-is-cdpap" },
{ class="code-string">"title": class="code-string">"Home Care vs Nursing Home", class="code-string">"slug": class="code-string">"home-care-vs-nursing-home" }
],
class="code-string">"existing_clusters": [
{
class="code-string">"id": class="code-string">"7e15c9a4-d3b8-4c62-9f0a-4b2d6e8a1c73",
class="code-string">"name": class="code-string">"CDPAP Education",
class="code-string">"status": class="code-string">"published",
class="code-string">"total_articles": 5,
class="code-string">"completed_articles": 5
}
]
}
Always call aeo_get_cluster_context before creating a cluster. The audit.weak_criteria and visibility MISS queries tell you exactly which gaps the cluster should fill.
aeo_create_cluster
Create a content cluster with a hub article and child articles targeting specific audit gaps. Exactly one article must have role: "hub" and a minimum of two articles total is required. The cluster and every article are created in planned status. The hub gets sort_order 0 and the child articles 1, 2, 3 and so on, in the order you list them.
Parameters
Name
Type
Required
Description
domain
string
Required
Target domain for the cluster
name
string
Required
Cluster name (e.g., "CDPAP Education Cluster")
gap_source
object
Optional
Free-form object recording the weak criteria and MISS queries that motivated this cluster
shared_context
object
Optional
Free-form object with research, terminology and facts shared by every article in the cluster. Returned with each aeo_start_cluster_article call.
interlink_map
object
Optional
Planned cross-links: each article slug maps to an array of the slugs it should link to ({ "slug": ["target-slug-1", ...] })
target_score_delta
number
Optional
Expected AEO Site Rank improvement from this cluster (a whole number)
articles
array
Required
Article definitions (min 2, exactly 1 hub). Fields of each article are listed below.
Article fields
Name
Type
Required
Description
role
string
Required
"hub" (the anchor article) or "child" (a supporting article)
title
string
Required
Article title
slug
string
Required
URL slug. The keys and values of interlink_map refer to these slugs.
article_type
string
Optional
Recipe template type (e.g., "blog-post", "how-to-guide"). When omitted, the article is written as a "signature-article".
word_target
number
Optional
Target word count. Articles have a 4,000-word minimum, so a lower target is raised to 4,000.
key_queries
string[]
Optional
AI queries this article targets
criteria_targeted
string[]
Optional
AEO criteria slugs this article targets (e.g., "original_data")
brief
object
Optional
Per-article generation brief, passed to the writer as is. Its angle field becomes the article's topic description.
Example
json
aeo_create_cluster({
domain: class="code-string">"understoodcare.com",
name: class="code-string">"Home Health Aide Hiring Cluster",
gap_source: {
weak_criteria: [class="code-string">"content_freshness", class="code-string">"original_data"],
miss_queries: [class="code-string">"does medicaid cover home health aides", class="code-string">"how to hire a home health aide"]
},
target_score_delta: 8,
shared_context: {
audience: class="code-string">"Families arranging in-home care for a parent",
terminology: { HHA: class="code-string">"home health aide", PCA: class="code-string">"personal care aide" },
notes: class="code-string">"Explain Medicaid and Medicare coverage wherever cost comes up."
},
interlink_map: {
class="code-string">"how-to-hire-home-health-aide": [class="code-string">"hha-vs-pca-differences", class="code-string">"hha-certification-requirements"],
class="code-string">"hha-vs-pca-differences": [class="code-string">"how-to-hire-home-health-aide"],
class="code-string">"hha-certification-requirements": [class="code-string">"how-to-hire-home-health-aide", class="code-string">"hha-vs-pca-differences"]
},
articles: [
{
role: class="code-string">"hub",
title: class="code-string">"How to Hire a Home Health Aide: Complete Guide",
slug: class="code-string">"how-to-hire-home-health-aide",
word_target: 6000,
key_queries: [class="code-string">"how to hire a home health aide", class="code-string">"home health aide cost per hour"],
criteria_targeted: [class="code-string">"original_data", class="code-string">"qa_content_format", class="code-string">"table_list_extractability"],
brief: { angle: class="code-string">"Cover cost, qualifications, Medicaid coverage, interview questions" }
},
{
role: class="code-string">"child",
title: class="code-string">"HHA vs PCA: Key Differences Explained",
slug: class="code-string">"hha-vs-pca-differences",
word_target: 4000,
key_queries: [class="code-string">"hha vs pca", class="code-string">"difference between home health aide and personal care aide"],
criteria_targeted: [class="code-string">"table_list_extractability", class="code-string">"qa_content_format"],
brief: { angle: class="code-string">"Scope of work, certification, cost, when to choose each" }
},
{
role: class="code-string">"child",
title: class="code-string">"Home Health Aide Certification Requirements by State",
slug: class="code-string">"hha-certification-requirements",
word_target: 4000,
key_queries: [class="code-string">"home health aide certification requirements"],
criteria_targeted: [class="code-string">"original_data", class="code-string">"content_freshness"],
brief: { angle: class="code-string">"NY, NJ, CT requirements, training hours, renewal process" }
}
]
})
Response
response
{
class="code-string">"cluster_id": class="code-string">"3f6c2a9e-8b41-4d7a-9c15-2e0b7d4a6f81",
class="code-string">"domain": class="code-string">"understoodcare.com",
class="code-string">"name": class="code-string">"Home Health Aide Hiring Cluster",
class="code-string">"total_articles": 3,
class="code-string">"articles": [
{
class="code-string">"id": class="code-string">"9d2e4b17-5c3a-4f86-b0e1-7a4c9f3d2e58",
class="code-string">"role": class="code-string">"hub",
class="code-string">"title": class="code-string">"How to Hire a Home Health Aide: Complete Guide",
class="code-string">"slug": class="code-string">"how-to-hire-home-health-aide",
class="code-string">"sort_order": 0
},
{
class="code-string">"id": class="code-string">"c41f8a62-0b7d-4e93-a5c2-6d18e7f04b39",
class="code-string">"role": class="code-string">"child",
class="code-string">"title": class="code-string">"HHA vs PCA: Key Differences Explained",
class="code-string">"slug": class="code-string">"hha-vs-pca-differences",
class="code-string">"sort_order": 1
},
{
class="code-string">"id": class="code-string">"5b8e3d0c-2f64-4a1b-8e7d-91c5a2f6b0e4",
class="code-string">"role": class="code-string">"child",
class="code-string">"title": class="code-string">"Home Health Aide Certification Requirements by State",
class="code-string">"slug": class="code-string">"hha-certification-requirements",
class="code-string">"sort_order": 2
}
]
}
Exactly one article must have role: "hub". The hub is the comprehensive anchor article (5K-8K words) and child articles (4,000 words or more each) link back to it. With no hub or more than one, the tool saves nothing and returns { "error": "Cluster must have exactly 1 hub article, got 0" }.
aeo_get_cluster
Get full cluster details including all articles, their execution status, and overall progress. Pass either cluster_id for a specific cluster, or domain to get the most recent cluster for that domain. At least one parameter is required.
Parameters
Name
Type
Required
Description
cluster_id
string
Optional
Cluster UUID. Returns this specific cluster.
domain
string
Optional
Domain name. Returns the most recent cluster for this domain.
Example
json
class=class="code-string">"code-comment">// By cluster ID
aeo_get_cluster({ cluster_id: class="code-string">"3f6c2a9e-8b41-4d7a-9c15-2e0b7d4a6f81" })
class=class="code-string">"code-comment">// By domain (returns latest)
aeo_get_cluster({ domain: class="code-string">"understoodcare.com" })
Response
The cluster and its articles come back as stored, so a response can carry more fields than shown here. Articles are ordered by sort_order, and each one adds execution_review_status and execution_word_count from its pipeline execution (null before writing starts). progress counts articles by status. If nothing matches, the tool returns { "error": "Cluster not found" }.
response
{
class="code-string">"id": class="code-string">"3f6c2a9e-8b41-4d7a-9c15-2e0b7d4a6f81",
class="code-string">"domain": class="code-string">"understoodcare.com",
class="code-string">"name": class="code-string">"Home Health Aide Hiring Cluster",
class="code-string">"status": class="code-string">"writing",
class="code-string">"gap_source": { class="code-string">"weak_criteria": [class="code-string">"content_freshness", class="code-string">"original_data"], class="code-string">"miss_queries": [class="code-string">"does medicaid cover home health aides", class="code-string">"how to hire a home health aide"] },
class="code-string">"shared_context": { class="code-string">"audience": class="code-string">"Families arranging in-home care for a parent", class="code-string">"terminology": { class="code-string">"HHA": class="code-string">"home health aide", class="code-string">"PCA": class="code-string">"personal care aide" }, class="code-string">"notes": class="code-string">"Explain Medicaid and Medicare coverage wherever cost comes up." },
class="code-string">"interlink_map": { class="code-string">"how-to-hire-home-health-aide": [class="code-string">"hha-vs-pca-differences", class="code-string">"hha-certification-requirements"], class="code-string">"hha-vs-pca-differences": [class="code-string">"how-to-hire-home-health-aide"], class="code-string">"hha-certification-requirements": [class="code-string">"how-to-hire-home-health-aide", class="code-string">"hha-vs-pca-differences"] },
class="code-string">"total_articles": 3,
class="code-string">"completed_articles": 0,
class="code-string">"target_score_delta": 8,
class="code-string">"created_at": class="code-string">"2026-10-05T14:02:11.418Z",
class="code-string">"updated_at": class="code-string">"2026-10-06T09:30:42.007Z",
class="code-string">"articles": [
{
class="code-string">"id": class="code-string">"9d2e4b17-5c3a-4f86-b0e1-7a4c9f3d2e58",
class="code-string">"cluster_id": class="code-string">"3f6c2a9e-8b41-4d7a-9c15-2e0b7d4a6f81",
class="code-string">"role": class="code-string">"hub",
class="code-string">"title": class="code-string">"How to Hire a Home Health Aide: Complete Guide",
class="code-string">"slug": class="code-string">"how-to-hire-home-health-aide",
class="code-string">"article_type": null,
class="code-string">"word_target": 6000,
class="code-string">"key_queries": [class="code-string">"how to hire a home health aide", class="code-string">"home health aide cost per hour"],
class="code-string">"criteria_targeted": [class="code-string">"original_data", class="code-string">"qa_content_format", class="code-string">"table_list_extractability"],
class="code-string">"brief": { class="code-string">"angle": class="code-string">"Cover cost, qualifications, Medicaid coverage, interview questions" },
class="code-string">"status": class="code-string">"draft",
class="code-string">"execution_id": class="code-string">"e6a90f3b-41d2-4c8e-b75a-0f2c8d3e9a16",
class="code-string">"sort_order": 0,
class="code-string">"execution_review_status": class="code-string">"draft",
class="code-string">"execution_word_count": 6240
},
{
class="code-string">"id": class="code-string">"c41f8a62-0b7d-4e93-a5c2-6d18e7f04b39",
class="code-string">"cluster_id": class="code-string">"3f6c2a9e-8b41-4d7a-9c15-2e0b7d4a6f81",
class="code-string">"role": class="code-string">"child",
class="code-string">"title": class="code-string">"HHA vs PCA: Key Differences Explained",
class="code-string">"slug": class="code-string">"hha-vs-pca-differences",
class="code-string">"article_type": null,
class="code-string">"word_target": 4000,
class="code-string">"key_queries": [class="code-string">"hha vs pca", class="code-string">"difference between home health aide and personal care aide"],
class="code-string">"criteria_targeted": [class="code-string">"table_list_extractability", class="code-string">"qa_content_format"],
class="code-string">"brief": { class="code-string">"angle": class="code-string">"Scope of work, certification, cost, when to choose each" },
class="code-string">"status": class="code-string">"planned",
class="code-string">"execution_id": null,
class="code-string">"sort_order": 1,
class="code-string">"execution_review_status": null,
class="code-string">"execution_word_count": null
},
{
class="code-string">"id": class="code-string">"5b8e3d0c-2f64-4a1b-8e7d-91c5a2f6b0e4",
class="code-string">"cluster_id": class="code-string">"3f6c2a9e-8b41-4d7a-9c15-2e0b7d4a6f81",
class="code-string">"role": class="code-string">"child",
class="code-string">"title": class="code-string">"Home Health Aide Certification Requirements by State",
class="code-string">"slug": class="code-string">"hha-certification-requirements",
class="code-string">"article_type": null,
class="code-string">"word_target": 4000,
class="code-string">"key_queries": [class="code-string">"home health aide certification requirements"],
class="code-string">"criteria_targeted": [class="code-string">"original_data", class="code-string">"content_freshness"],
class="code-string">"brief": { class="code-string">"angle": class="code-string">"NY, NJ, CT requirements, training hours, renewal process" },
class="code-string">"status": class="code-string">"planned",
class="code-string">"execution_id": null,
class="code-string">"sort_order": 2,
class="code-string">"execution_review_status": null,
class="code-string">"execution_word_count": null
}
],
class="code-string">"progress": {
class="code-string">"total": 3,
class="code-string">"planned": 2,
class="code-string">"writing": 0,
class="code-string">"draft": 1,
class="code-string">"published": 0
}
}
aeo_list_clusters
List all content clusters for a domain with article counts and status summaries. Clusters are returned in reverse chronological order (newest first). The response is an array, and article_status_summary counts each cluster's articles by status.
Analyze a domain's audit gaps and visibility MISS queries to suggest content cluster opportunities. Returns severity-ranked criteria, uncovered queries, and ready-to-use cluster seeds. The analysis is rule based, not AI generated. Criteria scoring 7 or lower are ranked by gap_severity (10 minus the score), most severe first; criteria the engine could not measure are left out. A MISS query counts as covered when it shares at least two keywords with the title of an existing pipeline article or CMS page. Uncovered queries that share at least two keywords are grouped, and every group of three or more queries becomes a cluster seed. Seeds are returned largest first, up to max_clusters.
Parameters
Name
Type
Required
Description
domain
string
Required
Domain to analyze for cluster opportunities
max_clusters
number
Optional
Most cluster seeds to return, largest groups first (default 3, minimum 1)
Each criteria_by_severity entry carries the criterion's name, pillar (null on older audits), score and gap_severity; its id is the criterion's position in the audit scorecard. cluster_seeds_total counts every seed found before the max_clusters cut. existing_clusters and voice_profile have the same shape as in aeo_get_cluster_context.
response
{
class="code-string">"domain": class="code-string">"understoodcare.com",
class="code-string">"overall_score": 82,
class="code-string">"criteria_by_severity": [
{ class="code-string">"id": 8, class="code-string">"name": class="code-string">"Original Data & Expert Analysis", class="code-string">"pillar": class="code-string">"Answer Readiness", class="code-string">"score": 5, class="code-string">"gap_severity": 5 },
{ class="code-string">"id": 7, class="code-string">"name": class="code-string">"Comprehensive FAQ Section", class="code-string">"pillar": class="code-string">"Content Structure", class="code-string">"score": 7, class="code-string">"gap_severity": 3 }
],
class="code-string">"uncovered_queries": [
class="code-string">"does medicaid cover home health aides",
class="code-string">"how many hours a week medicaid pays for a home health aide",
class="code-string">"medicaid vs medicare coverage for home health aides",
class="code-string">"caregiver certification online"
],
class="code-string">"covered_queries": [
{ class="code-string">"query": class="code-string">"home care vs nursing home cost", class="code-string">"matched_by": class="code-string">"home care vs nursing home" }
],
class="code-string">"cluster_seeds": [
{
class="code-string">"seed_keywords": [class="code-string">"medicaid", class="code-string">"cover", class="code-string">"home", class="code-string">"health", class="code-string">"aides", class="code-string">"many", class="code-string">"hours", class="code-string">"week", class="code-string">"pays", class="code-string">"aide"],
class="code-string">"queries": [
class="code-string">"does medicaid cover home health aides",
class="code-string">"how many hours a week medicaid pays for a home health aide",
class="code-string">"medicaid vs medicare coverage for home health aides"
]
}
],
class="code-string">"cluster_seeds_total": 1,
class="code-string">"existing_coverage": {
class="code-string">"pipeline_articles": 2,
class="code-string">"cms_articles": 2
},
class="code-string">"existing_clusters": [
{
class="code-string">"id": class="code-string">"7e15c9a4-d3b8-4c62-9f0a-4b2d6e8a1c73",
class="code-string">"name": class="code-string">"CDPAP Education",
class="code-string">"status": class="code-string">"published",
class="code-string">"total_articles": 5,
class="code-string">"completed_articles": 5
}
],
class="code-string">"voice_profile": {
class="code-string">"target_criteria": [class="code-string">"original_data", class="code-string">"faq_section"],
class="code-string">"tone": class="code-string">"conversational",
class="code-string">"brand_stance": class="code-string">"Families deserve plain answers about care costs and coverage."
}
}
Use the cluster seeds as a starting point: turn each seed's queries into a hub and child articles (their key_queries), then call aeo_create_cluster. You choose the titles, add more child articles, and refine the interlink map before creating.
aeo_start_cluster_article
Start writing a planned or approved cluster article. Creates a pipeline execution for the article, links it to the cluster article, transitions the article from planned or approved to writing status and returns the block structure, shared context, and interlink targets needed to begin content generation. A cluster still in planned status moves to writing. An article already marked writing that has no execution yet is accepted too; an article that already has an execution is refused with an error.
The blocks list is shortened here. slug is the new execution's slug, made from the title; the cluster article keeps its own slug, which is the one the interlink map uses.
response
{
class="code-string">"execution_id": class="code-string">"2c7d5e1a-9b3f-4a08-8d64-e5f1b0c7a293",
class="code-string">"article_type": class="code-string">"signature-article",
class="code-string">"recipe_name": class="code-string">"Signature Article",
class="code-string">"topic_title": class="code-string">"HHA vs PCA: Key Differences Explained",
class="code-string">"slug": class="code-string">"hha-vs-pca-key-differences-explained",
class="code-string">"target_word_count": 4000,
class="code-string">"total_blocks": 14,
class="code-string">"blocks": [
{ class="code-string">"instance_id": class="code-string">"B-23-0", class="code-string">"block_id": class="code-string">"B-23", class="code-string">"displayName": class="code-string">"Quick Answer", class="code-string">"generationOrder": 1, class="code-string">"displayOrder": 0, class="code-string">"wordCountTarget": 60, class="code-string">"isVisible": true },
{ class="code-string">"instance_id": class="code-string">"B-58-0", class="code-string">"block_id": class="code-string">"B-58", class="code-string">"displayName": class="code-string">"Key Points", class="code-string">"generationOrder": 2, class="code-string">"displayOrder": 1, class="code-string">"wordCountTarget": 120, class="code-string">"isVisible": true },
{ class="code-string">"instance_id": class="code-string">"B-07-0", class="code-string">"block_id": class="code-string">"B-07", class="code-string">"displayName": class="code-string">"Body", class="code-string">"generationOrder": 3, class="code-string">"displayOrder": 2, class="code-string">"wordCountTarget": 650, class="code-string">"isVisible": true },
{ class="code-string">"instance_id": class="code-string">"B-07-1", class="code-string">"block_id": class="code-string">"B-07", class="code-string">"displayName": class="code-string">"Body", class="code-string">"generationOrder": 4, class="code-string">"displayOrder": 3, class="code-string">"wordCountTarget": 650, class="code-string">"isVisible": true },
{ class="code-string">"instance_id": class="code-string">"B-24-0", class="code-string">"block_id": class="code-string">"B-24", class="code-string">"displayName": class="code-string">"FAQ", class="code-string">"generationOrder": 12, class="code-string">"displayOrder": 12, class="code-string">"wordCountTarget": 450, class="code-string">"isVisible": true },
{ class="code-string">"instance_id": class="code-string">"B-38-0", class="code-string">"block_id": class="code-string">"B-38", class="code-string">"displayName": class="code-string">"References", class="code-string">"generationOrder": 13, class="code-string">"displayOrder": 13, class="code-string">"wordCountTarget": 120, class="code-string">"isVisible": true }
],
class="code-string">"brief": { class="code-string">"angle": class="code-string">"Scope of work, certification, cost, when to choose each" },
class="code-string">"shared_context": {
class="code-string">"audience": class="code-string">"Families arranging in-home care for a parent",
class="code-string">"terminology": { class="code-string">"HHA": class="code-string">"home health aide", class="code-string">"PCA": class="code-string">"personal care aide" },
class="code-string">"notes": class="code-string">"Explain Medicaid and Medicare coverage wherever cost comes up."
},
class="code-string">"interlink_targets": [class="code-string">"how-to-hire-home-health-aide"],
class="code-string">"key_queries": [class="code-string">"hha vs pca", class="code-string">"difference between home health aide and personal care aide"],
class="code-string">"criteria_targeted": [class="code-string">"table_list_extractability", class="code-string">"qa_content_format"],
class="code-string">"voice_profile": {
class="code-string">"target_criteria": [class="code-string">"original_data", class="code-string">"faq_section"],
class="code-string">"tone": class="code-string">"conversational",
class="code-string">"brand_stance": class="code-string">"Families deserve plain answers about care costs and coverage."
}
}
interlink_targets lists the slugs this article should link to, read from the cluster's interlink_map under the article's slug. shared_context and brief come back exactly as they were saved on the cluster and the article. Together they let child articles reference the hub naturally and link back to it.
aeo_update_cluster_status
Manage the cluster lifecycle. Supports three actions: start_writing moves a cluster from planned to writing and refuses any other starting status. sync_statuses copies each article's review status from its pipeline execution onto the cluster article (rejected becomes draft, archived articles are skipped) and recounts completed_articles as the articles that are approved or published; it does not change the cluster's own status. complete sets the cluster to published once every article that is not archived is published. When an action is refused, the call fails with an error that names the reason.
Parameters
Name
Type
Required
Description
cluster_id
string
Required
Cluster UUID
action
string
Required
"start_writing", "sync_statuses", or "complete"
Examples
json
class=class="code-string">"code-comment">// Begin writing phase
aeo_update_cluster_status({
cluster_id: class="code-string">"3f6c2a9e-8b41-4d7a-9c15-2e0b7d4a6f81",
action: class="code-string">"start_writing"
})
class=class="code-string">"code-comment">// Sync article statuses into cluster progress
aeo_update_cluster_status({
cluster_id: class="code-string">"3f6c2a9e-8b41-4d7a-9c15-2e0b7d4a6f81",
action: class="code-string">"sync_statuses"
})
class=class="code-string">"code-comment">// Mark cluster as complete
aeo_update_cluster_status({
cluster_id: class="code-string">"3f6c2a9e-8b41-4d7a-9c15-2e0b7d4a6f81",
action: class="code-string">"complete"
})
A typical content cluster workflow uses these tools in sequence. Start by analyzing gaps, create the cluster plan, write articles one by one, and complete when all articles are published.
Mark cluster done after all articles are published.
Write the hub article first. The tools do not pass a hub summary to child articles, so put what every article should know about the hub into shared_context when you create the cluster: aeo_start_cluster_article returns it with every article, which keeps child articles coherent with the hub.
We use Google Analytics cookies to count visits and the Meta Pixel to measure our ads.
Your browser also keeps your theme and this notice.
Privacy policy