---
title: "Manage your blog from an AI tool"
description: "Let ChatGPT, Claude or any MCP client list, write, edit, publish and unpublish posts on your own storefront blog through the Bookatu MCP server."
url: "https://bookatu.com/en-nz/help/manage-your-blog-from-ai-tools"
language: "en"
section: "Help"
category: "Developers"
published: "2026-10-28"
updated: "2026-10-28"
---

# Manage your blog from an AI tool

Let ChatGPT, Claude or any MCP client list, write, edit, publish and unpublish posts on your own storefront blog through the Bookatu MCP server.

## What it is

The business MCP server at https://bookatu.com/api/mcp has six blog tools: blog_list_posts, blog_get_post, blog_create_post, blog_update_post, blog_publish_post and blog_unpublish_post. They work only on the blog of the business the key or connected app belongs to. There is no delete tool, so removing a post stays something you do in the dashboard.

## Why it helps

You can ask your AI assistant to draft a post, tidy one up or take one offline without opening the editor. The tools accept and refuse the same values the editor does, a post from another business never resolves, and a new post stays a draft unless the AI is told to publish it.

## How to use it

1. Owners and admins make a key in Settings, then API & monitoring, under API keys. In What this key may do, on the Blog, forms and email drafts row, tick See posts, forms and email drafts (content:read) for the two read tools and Write posts, forms and email drafts (content:write) for the four that write. Both need 'Manage the business'. A key made before scopes needs read and write access to write, and an app connected through sign-in needs Read and write when you approve it.
2. Point your MCP client at https://bookatu.com/api/mcp and send the key as Authorization: Bearer bk_live_... on every request. tools/list shows only the tools the key can call, and a read-only credential is refused on every write tool.
3. blog_list_posts lists drafts and published posts, newest first, with an optional status of all, draft or published. It returns id, slug, title, status, publishedAt and excerpt, never the body. blog_get_post returns one post in full, markdown body included, by postId or slug, and drafts are visible.
4. blog_create_post needs a title (2 to 140 characters) and a markdown body (up to 50,000 characters), with an optional excerpt (up to 300) and an http(s) coverImageUrl. The slug comes from the title and is made unique. It saves a draft unless you pass publish: true, which puts the post live at once.
5. blog_update_post takes a postId and only the fields to change. Everything else is left as it is, and the slug never changes, so a live link keeps working. An empty excerpt or coverImageUrl clears it, and status draft or published changes who can see it. blog_publish_post and blog_unpublish_post only change the status. The first publish sets publishedAt, and later unpublishing or publishing again keeps that date.
6. The tools cannot set the search title, search description or tags, and an update leaves them as they are. Set them in the editor under Grow, then Blog, in Search & sharing. A bad value is refused with an error rather than trimmed, and a post id from another business answers Post not found. Full tool schemas are at /developers.
