Model Context Protocol, for people who run many X accounts
Manage your X (Twitter) accounts in bulk through MCP
flottra ships an MCP server that lets an AI agent, Claude Code, Claude Desktop or any MCP client, operate a whole workspace of X accounts: import accounts and proxies, schedule likes, follows, replies, posts and DM campaigns across many accounts, read health and diagnostics, and report friction back. 89 tools, one key per workspace, dry run by default.
{
"mcpServers": {
"flottra": {
"type": "http",
"url": "https://flottra.com/api/mcp",
"headers": { "Authorization": "Bearer flk_..." }
}
}
}One entry, one key. The endpoint is hosted by flottra; the key comes from Settings in the panel. Nothing to install.
Not another API wrapper
What makes this different from a Twitter MCP server
Search for a Twitter MCP server and you find single account wrappers around the official API: one key, one account, the API's own limits and price. That is the right tool for reading a timeline into a chat. It is the wrong tool for the person running thirty accounts, because the API neither knows nor cares about the things that keep those accounts alive.
| A typical Twitter MCP server | The flottra MCP server | |
|---|---|---|
| Accounts | One, tied to an API key | A workspace of many, one key for all of them |
| How actions reach X | The official API, per app rate limits, paid tiers | A real Chrome window per account on your own computer, through your own proxy |
| Proxies | None | One per account, assigned and tested through the same tools |
| Pacing | Whatever the agent asks for | Hourly caps, a warming ramp for new accounts, quiet hours on each account’s own clock |
| Bulk operations | A loop the agent writes | Bounded bulk tools with previews: 50 accounts, 5 tasks each, 100 tasks per call |
| Blast radius | Whatever the key can do | Read or write scopes, confirm gates, an audit log, secrets scrubbed |
| When something is wrong | The agent guesses | Diagnostics tools, health checks, and feedback_submit so the team hears about it |
89 tools, 14 resources, 4 prompts
What an agent can do with it
Everything the dashboard does, plus the things a person does by hand across several pages. Each tool has a typed input schema and answers with a one line summary and structured JSON, so an agent can chain them without parsing prose.
Workspace
4 toolsoverview, audit log, settings get and set
The overview is where an agent starts: accounts by status, devices online, tasks today, quota, open alerts and a computed list of warnings.
Accounts
12 toolslist, get, create, bulk import, update, pause, resume, retire, delete, history, session status, follow targets
Passwords and auth tokens are encrypted the way the panel encrypts them and are never returned by any tool.
Proxies
9 toolslist, create, bulk import, update, delete, activate, assign, test, health
The test tool runs the same proxy check the panel runs. One proxy per account is the rule the prompts enforce.
Devices and profiles
10 toolsdevices list, pairing code, revoke, status; profiles list, create, update, launch, stop, delete
A device is a computer running the desktop app. The browsers run there, not on flottra servers.
Tasks
8 toolslist, get, kinds, schedule, bulk schedule, cancel, retry, cancel pending
Every task kind the product knows, with its payload schema, is published as a resource so the agent never guesses a field.
Routines and growth
11 toolsroutine defaults, follow back, growth, posting, toggle; growth overview, reciprocity, targets, seeding, alerts
Follow and unfollow loops run on the product defaults: a follow back check after 72 hours and a 30 day cooldown.
Warming
4 toolsstatus, config get, config set, set phase
The three week ramp for new accounts, readable per account. Phase changes are marked risky and preview first.
Outreach
11 toolscampaigns list, get, create, update, set status, delete; targets import and list; stats; inbox threads and thread read
Targets are screened for whether they can be messaged before a single message is sent, and replies are read back.
Personas, posting, media, billing
11 toolspersonas list, library, get, set, preview; schedule post, recent posts, AI log; media list and status; billing get
The persona preview is a real dry run through the text generator. Billing is read only.
Diagnostics and feedback
9 toolserrors, error state, feedback inbox, account failures, worker health, self test; feedback submit and list
An agent that hits friction reports it with feedback_submit. Every submission is kept; there is no daily cap.
Things people actually ask it
- "Import these 20 accounts and 20 proxies, one proxy each, and start warming them. Do not post anything for three days."
- "Why is @handle failing? Check its session, test its proxy, read its last failures and tell me the one thing to change."
- "Plan next week for the 12 accounts in the Engager phase: likes and follows only, inside their own daytime hours, well under the caps. Show me the schedule before you create anything."
- "Start an outreach campaign to this list from three senders: follow first, wait a day, then one message each, three an hour at most."
Each of those ends in a preview, not an action. The agent shows what it would create; you confirm; the audit log records both.
Setup
Connect an agent in three steps
1
Create a workspace key
In the panel, Settings, then API access (MCP). Choose read only or read and write. The key starts with
flk_, is shown once, and is stored as a hash. Revoking it ends every session that used it.2
Add the server to your client
The hosted endpoint speaks Streamable HTTP with a bearer key, behind TLS, with a per key rate limit. Claude Code connects directly; Claude Desktop connects through the mcp-remote bridge. If you run the repository yourself, stdio works too.
Claude Code, one command claude mcp add --transport http flottra https://flottra.com/api/mcp \ --header "Authorization: Bearer flk_..."Claude Desktop, claude_desktop_config.json { "mcpServers": { "flottra": { "command": "npx", "args": ["-y", "mcp-remote", "https://flottra.com/api/mcp", "--header", "Authorization:${FLOTTRA_AUTH}"], "env": { "FLOTTRA_AUTH": "Bearer flk_..." } } } }Self-hosted # from a checkout of the repository, with database access node apps/mcp/bin/flottra-mcp.mjs stdio # Claude Code / Claude Desktop, local FLOTTRA_MCP_PORT=3020 node apps/mcp/bin/flottra-mcp.mjs http # your own HTTP endpoint3
Ask, preview, confirm
Start with
workspace_overview. Destructive and bulk tools return a preview until called withconfirm: true. The desktop app on your computer picks up the client lane tasks; posts, checks and campaigns go to the worker lane. Both are visible in the panel the moment they are created.
Safety model
Built for an agent that will make mistakes
An agent with write access to thirty accounts will, at some point, ask for the wrong thing. The server is designed so that the wrong thing is a preview, an audit row and a structured error, not thirty suspended accounts.
- One workspace per key
- A key resolves to exactly one workspace. There is no tool, argument or resource that reaches another one.
- Read and write scopes
- A read key can look at everything and change nothing. Write tools refuse it with a structured error.
- Dry run by default
- Destructive, bulk and risky tools return a preview of what would happen until they are called with confirm: true.
- Every write is audited
- Who, through which key, did what to which object, including refused and dry run attempts. The log is a tool and a resource.
- Secrets never leave
- Passwords, cookies, auth tokens, proxy credentials and key hashes are scrubbed from every result and every error.
- Typed inputs only
- No raw SQL, no file paths. Every tool takes validated fields, and the payload schemas are published as a resource.
- Quota and caps apply
- Account creation goes through the plan quota. Scheduling respects the workspace hourly caps. Bulk scheduling stops at 50 accounts, 5 tasks per account, 100 tasks.
- Rate limited over HTTP
- The remote transport authenticates every request, runs a stateless server per request and applies a per key token bucket (120 requests a minute by default).
Bulk, but paced
What X says about this, quoted
Bulk is the word people search for and the word X's rules are written against. The automation rules (updated April 2026, read 19 September 2026) say you "may not follow or unfollow X accounts in a bulk, aggressive, or indiscriminate manner", that you "may not like posts or hide replies in an automated manner", that unsolicited automated direct messages are not permitted, and that scripting the X website "may result in the permanent suspension of your account".
flottra is browser automation and it does automate likes, follows and messages. It does not claim those rules do not apply. What it does is refuse the shape of activity X names: no bursts, hourly caps per account, a three week ramp for new accounts, quiet hours on each account's own clock, one proxy per account, and bounded bulk tools that preview before they act. That reduces the rate at which accounts are locked or suspended. It does not make it zero, and nobody can.
The long versions are in the guides: X rate limits, follow bots and follow limits, DM limits and automated DMs and why X accounts get suspended.
Resources
What the agent can read without asking
- flottra://workspace/overview
- the same picture workspace_overview returns
- flottra://accounts and flottra://accounts/{id}
- the account list, and one account in depth
- flottra://tasks/recent and flottra://audit/recent
- the last 50 tasks and the last 50 audit rows
- flottra://docs/task-kinds
- every task kind with its lane, risk level, target rule and payload schema
- flottra://docs/limits
- the hourly caps, the worker defaults and the hard caps the server itself enforces
- flottra://docs/safety-rules
- the operating rules the prompts follow: one proxy per account, the warming ramp, the caps
Prompts
Playbooks that encode the safe order
- onboard_account_safely
- slot and device check, proxy, credentials, persona, a test task, then wait for warming
- diagnose_account
- session, proxy test, failure reasons, history, fleet health, one recommendation
- plan_week
- a conservative seven day plan by warming phase, reciprocity and caps, as tool calls awaiting approval
- outreach_campaign_brief
- senders, template, a paced and warmed campaign, targets, then approval to start
Every playbook ends the same way: report anything that felt wrong with feedback_submit. Agent feedback is read by the team, and none of it is dropped.
Questions
Questions people ask about a Twitter MCP server
- What is an MCP server for X (Twitter)?
- MCP, the Model Context Protocol, is the open standard AI agents use to call tools. An MCP server for X exposes actions on X accounts as tools an agent can call: read an account, schedule a post, follow a list, start a campaign. Most Twitter MCP servers wrap the official API for one account. This one manages a whole workspace of accounts through the flottra panel, with the browsers running on your own computer.
- Does it use the official X API?
- No. The desktop app drives a real Chrome window per account on your own computer, through your own proxy, and the panel keeps the schedule. The MCP server talks to the panel, not to X. That is why it can reach things the paid API tiers do not expose, and why the same pacing, warming and caps that protect accounts in the panel apply to everything an agent schedules.
- Can Claude Code manage my X accounts with this?
- Yes. Add the hosted endpoint to Claude Code with one command or a .mcp.json entry, pass a workspace key as the bearer header, and ask. Claude Desktop connects through the mcp-remote bridge, and any client that speaks Streamable HTTP can connect the same way. The four built in prompts give an agent a safe playbook for onboarding, diagnosing, planning a week and running outreach.
- Is it safe to give an AI agent write access to many accounts?
- Safer than giving it a browser. Every destructive or bulk tool previews until it is called with confirm, every write lands in the audit log, keys are scoped read or write, secrets are scrubbed from every response, and scheduling cannot exceed the workspace caps or the plan quota. What the server cannot do is make X approve of automation; the rules X publishes are quoted on this page for that reason.
- How many X accounts can it manage in bulk?
- As many as your workspace holds, which is set by your plan, and as many as your proxies and machines can carry, which is the real limit. Bulk operations are deliberately bounded: a bulk schedule stops at 50 accounts, 5 tasks per account and 100 tasks in one call, and per account activity stays under the hourly caps whatever the agent asks for.
- Is bulk following or automated liking allowed on X?
- X’s automation rules, updated April 2026, say you may not follow or unfollow in a bulk, aggressive or indiscriminate manner, that you may not like posts in an automated manner, and that scripting the X website may result in permanent suspension. flottra does not claim to comply with those rules. It paces everything and refuses bursts, which reduces the rate at which accounts are actioned; it does not remove it.
- Does it work with other MCP clients, not only Claude?
- Any client that implements MCP over Streamable HTTP can connect to the hosted endpoint, and any stdio client can run the server from the repository: it uses the standard protocol, standard tool schemas and standard resources and prompts. The examples on this page show Claude Code because that is what most people asking for a Twitter MCP server are running, and the setup is a single command.
The MCP server is part of every flottra workspace
Private alpha, invite only. Write to us with how many accounts you run and what the agent should do for them; we will tell you where the queue stands. Not affiliated with X Corp or Anthropic.