Blog tools

Updated 2026-10-06

In short

Create blogs, write and publish posts, and manage post templates.

19 tools. Each one is something you can ask an AI assistant to do in plain English.

list_blogs

List your blogs with post counts across all organizations.

No parameters required.

Try itShow me all my blogs

create_blog

Create a new blog. Requires a paid plan. Creates in your default organization unless specified.

ParameterTypeRequiredDescription
titlestringYesBlog title
slugstringYesURL slug (3-100 chars, lowercase alphanumeric + hyphens)
descriptionstringNoBlog description
authorNamestringNoDefault author name for posts
organizationIdstringNoTarget organization ID

Try itCreate a blog called 'Marketing Insights'

get_blog

Get a blog's details including title, slug, description, author, and landing page status.

ParameterTypeRequiredDescription
blogIdstringYesThe blog ID

update_blog

Update a blog's settings (title, description, author name, slug).

ParameterTypeRequiredDescription
blogIdstringYesThe blog ID
titlestringNoNew title
descriptionstringNoNew description
authorNamestringNoNew default author name
slugstringNoNew URL slug

delete_blog

Permanently delete a blog and all its posts and templates.

ParameterTypeRequiredDescription
blogIdstringYesThe blog ID to delete

list_blog_posts

List posts in a blog. Returns all posts (drafts and published) by default.

ParameterTypeRequiredDescription
blogIdstringYesThe blog ID
status'DRAFT' | 'PUBLISHED' | 'SCHEDULED'NoFilter by status
limitnumberNoMax posts to return (default 50, max 100)
offsetnumberNoNumber of posts to skip

Try itShow me all published posts in my marketing blog

get_blog_post

Get a blog post's full content including markdown.

ParameterTypeRequiredDescription
blogIdstringYesThe blog ID
postIdstringYesThe post ID

create_blog_post

Create a new blog post. Set status to 'PUBLISHED' to publish immediately, or 'DRAFT' (default) to save as draft.

ParameterTypeRequiredDescription
blogIdstringYesThe blog ID
titlestringYesPost title
markdownstringYesPost content in markdown
slugstringNoURL slug (auto-generated from title if not provided)
excerptstringNoShort description
categoriesstring[]NoPost categories
authorNamestringNoAuthor name (overrides blog default)
coverImagePathstringNoCover image URL from import_blog_asset
status'DRAFT' | 'PUBLISHED' | 'SCHEDULED'NoPost status (default: DRAFT)

Try itWrite a blog post about our Q2 product updates and publish it

edit_blog_post

Update an existing blog post. Only provided fields are updated.

ParameterTypeRequiredDescription
blogIdstringYesThe blog ID
postIdstringYesThe post ID
titlestringNoNew title
markdownstringNoNew markdown content
slugstringNoNew slug
excerptstringNoNew excerpt
categoriesstring[]NoNew categories
authorNamestringNoNew author name
coverImagePathstringNoCover image URL (empty string to remove)
status'DRAFT' | 'PUBLISHED' | 'SCHEDULED'NoNew status

delete_blog_post

Delete a blog post.

ParameterTypeRequiredDescription
blogIdstringYesThe blog ID
postIdstringYesThe post ID to delete

list_blog_templates

List HTML post templates for a blog.

ParameterTypeRequiredDescription
blogIdstringYesThe blog ID

create_blog_template

Create an HTML post template. Must include markers: <!--POST_TITLE-->, <!--POST_CONTENT-->, <!--POST_DATE-->, <!--POST_AUTHOR-->, <!--POST_CATEGORIES-->.

ParameterTypeRequiredDescription
blogIdstringYesThe blog ID
namestringYesTemplate name
htmlstringYesFull HTML template with markers
isDefaultbooleanNoSet as default template

update_blog_template

Update an HTML post template's content or name.

ParameterTypeRequiredDescription
blogIdstringYesThe blog ID
templateIdstringYesThe template ID
htmlstringNoNew HTML content
namestringNoNew template name
isDefaultbooleanNoSet as default template

delete_blog_template

Delete a blog post template. Posts using it fall back to the default.

ParameterTypeRequiredDescription
blogIdstringYesThe blog ID
templateIdstringYesThe template ID

update_blog_landing

Create or update the HTML landing page for a blog. Use <!--BLOG_POSTS--> marker where posts should be injected.

ParameterTypeRequiredDescription
blogIdstringYesThe blog ID
htmlstringYesFull HTML content for the landing page

Try itCreate a beautiful landing page for my blog with a hero section and post grid

get_blog_landing

Get the HTML landing page for a blog.

ParameterTypeRequiredDescription
blogIdstringYesThe blog ID

remove_blog_landing

Remove the custom landing page from a blog.

ParameterTypeRequiredDescription
blogIdstringYesThe blog ID

import_blog_asset

Import an image from a public URL into a blog's asset storage. Returns a URL usable in markdown.

ParameterTypeRequiredDescription
blogIdstringYesThe blog ID
urlstringYesPublic URL of the image
filenamestringNoOverride filename

Try itAdd a hero image to my latest blog post from this URL

upload_blog_asset

Upload an image to a blog via chunked base64. Three-step process: start, append chunks, finish. Prefer import_blog_asset for public URLs.

ParameterTypeRequiredDescription
action'start' | 'append' | 'finish'YesUpload step
blogIdstringNoRequired for 'start'
filenamestringNoRequired for 'start'
contentTypestringNoMIME type (inferred if omitted)
uploadIdstringNoRequired for 'append' and 'finish'
base64ChunkstringNoRequired for 'append' (keep under 50KB per chunk)

Related