I ship a feature, and then I don't tell anyone about it.
Not out of laziness. The context switch is the problem. I'm deep in a branch, the thing works, and announcing it means leaving the terminal, opening a doc, re-explaining my product to a chat window that has never heard of it, rewriting the result for three platforms, and finding a scheduler. By the time I've done that I've lost the thread I was on, so I don't do it, and the feature ships in silence.
So we built an MCP server for it. Claude Code already knows what I just built — it helped me build it. It should be able to write the post too.
> write a LinkedIn and X post about the feature I just shipped, then schedule both for Tuesday morning
That's the whole interaction now. It stays in the session I'm already in.
What's actually behind it
The server is the MCP surface for Cadencz, which is a social workspace for founders. The important part for this post is not the app, it's the thing the app has that a raw model doesn't: a Website Brain.
You point it at your URL once. It reads your positioning, your audience, the proof points you actually have, and how you already write. That gets stored. Every draft afterwards starts from your real product rather than from a prompt where you've re-typed "we're a B2B SaaS that helps teams..." for the fortieth time.
That's the difference between an AI that writes posts and an AI that knows what you built. It's most of why AI social content reads like it could belong to anyone — the model has a memory of your prompt, not of your product.
Eight agents work off that same stored context. One reads the site, one works out the brand, one writes your voice guide, one plans, one drafts, and one exists purely to reject weak drafts before a human sees them. That last one produces nothing and improved the output more than any of the others.
The tool surface
Sixteen tools, over streamable HTTP. Eight of them read:
Tool What it does
list_workspaces The workspaces this token can see
list_channels Connected accounts and whether the plan covers them
list_brains The Website Brains in this workspace
query_brain Retrieve product context for a question
get_current_plan The current weekly content plan and its items
get_plan_usage Allowance usage against the plan's caps
list_scheduled_posts Posts committed to publish in the coming days
get_analytics Engagement totals per platform over a window
Six of them write:
Tool What it does
compose_post One platform-native post from an idea, grounded in the Brain
plan_week Runs Plan My Week across the whole content calendar
schedule_post Commits a draft to a time
cancel_scheduled_post Pulls a scheduled post back to draft
approve_plan_item Approves a plan item into a scheduled post
publish_now Queues for immediate delivery
Two are owner-only and don't even appear in tools/list for a token that can't use them: connect_channel_link and get_subscription.
compose_post writes for the target platform rather than producing one blob you paste everywhere. LinkedIn and X have never rewarded the same shape, and cross-posting one paragraph is the fastest way to be ignored on both.
Connecting it
bash
claude mcp add --transport http cadencz https://api.cadencz.com/mcp \
--header "Authorization: Bearer cdz_mcp_..."
Any client that sends a static Authorization header works the same way — Claude Code, Claude Desktop, Codex CLI, Cursor. It's also listed in the official MCP registry as com.cadencz/cadencz, so anything that reads from there can find it.
Tokens are minted at Settings → MCP by an account owner. The raw string is shown exactly once; the backend stores only its sha256, so there's nothing to re-reveal and no support path that hands it back to you.
The security model, because you're going to ask
A token that can drive your social accounts is a serious thing to hand to an agent, so three properties matter.
A token acts as the person who minted it, role included. A scheduler's token can compose, schedule and approve. It cannot connect platforms or see billing — those tools don't appear in its tools/list at all, rather than appearing and then failing.
The plan gate runs per request, not at mint time. Downgrade below Pro and every existing token stops working on the next call. Remove a member and their tokens die with the seat check.
The tools that move money don't exist. No checkout, no cancel, no billing portal, nothing that mints credentials. A leaked token must not be able to buy or cancel a plan, and the way to guarantee that is to never build the tool.
connect_channel_link returns a URL where a human connects a platform. It never accepts credentials.
publish_now requires confirm: true as a separate argument. Publishing is irreversible, so it takes a second deliberate decision rather than one that can be inferred from an ambiguous instruction.
And underneath all of it: nothing publishes without human approval, and there's no setting to turn that off. We built the toggle, looked at it, deleted it. Plenty of tools will post autonomously. A founder's voice is the whole asset in the first two years, and handing it to an autopilot to save twenty minutes a week is how everyone ends up sounding identical.
Refusals are structured
A refused call comes back as something the model can act on rather than a wall of prose:
json
{
"code": "plan_allowance_exceeded",
"message": "...",
"allowance": "AI generation",
"limit": 400,
"used": 400
}
The codes mirror the app's own 402/403 surface — plan_allowance_exceeded, plan_required, plan_feature_not_included, platform_post_limit_reached, schedule_window, seat_paused, feature_disabled. Every tool resolves the token to the same actor the HTTP API uses and calls the same services, so allowances and quotas fire identically whether the request came from a browser or an agent. There's no second code path to drift.
Things it deliberately doesn't do
It won't post without you. It won't touch billing. It won't take a platform credential. It won't invent a metric to make a post punchier — the Brain rejects claims it can't ground in your actual site, which is the single feature I'd keep if I had to drop the rest.
Try it
Free plan, no card: cadencz.com. MCP is included from Pro.
If you're running an MCP server of your own and want the publishing gotchas — the apex DNS record, the LibreSSL thing, why your auth wall makes you invisible to directories — I wrote those up separately. They cost me a day.
Top comments (0)