Hooking Claude Into Your Publishing Pipeline: An MCP Deep Dive
What the Pub Studio MCP server actually exposes, how Claude uses it, and the design decisions behind treating an AI agent as a first-class user.
- #MCP
- #AI
- #Engineering
- #Automation
Hooking Claude Into Your Publishing Pipeline
Pub Studio exposes its core publishing workflow through the Model Context Protocol (MCP). This means any MCP-capable client — Claude Desktop, Claude Code, custom agents — can read your scheduled queue, draft new posts, adapt copy per platform, and queue them for review.
This post walks through what the server exposes and why we made the choices we did.
What the server exposes
The MCP server surfaces a small, deliberately constrained set of tools:
list_channels— connected platforms and their current healthget_queue— scheduled and draft posts in a windowcreate_draft— propose a new post into a draft stateadapt_for_channel— convert a draft for a specific platformget_brand_voice— read brand voice notesget_recent_posts— recent published posts for context
That's it. There's no publish_now, no delete_post, no
change_billing. The agent can draft and propose. Humans approve and
schedule. We picked this boundary on purpose: it keeps the failure mode
of a misbehaving agent recoverable.
Why "draft" is a first-class state
Agents propose. Humans dispose. Every tool that creates new content lands in a draft state by default. Drafts can't be published. They can be edited, scheduled (which moves them out of draft), or thrown away.
This shape means a 3 AM Claude session full of bad ideas costs you nothing. You wake up, scroll through the drafts, archive the ones that aren't right, and schedule the ones that are.
Auth model
The MCP server runs under your existing Pub Studio session. There's no separate API key. When Claude calls a tool, the call inherits whatever permissions your active team has. If you're a member-level user without publish rights, the agent can't acquire publish rights on your behalf.
This sounds obvious in writing. The shape that's not obvious — and that we considered and rejected — is the one where the agent gets a long-lived token tied to your account. That's how most "AI agent" integrations are shipped today, and it's also how they go wrong.
What the agent reads
get_recent_posts and get_brand_voice exist because the single biggest
quality jump in agent-drafted posts comes from giving the model context
about the rest of the calendar. Without it, every post starts from
scratch and reads like a generic content marketing voice. With it, the
posts inherit the cadence and tone of what's already there.
This is also why the data we feed back is recent posts, not engagement metrics. The agent doesn't need to know which of your posts performed well. It needs to know what you sound like.
What we deliberately didn't build
A few things are conspicuously absent from the MCP surface:
- No image generation. Pub Studio's AI story is "Claude can read and draft using your existing context." It is explicitly not "we'll generate stock-looking visuals you'd never actually use." We don't ship image generation through MCP and we don't plan to.
- No analytics tools. The agent doesn't need to know what "performed." It tends to overfit to it in unhelpful ways.
- No autonomous loops. There's no
schedule_recurring_drafting. If you want recurring agent runs, you set up the cron yourself in your agent harness. We don't run agents on your behalf.
How to wire it up
The Pub Studio MCP server URL is exposed in your team settings under
Integrations → MCP. Drop it into Claude Desktop's config or Claude
Code's .mcp.json and you're connected. The first thing the agent will
do is call list_channels to figure out what you have wired up.
From there, it's just prompting. "Draft three Bluesky posts based on this PRD." "Adapt yesterday's LinkedIn post for X." Whatever your week looks like.