I have a few projects that need steady promotion: TribeSync, my translation bureau, and this blog. I also have Ultimate Content Machine (UCM), the content app I built earlier this year. It knows my brand profiles, has copywriting formulas and platform rules, and generates ideas, posts and weekly plans.
So the obvious question was: why not just use UCM? I tried. Here's what I ran into, and what Claude and I changed in one afternoon.
Where UCM stopped being enough
UCM is good at the first step. Give it an idea, a platform and a formula like AIDA or PAS, and it returns a draft in the brand's tone. The problems start right after that.
It can't check facts. UCM sends a prompt plus my brand knowledge base to Gemini or OpenRouter and shows whatever comes back. When I used it for a TribeSync article, the draft invented Telegram limits that don't exist. Nothing in the app could have caught that.
Everything ran in the browser. The prompts were assembled in the page and sent from there. That works for a single user clicking buttons. It doesn't work for anything that needs to run without me.
The Planner didn't publish. Posts could be scheduled on a calendar, but that calendar was just a list in the database. Nothing ever sent them anywhere.
That wasn't an oversight. To publish to social networks yourself, you have to become a full API client of every platform: register an app there, pass its review, store and refresh access tokens, respect rate limits and post formats, and fix it all whenever the platform changes its API. The reviews aren't a formality either. For Meta (Facebook, Instagram, Threads) and YouTube they usually take more than a month, and videos uploaded through the YouTube API from an unverified app stay private until Google audits it. That's a whole product of its own, and it's called Buffer.
So we didn't build our own Buffer. Publishing is split like this:
- X, Threads and LinkedIn through Buffer, which already has approved apps on all three.
- Telegram through bots: the Bot API is open, and a bot made admin of a channel can post with no review at all.
- YouTube by hand in YouTube Studio: a couple of videos a month isn't worth a Google audit.
Option one: rebuild UCM inside Claude
My first idea was to copy UCM's features into Claude and stop using the app. I dropped it quickly. UCM's presets (post types, formulas, idea frameworks, platform rules) are real product work, and I didn't want two copies of them drifting apart. I also wanted one place where all the content lives, with a calendar I can look at.
So we went the other way: keep UCM as the place where presets and content live, and let Claude work with it directly.
What we actually changed
Generation moved to the server. The Factory, Ideation, Strategy and tone-of-voice tools no longer call the AI from the browser. They call four new server routes. The server checks who you are, loads your brand and its key from the database, checks that Pro-only presets are allowed on your plan, builds the same prompt as before and returns the result.
All presets moved into one file. Platform rules, strategies, formulas, idea frameworks and calendar strategies now live in one place that both the app and the server read.
UCM got an MCP endpoint. MCP (Model Context Protocol) is an open standard for connecting AI assistants like Claude to tools and data. UCM now exposes twelve of them:
| Group | What Claude can do |
|---|---|
| Read | List brands, read a full brand profile, read all presets, list channels, the Vault and the Planner |
| Run | Generate ideas, a post or a 7-day plan with UCM's own prompts |
| Write | Save to the Vault, create a Planner post, update a post |
There are deliberately no delete tools. Claude can create and edit, but cleaning up stays with me.
The whole change was one commit: 18 files, about 1,100 lines added and 190 removed.
The rule I care about most
Every post saved through MCP carries a fact-check record: its status (unchecked, checked or flagged), notes on what was verified and the sources used.
The server enforces one rule: a post can't be approved or marked as published until its fact-check status is "checked". If the text changes after the check, the status resets to unchecked automatically. It doesn't depend on anyone remembering. During testing, Claude tried to approve a fresh draft without a check, and the server refused.
The very first draft showed why that matters.
The first real draft
Once the connector was live, one of the first things Claude did was generate a TribeSync post through UCM. It read well, and it would have been easy to publish. It also had two problems:
- It listed TON as a payment currency. Toncoin was renamed Gram in June 2026. Our help center already uses the new name, but several older TribeSync blog posts still say TON, and the draft repeated the old one.
- It said Telegram Stars land "on your Telegram account". They go to the bot's balance, as both our help center and a published article say.
Neither would have been obvious to a reader. Both would have been wrong in public. That's the whole case for keeping a fact-check step between generation and approval, and for not letting the generator be the one who approves.
What didn't go smoothly
A few honest notes, for anyone building something similar:
- The build broke in an unexpected place. The sandbox where Claude works on my Mac has no network, so a production build couldn't download what it needed. We copied the source to a separate workspace and built there instead.
- The connector dialog guessed wrong. When I added UCM as a custom connector in Claude, it detected OAuth sign-in, because the server answers unauthenticated requests with a standard auth header. UCM uses a simple token, so I had to switch the setting to "No sign-in" and pass the token as a header.
- Old test data got in the way. Before the first real run I had to clear out a pile of old test results, otherwise Claude would have treated them as real material.
What's next
This is the first piece of a bigger setup: Claude drafts and fact-checks, UCM stores everything, and I approve. Next we connect Buffer and the bots, then analytics so I can see which posts bring people to my projects.
This article is the first one that went through the new pipeline. If you want to see how UCM works on its own, the user manual covers it.