Run distrumi from your AI client
distrumi has an MCP server. Add it to Claude Code, Cursor, Codex or any client that speaks Streamable HTTP, and your assistant can check your accounts, make studio videos, publish them from our iPhones and fetch the proof.
Streamable HTTP, Authorization: Bearer <key>
{}
Two are still warming: @yourbrand.edits and @yourbrand.daily browse their niche on TikTok before they post. The other two are active.
What a session looks like
You ask in plain words. The assistant picks the tools, calls them with your key and reads back what the phones did. Handles and data here are examples.
From a script to a queued post
Studio plans the take, renders its starting frame and generates the video. The finished file goes to the account's phone as a normal publishing job, with the same daily cap and minimum gap as any other post.
- distrumi_studio_create
- distrumi_studio_project
- distrumi_studio_generate
- distrumi_studio_publish
{"source":"script","input":"Your espresso tastes sour for…","hookText":"Why your espresso tastes sour"}
{ "id": "b41e…", "status": "planning", "videoModel": "standard" }{"id":"b41e…"}
{ "status": "ready", "clips": [1 take], "canGenerate": true }{"id":"b41e…"}
{ "status": "generating" }{"id":"b41e…"}
{ "status": "done", "finalUrl": "https://…/final.mp4" }{"id":"b41e…","accountIds":["7c09…"],"caption":"Fix the grind first."}
{ "results": [{ "handle": "@yourbrand", "ok": true, "jobId": "e2a8…", "status": "queued" }] }The video is queued on @yourbrand (job e2a8…). The phone posts it in the account's next pacing window. Ask me for the proof once it is live.
Proof without opening the panel
The phone takes screenshots while it posts. They stay with the job, so your assistant can fetch the status, the published link and the screenshots in the same reply.
- distrumi_jobs
- distrumi_job
{}
[{ "id": "e2a8…", "status": "published", "caption": "Fix the grind first.", … }]{"id":"e2a8…"}
{ "job": { "status": "published", "publishedUrl": "https://www.tiktok.com/@yourbrand/video/…" }, "proofs": [3 screenshots] }
01-caption-screen.png

02-posting.png

03-profile.png
Published on @yourbrand. These are the screenshots the phone took while posting, from the caption screen to the profile with the new video on top.
Add it to your client
One endpoint, one key. Replace <key> with your workspace access key. In the panel the same snippets come filled in.
claude mcp add --transport http distrumi https://mcp.distrumi.app/mcp --header "Authorization: Bearer <key>"
Run it once. The server is added to your Claude Code config.
{
"mcpServers": {
"distrumi": {
"url": "https://mcp.distrumi.app/mcp",
"headers": { "Authorization": "Bearer <key>" }
}
}
}Or use Add to Cursor in the panel, which installs it with your key filled in.
[mcp_servers.distrumi]
url = "https://mcp.distrumi.app/mcp"
http_headers = { Authorization = "Bearer <key>" }Paste the block into your Codex config. The same block is pre-filled in the panel.
{
"mcpServers": {
"distrumi": {
"url": "https://mcp.distrumi.app/mcp",
"headers": { "Authorization": "Bearer <key>" }
}
}
}For any client that reads an mcpServers file and speaks Streamable HTTP.
25 tools
Every tool is a thin call to the distrumi REST API under /api, so everything here also works without MCP.
Accounts
- distrumi_accounts
Lists the workspace's accounts with handle, platform, state and warming settings.
no arguments
- distrumi_add_account
Adds a managed account within the plan limit. It starts in warming.
platform, handle, nicheTerms?
- distrumi_request_accounts
Asks us to set up new accounts on a real iPhone with a US SIM. Returns a request you can track.
platform, count, nicheTerms?, notes?
- distrumi_account_requests
Status of account requests with operator notes.
no arguments
- distrumi_edit_profile
Changes display name and bio. The edit is typed on the phone.
accountId, displayName?, bio?
- distrumi_recreate_account
Asks for an account to be replaced with a fresh one on the same phone.
accountId, reason?
Publishing
- distrumi_publish
Publishes a video by URL on one account. Daily caps and pacing are checked by the API.
accountId, mediaUrl, caption?, hashtags?, scheduledAt?
- distrumi_publish_many
Publishes the same video on several accounts and reports the result per account.
mediaUrl, caption?, hashtags?, accountIds?, platform?
- distrumi_jobs
Lists the latest publishing jobs with their status.
no arguments
- distrumi_job
One job, refreshed from the phone if it is still running, with its proof screenshots.
id
- distrumi_activity
One timeline of posts and warming sessions, newest first.
limit?
Warming and research
- distrumi_warming
Today's scroll sessions and minutes against the caps, recent sessions and the policy.
accountId
- distrumi_warming_settings
Turns warming on or off and sets browsing style, niche terms and sessions per day.
accountId, enabled?, personality?, nicheTerms?, sessionsPerDay?
- distrumi_warming_run_now
Runs one session now within the caps, the daytime window and the phone's queue. Returns the running one instead of starting a second, or says why it can't start yet.
accountId
- distrumi_warming_pause
Pauses automatic sessions until tomorrow or until resumed, or resumes them.
accountId, until
- distrumi_follow
Queues accounts to follow. The phone follows a few per warming session, capped per week.
accountId, targets
- distrumi_follows
The follow queue: pending, followed, skipped or failed, and the weekly cap usage.
accountId
- distrumi_ideas
Captions and hashtags the phones read on the For You feed while warming, flagged in niche or not.
accountId?, inNicheOnly?, limit?
- distrumi_policy
The warming policy: daily caps, session length, active hours, follow limits.
no arguments
Studio
- distrumi_studio_credits
Credit balance, price list per frame and per second of video, recent ledger entries.
no arguments
- distrumi_studio_create
Starts an AI talking-head video from a script or a topic and renders a starting frame per take.
input, source?, title?, hookText?, videoModel?, avatarId?, targetSeconds?
- distrumi_studio_project
Lists projects, or returns one with its clips, estimated credits and the final URL once done.
id?
- distrumi_studio_generate
Generates the video. Credits are charged up front and refunded for clips that fail.
id
- distrumi_studio_publish
Publishes a finished video to one or more accounts as normal publishing jobs.
id, accountIds, caption?, hashtags?
Analytics
- distrumi_analytics
Median views per post, best post, engagement, views at 1 h, 24 h, 72 h and 7 days, accounts side by side, best weekday and hour.
days?, platform?, accountId?, tzOffsetMinutes?
What the key can and cannot do
One workspace per key
The key opens one workspace: its accounts, jobs and studio projects. Nothing from other workspaces, and no operator tools.
Limits are enforced by the API
Daily caps and the minimum gap between posts are checked by the API. A refused post comes back to your assistant as an error, not a silent drop.
Credits only when you generate
Creating a studio project charges for its starting frames. Video credits are charged by distrumi_studio_generate, and credits for failed clips are refunded.
No sessions on the MCP server
Every request gets a fresh server instance that passes your key to the API and keeps nothing after the response.
Rate limited
Reads and writes are rate limited per workspace, on top of the posting caps.
Treat the key like a password
Anyone holding it can publish on your accounts. Keep it out of repos and shared configs.
Get a key
Access opens in batches. Tell us your niche and how many accounts you need, and we will set up your workspace.