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.
| Parameter | Type | Required | Description |
|---|---|---|---|
title | string | Yes | Blog title |
slug | string | Yes | URL slug (3-100 chars, lowercase alphanumeric + hyphens) |
description | string | No | Blog description |
authorName | string | No | Default author name for posts |
organizationId | string | No | Target 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.
| Parameter | Type | Required | Description |
|---|---|---|---|
blogId | string | Yes | The blog ID |
update_blog
Update a blog's settings (title, description, author name, slug).
| Parameter | Type | Required | Description |
|---|---|---|---|
blogId | string | Yes | The blog ID |
title | string | No | New title |
description | string | No | New description |
authorName | string | No | New default author name |
slug | string | No | New URL slug |
delete_blog
Permanently delete a blog and all its posts and templates.
| Parameter | Type | Required | Description |
|---|---|---|---|
blogId | string | Yes | The blog ID to delete |
list_blog_posts
List posts in a blog. Returns all posts (drafts and published) by default.
| Parameter | Type | Required | Description |
|---|---|---|---|
blogId | string | Yes | The blog ID |
status | 'DRAFT' | 'PUBLISHED' | 'SCHEDULED' | No | Filter by status |
limit | number | No | Max posts to return (default 50, max 100) |
offset | number | No | Number 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.
| Parameter | Type | Required | Description |
|---|---|---|---|
blogId | string | Yes | The blog ID |
postId | string | Yes | The post ID |
create_blog_post
Create a new blog post. Set status to 'PUBLISHED' to publish immediately, or 'DRAFT' (default) to save as draft.
| Parameter | Type | Required | Description |
|---|---|---|---|
blogId | string | Yes | The blog ID |
title | string | Yes | Post title |
markdown | string | Yes | Post content in markdown |
slug | string | No | URL slug (auto-generated from title if not provided) |
excerpt | string | No | Short description |
categories | string[] | No | Post categories |
authorName | string | No | Author name (overrides blog default) |
coverImagePath | string | No | Cover image URL from import_blog_asset |
status | 'DRAFT' | 'PUBLISHED' | 'SCHEDULED' | No | Post 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.
| Parameter | Type | Required | Description |
|---|---|---|---|
blogId | string | Yes | The blog ID |
postId | string | Yes | The post ID |
title | string | No | New title |
markdown | string | No | New markdown content |
slug | string | No | New slug |
excerpt | string | No | New excerpt |
categories | string[] | No | New categories |
authorName | string | No | New author name |
coverImagePath | string | No | Cover image URL (empty string to remove) |
status | 'DRAFT' | 'PUBLISHED' | 'SCHEDULED' | No | New status |
delete_blog_post
Delete a blog post.
| Parameter | Type | Required | Description |
|---|---|---|---|
blogId | string | Yes | The blog ID |
postId | string | Yes | The post ID to delete |
list_blog_templates
List HTML post templates for a blog.
| Parameter | Type | Required | Description |
|---|---|---|---|
blogId | string | Yes | The blog ID |
create_blog_template
Create an HTML post template. Must include markers: <!--POST_TITLE-->, <!--POST_CONTENT-->, <!--POST_DATE-->, <!--POST_AUTHOR-->, <!--POST_CATEGORIES-->.
| Parameter | Type | Required | Description |
|---|---|---|---|
blogId | string | Yes | The blog ID |
name | string | Yes | Template name |
html | string | Yes | Full HTML template with markers |
isDefault | boolean | No | Set as default template |
update_blog_template
Update an HTML post template's content or name.
| Parameter | Type | Required | Description |
|---|---|---|---|
blogId | string | Yes | The blog ID |
templateId | string | Yes | The template ID |
html | string | No | New HTML content |
name | string | No | New template name |
isDefault | boolean | No | Set as default template |
delete_blog_template
Delete a blog post template. Posts using it fall back to the default.
| Parameter | Type | Required | Description |
|---|---|---|---|
blogId | string | Yes | The blog ID |
templateId | string | Yes | The template ID |
update_blog_landing
Create or update the HTML landing page for a blog. Use <!--BLOG_POSTS--> marker where posts should be injected.
| Parameter | Type | Required | Description |
|---|---|---|---|
blogId | string | Yes | The blog ID |
html | string | Yes | Full 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.
| Parameter | Type | Required | Description |
|---|---|---|---|
blogId | string | Yes | The blog ID |
remove_blog_landing
Remove the custom landing page from a blog.
| Parameter | Type | Required | Description |
|---|---|---|---|
blogId | string | Yes | The blog ID |
import_blog_asset
Import an image from a public URL into a blog's asset storage. Returns a URL usable in markdown.
| Parameter | Type | Required | Description |
|---|---|---|---|
blogId | string | Yes | The blog ID |
url | string | Yes | Public URL of the image |
filename | string | No | Override 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.
| Parameter | Type | Required | Description |
|---|---|---|---|
action | 'start' | 'append' | 'finish' | Yes | Upload step |
blogId | string | No | Required for 'start' |
filename | string | No | Required for 'start' |
contentType | string | No | MIME type (inferred if omitted) |
uploadId | string | No | Required for 'append' and 'finish' |
base64Chunk | string | No | Required for 'append' (keep under 50KB per chunk) |