Last updated: August 31, 2026
Post and schedule on X from goose
Add OpenTweet to goose as a streamable_http extension pointed at mcp.opentweet.io/mcp. The agent gets 36 tools for posting, scheduling, threads, and articles on X. No X developer account, and the schedule runs on our servers, so your machine does not have to stay awake for it.
goose is local-first: 50,000+ GitHub stars, 500+ contributors, 70+ MCP extensions, now under the Linux Foundation Agentic AI Foundation at aaif-goose/goose since the April 7, 2026 announcement. Desktop and CLI both take the same extension config.
7-day free trial. No X developer account needed.
What goose can do on X
One extension, the full toolset. Nothing to wrap, nothing to maintain.
Post now
opentweet_create_tweet publishes immediately from a goose session.
Schedule server side
opentweet_schedule_tweet holds the post on our servers, so it fires with your laptop closed.
Threads and articles
opentweet_create_thread and opentweet_create_article turn local markdown into published X content.
36 tools
One extension, the whole surface. No tool wrappers to maintain.
Analytics
The agent reads what performed and writes the next batch accordingly.
Local-first stays local
Your model, your machine, your keys. Only the post leaves.
Setup
Connect your X account to OpenTweet, copy your ot_ key, then add the extension. The interactive path and the config file path produce the same result.
# Interactive setup, then pick "Add Extension"
goose configure
# Start a session and use it
goose session
> Draft a thread about the release I just tagged and schedule it for 9am tomorrow.Hosted server, recommended
extensions:
opentweet:
enabled: true
type: streamable_http
name: opentweet
uri: https://mcp.opentweet.io/mcp
headers:
Authorization: Bearer ot_your_key
timeout: 300Local stdio, if you prefer the process on your own machine
Truest to the local-first spirit. The npm package runs under your user, and only the outbound API call leaves.
extensions:
opentweet:
enabled: true
type: stdio
name: opentweet
cmd: npx
args: ["-y", "@opentweet/mcp-server"]
envs:
OPENTWEET_API_KEY: ot_your_key
timeout: 300goose Desktop takes the same values in the custom extension form. Tool names and arguments are in the MCP docs.
Why scheduling matters more for a local agent
A local-first agent can only act while it is running. That is fine for editing code and awkward for posting, because the good posting times are rarely the times you are at the keyboard. If your agent can only publish now, your X account inherits your working hours.
Scheduling through OpenTweet moves the waiting off your machine. goose decides what to post and when, hands it over in one tool call, and the post fires from our infrastructure at the time you chose. Close the laptop, get on a flight, the queue still runs.
The one-turn pattern worth stealing
Ask goose to write a week of posts and call opentweet_batch_schedule once with all of them. You spend one session, the account stays active for seven days, and every post is still yours to edit in the OpenTweet dashboard before it goes out.The REST fallback
Not everything needs an agent turn. Same key, one endpoint, no MCP involved.
curl -X POST https://opentweet.io/api/v1/posts \
-H "Authorization: Bearer ot_your_key" \
-H "Content-Type: application/json" \
-d '{"text":"goose just shipped my release note while I made coffee.","publish_now":true}'
# Or queue it:
# {"text":"...","scheduled_date":"2026-09-02T09:00:00Z"}The route is /api/v1/posts, documented in the API docs. If you are weighing this against the X API directly, the numbers are in X API pay-per-use explained.
Good fits
Developers who will not send code to a cloud agent
goose keeps the model and the repo on your terms. The posting tool does not change that.
Open source maintainers
Tag a release, have goose draft the announcement from the changelog, schedule it for when your users are awake.
Solo founders on a laptop
One session a week fills the queue. The account does not go quiet when you go heads down.
Anyone running several MCP extensions
OpenTweet is one more extension next to your filesystem, git, and search servers, and it plays nicely with all of them.
The same server also works in OpenCode, Claude Code, and Zed. Running an MCP server yourself? See the 2026-07-28 spec migration guide.
Frequently asked questions
How do I add OpenTweet to goose?
In the CLI, run goose configure, choose to add an extension, and pick a remote extension pointing at https://mcp.opentweet.io/mcp with an Authorization header carrying your ot_ key. In goose Desktop, use the custom extension form with the same URL and header. You can also write the entry into ~/.config/goose/config.yaml by hand.
Is goose still a Block project?
goose moved to the Linux Foundation Agentic AI Foundation. The move was announced on April 7, 2026, and the repository is aaif-goose/goose. Nothing about MCP extensions changed with the move, so setup instructions written for the Block-era releases still apply.
Does goose run locally?
Yes, that is the point of it. goose runs on your machine, with your model provider and your credentials, in Desktop or CLI form. Adding OpenTweet does not change that. The only thing that leaves your machine is the post itself, sent over HTTPS to the OpenTweet API with your bearer key.
Can goose schedule a post for later, or does it have to publish now?
It can schedule, and the queue does not depend on your laptop staying awake. opentweet_schedule_tweet stores the post on OpenTweet servers and publishes at the time you set. That is the difference between a local agent that can only act while it is running and one that can leave instructions behind.
Does goose support MCP Apps?
Yes, goose is a confirmed MCP Apps host. That matters as more servers ship interactive surfaces rather than plain text tool results. The OpenTweet tools work as ordinary MCP tools in goose today, and they return structured post ids and URLs you can act on.
How many extensions can goose run at once?
The ecosystem is past 70 MCP extensions, and goose is happy running several at a time. In practice the limit is your model context, not goose. If your agent is juggling many servers, keep OpenTweet enabled only in the sessions that need to post.
What does it cost against calling the X API directly?
OpenTweet is $11.99/month on Pro with the API included and a 7-day free trial. The X API charges per call: $0.015 per post and $0.20 for a post containing a link. An agent that posts release links crosses the break-even at roughly 60 link posts a month.
Wire any agent to X
One hosted MCP server, every client that speaks the protocol.
OpenTweet vs the X API
Post, schedule, and automate X without a developer account or the $200/mo minimum.
X DM outreach, human-approved
Find and qualify leads, AI-draft DMs, approve each one, and drip-send from your own account via API or MCP.
Post to X without an API
The clean, account-safe way to post to X from your code or an AI agent.
Twitter MCP Server
Give Claude, Cursor, and OpenClaw the ability to post to X. 36 tools included.
Developer docs
Quickstart, API keys, MCP setup, and the REST reference for posting to X from code or an agent.
XMCP vs OpenTweet
X's official MCP server bills per API call and cannot schedule. Compare it with the flat-fee hosted MCP.
MCP for AI agents
Connect your AI client to X in under two minutes, no X developer account.
Developer API and keys
REST endpoints, one bearer key, and usage tracking. Build on OpenTweet.
OpenTweet for AI agents
The posting layer for autonomous agents and automations that live on X.
Build an AI Twitter persona
Give your AI agent its own X account. Setup, cadence, and the rules that keep it safe.
Best MCP servers for social media
The 2026 ranked list. How the hosted OpenTweet MCP compares with the official X MCP and others.
Cheapest way to post to X via code
Flat fee vs pay-per-use. Why the $0.20 per-link fee flips the math past ~60 posts a month.
Let goose run your X account from your own machine
Add one extension. Post now, or fill the queue for the week.
$11.99/month, API included. Cancel anytime.