list_blog_posts
Lists all blog posts in your account. You can filter by the prompt they were generated from or by their current status.string
Optional prompt ID to return only posts generated from a specific prompt.
string
Optional status filter. Accepted values:
GENERATING, DRAFT, PUBLISHED, FAILED.get_blog_post
Returns full content and metadata for a single blog post, including the generated body, title, and associated prompt information.string
required
The ID of the blog post to retrieve.
string
Unique identifier for the blog post.
string
The post title.
string
The full post body in TipTap JSON format.
string
Current status:
GENERATING, DRAFT, PUBLISHED, or FAILED.get_blog_publish_status
Returns the CMS publish records for a blog post, showing the publish status per connected CMS integration.string
required
The ID of the blog post to check publish status for.
object[]
Array of publish records, one per CMS connection, each showing the connection name, status, and published URL if available.
generate_blog_post
Triggers asynchronous generation of a new blog post. You must choose a generation mode, and some modes require additional parameters.string
required
The domain to generate the post for.
string
required
Generation mode. Accepted values:
FROM_SUGGESTIONS— generates from an answer gap suggestion identified by a prompt runFROM_GSC_KEYWORD— generates targeting a keyword from your Google Search Console dataFROM_COMPETITOR— generates from a competitor URL for gap or comparison content
string
Required when
mode is FROM_SUGGESTIONS. The ID of the prompt whose suggestions to use.string
Optional specific run ID to pull suggestions from when using
FROM_SUGGESTIONS mode.string
Required when
mode is FROM_GSC_KEYWORD. The GSC keyword to target.string
Required when
mode is FROM_COMPETITOR. The competitor page URL to generate content from.string
Optional custom title. If omitted, a title is generated automatically.
string
The ID of the newly created blog post. Poll
get_blog_post until status changes from GENERATING to DRAFT or FAILED.get_blog_gsc_metrics
Returns Google Search Console performance metrics for a published blog post, including clicks, impressions, CTR, and average position.string
required
The ID of the blog post to retrieve GSC metrics for.
number
default:"28"
Lookback window in days. Defaults to
28.number
Total organic clicks over the selected period.
number
Total search impressions over the selected period.
number
Average click-through rate as a decimal (e.g.
0.042 for 4.2%).number
Average search ranking position over the selected period.
update_blog_post
Updates the title and/or content of a blog post. Only posts inDRAFT status can be edited.
string
required
The ID of the blog post to update.
string
Updated post title.
string
Updated post body as a JSON string in TipTap format.
delete_blog_post
Permanently deletes a blog post and all associated CMS publish records. This action cannot be undone.string
required
The ID of the blog post to delete.
publish_blog_post
Publishes a blog post to a connected CMS. You must supply both the post ID and the CMS connection ID. Uselist_cms_connections to retrieve available connection IDs.
string
required
The ID of the blog post to publish.
string
required
The ID of the CMS connection to publish to.
list_cms_connections
Lists all connected CMS integrations for your account. Use the returned connection IDs withpublish_blog_post.
This tool takes no input parameters.
object[]
Array of CMS connections, each with an ID, name, and connection type (e.g. WordPress, Webflow).
get_content_settings
Returns the content generation settings for a domain, including tone of voice, target audience, value proposition, blocked words, and internal link configuration.string
Optional domain ID. Defaults to the first domain in your organisation if omitted.
update_content_settings
Updates content generation settings for a domain. Only the fields you provide are changed — all fields are optional exceptdomainId.
string
Optional domain ID. Defaults to the first domain in your organisation if omitted.
string
Value proposition describing what makes the brand unique.
string
Description of the target audience for generated content.
string
Writing tone. Accepted values:
PROFESSIONAL, CASUAL, AUTHORITATIVE, FRIENDLY, EDUCATIONAL.string
Language code for content generation (e.g.
en, fr, de).string
JSON array string of words to exclude from generated content (e.g.
'["spam","cheap"]').string
JSON array string of internal URLs to include in generated content (e.g.
'["https://example.com/pricing"]').string
JSON array string of competitor domain URLs to use for content differentiation (e.g.
'["competitor.com"]').get_persona
Returns the audience persona configured for a domain. The persona shapes the reading level, terminology, and examples used in generated content.string
Optional domain ID. Defaults to the first domain in your organisation if omitted.
string
The persona’s name (e.g. “Growth-Stage Founder”).
string
A description of the target audience.
number
Minimum age in the target range.
number
Maximum age in the target range.
string
Highest education level:
HIGH_SCHOOL, BACHELORS, MASTERS, PHD, or SELF_TAUGHT.upsert_persona
Creates or updates the audience persona for a domain. If a persona already exists for the domain, it is overwritten.string
required
The persona’s name (e.g. “Growth-Stage Founder”).
string
required
A description of the target reader, their goals, and their pain points.
string
Optional domain ID. Defaults to the first domain in your organisation if omitted.
number
Minimum age in the target demographic.
number
Maximum age in the target demographic.
string
Highest education level of the target reader. Accepted values:
HIGH_SCHOOL, BACHELORS, MASTERS, PHD, SELF_TAUGHT.