Post to X from Manus
Manus works through long tasks on its own: research, writing, a plan for the week. Connect calmposts as a custom MCP server, and the posts it writes for X and Bluesky land in your calmposts queue, each waiting for your approval before it goes out.
- Connection
- Remote MCP server over Streamable HTTP: nothing to install
- Sign-in
- API key in the Authorization header
- Server address
https://calmposts.com/mcp- Where you set it up
- Connectors → Create in Manus
What Manus can do with calmposts
Give Manus a goal rather than a single post: “find out what changed in our market this month and draft a week of X posts”, “turn this report into a thread and a Bluesky post”. It gathers what it needs, writes, and calls calmposts' create_post for each post, as a draft or in the queue.
Because the posts wait for approval by default, Manus can work through the whole task on its own while nothing goes out before you have read it. You approve each post in calmposts, in Telegram or from the email.
Manus calls calmposts from its own cloud, which is why it uses the hosted server's address; there is nothing to install.
calmposts' X (Twitter) MCP server gives Manus 11 tools, the same set every client gets:
| Tool | Does |
|---|---|
list_accounts | your channels and each network's rules; customer_id: one customer's |
list_customers | the customers (an agency's clients) with their channels' ids |
get_limits | plan usage, the workspace's time zone, network limits |
create_post | a post or a thread for the chosen accounts, wording per account, images by URL; when: draft, queue, at or now |
list_posts | posts by status, account, customer and time range |
get_post | one post with its channels, status and version |
update_post | edit or reschedule; what is left out stays |
delete_post | cancel and remove |
get_next_slot | where when=queue would put a post |
retry_post | send the failed channels again |
get_post_metrics | a published post's counts on each channel at 1 h, 24 h and 7 days (plans with analytics); read only |
Set up calmposts in Manus
Check the key before you start
Create a key in calmposts under API & MCP (it's shown only once), then ask the server for its tools. A list of 11 tools means the address and the key are right; a 401 means the key is wrong or was sent without “Bearer ”.
curl -s https://calmposts.com/mcp \
-H "Authorization: Bearer cp_live_…" \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'
# 200 {"jsonrpc":"2.0","id":1,"result":{"tools":[…]}}Setup 1: A custom MCP server by URL
Manus checks the connection and lists calmposts' tools when you save.
Create a key in calmposts under API & MCP.
In Manus, open Connectors, choose Create, then Add MCP by URL. Manus's docs also describe it as Settings → Integrations → Custom MCP Servers → Add Server.
Enter a name and the server's address, and give the key as the Bearer token:
Server name: calmposts Server URL: https://calmposts.com/mcp Authentication: Bearer token cp_live_…Save. Manus checks that it can talk to calmposts and lists its 11 tools; mention calmposts in a prompt to use them.
Setup 2: The REST API as a Custom API
If you would rather not add an MCP server, Manus can call calmposts' REST API with a saved key.
In Manus, open Connectors, choose Create, then Custom API.
Save the key with a note that tells Manus how to use it:
Name: calmposts Secret name: CALMPOSTS_API_KEY Value: cp_live_… Note: The calmposts REST API at https://calmposts.com/api/v1 (reference: https://calmposts.com/api/v1/openapi.json). Send the CALMPOSTS_API_KEY secret as a Bearer token. Save posts as drafts or in the queue; publish now only when I ask.
Signing in: a key or OAuth
Manus's docs name an API key or a Bearer token as the credentials of a custom MCP server. calmposts takes the key as a Bearer token: every request must carry Authorization: Bearer cp_live_…. If your form asks for a header's name and value instead, enter Authorization and Bearer cp_live_…, with the space.
Manus does not document OAuth for custom MCP servers, so this page uses a key. Create one for Manus alone: you can then revoke it in API & MCP without touching your other agents.
Manus hides connector output in shared sessions and redacts API keys there; removing the connector deletes its saved credentials.
Check that it works
- Saving the server succeeds, and Manus shows calmposts' tools.
- Ask “Use calmposts to show my connected accounts and today's limits”: Manus calls list_accounts and get_limits.
- Ask for one draft and find it under Posts in calmposts, with the source mcp.
Prompts to try
Ask in your own words and the agent picks the tools. A few that work well:
- “Research this week's news about remote work tools and draft five X posts in my voice; save them in calmposts as drafts.”
- “Read the attached report and turn it into an X thread and a Bluesky post; put both in the calmposts queue.”
- “Plan next week: one post a day on my X account in the queue's free slots, nothing with a link on Monday.”
- “Check calmposts for failed posts this week and explain what went wrong; do not retry anything.”
Networks, threads and approval
Posts go to X and Bluesky. A thread goes out as a reply chain on X and Bluesky. Coming soon: Threads and LinkedIn.
Write once, post everywhere: your agent sends one text for every account it picks. If the text is longer than a network allows, calmposts posts it there as a thread, splitting at a paragraph break, then at the end of a sentence, then at a space, with nothing numbered or added. calmposts checks each network's rules and your plan's limits before it saves the post and names the field that's wrong, so the agent can fix the text and try again.
By default your agent's posts wait for you. They come back as pending_approval, and you approve or reject each one in the app, in Telegram or from the email calmposts sends. The workspace owner can let agents publish on their own, but only when both the workspace and the API key are set to publish. X expects an account that posts automatically to carry its Automated label (Settings → Your account → Account information → Automation).
Limits and costs
- Agents need a paid plan: the Free plan has no API keys and can't approve connected apps. API keys per plan: Pro 3 · Advanced 10 · Agency 25.
- Your agent's posts count the same as yours. Posts a day: Pro 20 · Advanced 100 · Agency 300. Posts with a link per month: Pro 30 · Advanced 300 · Agency 600. Each post in a thread counts.
- Posts with a link are counted separately because X charges every app $0.015 per post and $0.20 per post with a link. Your plan includes X's fees, so you don't need an X developer account or an X API bill of your own.
- Try it first: 7-day free trial. Card required. 5 posts with a link during the trial.
- Each key can make 60 requests a minute across MCP and REST; beyond that, the server returns 429 with Retry-After.
What to know about Manus
- Manus's docs describe the form as a server name, the HTTPS address and the credentials, without naming every field, and the labels may differ between versions. The address is always https://calmposts.com/mcp.
- A long task can write many posts at once. Each counts against your plan's posts a day, and calmposts refuses the same text to the same account twice within 7 days (duplicate_recent).
- Ask Manus to use when=queue or a draft. The server tells agents to publish now only when you ask, and with approval on even “now” waits for your yes.
- Manus can publish a custom MCP server to its Projects, so a project's tasks have calmposts without adding it again.
Without MCP: the REST API
Everything the tools do is also a REST call under /api/v1 with the same key, which suits a script or a workflow step that only speaks HTTP. calmposts posts through its own approved X app, so you don't need X API keys of your own.
export CALMPOSTS_API_KEY=cp_live_…
curl -H "Authorization: Bearer $CALMPOSTS_API_KEY" https://calmposts.com/api/v1/accounts
curl -X POST https://calmposts.com/api/v1/posts \
-H "Authorization: Bearer $CALMPOSTS_API_KEY" \
-H "Content-Type: application/json" \
-d '{"parts":[{"text":"Calm posts, scheduled."}],"targets":[{"account_id":"ACCOUNT_ID"}],"schedule":{"mode":"queue"}}'Troubleshooting
Manus cannot connect to the server
Check that the address is exactly https://calmposts.com/mcp and that the key went in as a Bearer token. calmposts answers a request without a key with 401 missing_api_key.
The tools appear, but every call fails with 401
The key was revoked or mistyped: create a new one and update the connector.
Manus writes the posts, but they never go out
They wait for your approval (pending_approval): approve them in calmposts.
401 missing_api_key
The request came without a key, or without “Bearer ” in front of it. Send Authorization: Bearer cp_live_…, with the space.
401 invalid_api_key, api_key_revoked or api_key_inactive
The key is mistyped, was revoked, or its creator is no longer in the workspace. Create a new key in API & MCP and put it in place of the old one.
401 invalid_token
An OAuth connection's access token expired or was disconnected. Clients refresh it on their own; if that fails, sign in again.
402 quota_exceeded
A plan limit is reached, and field names it: api_keys means the plan has no agents (Free); posts_per_day and link_posts_per_month free up the next day or month, or with a bigger plan.
403 insufficient_scope
The key lacks a permission the tool needs; field names it (posts:write to create posts). Create a key that has it.
429 rate_limited
More than 60 requests a minute came from this key. Wait for the seconds in Retry-After.
The tool answers duplicate_recent
The same text went to the same account in the last 7 days. Ask for a new wording.
The post is pending_approval
That is not an error: the post waits for your yes in calmposts. Approve it there, or let agents publish (the owner sets it on the workspace and on the key).
The account needs_reconnect
The network took back calmposts' access. Reconnect the account under Accounts in the app.
Questions
Is calmposts in Manus's connector catalog?
No. You add calmposts yourself as a custom MCP server; calmposts is not affiliated with Manus.
Does Manus need anything installed?
No. Manus connects from its cloud to the hosted server, and calmposts is on the public internet.
An MCP server or a Custom API?
The MCP server gives Manus named tools with clear inputs; the Custom API leaves Manus to build REST calls from the reference. Prefer the MCP server, and use the Custom API where MCP is not available to you.
Can Manus publish without me?
Only if you ask it to post now and the workspace and the key both let agents publish. Otherwise every post waits for your approval.
Can the agent reply, follow or send DMs?
No. There are no tools for that: X forbids automating them, and calmposts only writes and schedules your own posts.
Do I need my own X API keys?
No. calmposts publishes through its own approved X app, and X's per-post fees are part of the plan's price.
The Manus docs this page follows
calmposts is an independent service and is not affiliated with or endorsed by the makers of Manus. Product names belong to their owners.
Let Manus draft your posts, calmly
Start your free trial, connect your accounts, create a key and give Manus the address.
Try it free