cd /news/developer-tools/your-coding-agent-can-now-write-the-… · home topics developer-tools article
[ARTICLE · art-120129] src=dev.to ↗ pub= topic=developer-tools verified=true sentiment=↑ positive

Your coding agent can now write the launch post for the feature it just helped you ship

Cadencz has launched an MCP server that lets developers use Claude Code to write and schedule social media posts about features they just shipped, without leaving their coding session. The server leverages a 'Website Brain' that stores product context and voice, and includes sixteen tools for reading and writing content across platforms. Eight agents work off the stored context, including one that rejects weak drafts, improving output quality.

read5 min views2 publishedSep 3, 2026

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_d, 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.

── more in #developer-tools 4 stories · sorted by recency
── more on @cadencz 3 stories trending now
sponsored brought to you by zahid.host 4,200+ EU-deployed projects
reading about agents? ship yours in a single git push.

Run your AI side-project on zahid.host

EU-based hosting, git-push deploys, automatic HTTPS, no cold starts. Free tier with a custom domain — perfect for shipping the agent you just read about.

$git push zahid main
Live at https://your-agent.zahid.host
Get free account → Pricing
from €0/mo · no card required
LIVE [news/your-coding-agent-ca…] indexed:0 read:5min 2026-09-03 ·