Last updated: August 31, 2026

Post to X from ChatGPT Workspace Agents

Workspace Agents can post to X through an MCP connector, but only where MCP writes are allowed. Full write support is Developer Mode, in beta on Business, Enterprise, and Edu plans, with a confirmation modal on every action. On Free, Plus, and Pro, use the REST API instead.

That plan gate is the reason most guides to this stop working halfway through, and almost none of them say it out loud. Check the table below before you spend twenty minutes looking for a settings screen you do not have.

7-day free trial. Works on any ChatGPT plan through REST.

The plan gate, stated plainly

MCP write actions in ChatGPT run through Developer Mode. Developer Mode is a workspace feature in beta, not a consumer one, and paying more as an individual does not unlock it.

Plan
MCP writes
Notes
Free
No
No Developer Mode. Use the REST fallback.
Plus
No
The plan most people following an MCP guide are on, and the one where it stops.
Pro
No
A higher price does not unlock it. This is a workspace feature, not a usage tier.
Business
Developer Mode
Developer Mode in beta. Workspace admin has to enable it.
Enterprise
Developer Mode
Developer Mode in beta, admin controlled.
Edu
Developer Mode
Developer Mode in beta, admin controlled.

If you are on Plus, skip to the REST section

You will not find a custom MCP connector screen. Nothing is broken and no setting is hidden. Jump to the REST fallback further down, which posts to X from any plan and takes one HTTP call.

What Workspace Agents changed

OpenAI launched Workspace Agents on April 22, 2026 as the successor to custom GPTs. The old model was an OpenAPI actions schema you pasted into a builder. The new model is connectors and MCP, which is better for anyone who already runs an MCP server and a step up in setup cost for anyone who does not.

Agent Builder and Evals leave the platform on November 30, 2026. If you built a posting GPT on either, that work has an expiry date on it. The portable replacement is the same thing every other agent client uses: an MCP endpoint, or a plain REST call.

Why this is not a rewrite

A posting agent is thin. It drafts text and it calls one tool. Whatever you built in Agent Builder, the part worth keeping is the prompt, and prompts move between platforms for free. Point it at an MCP server and you are done.

Setup on Business, Enterprise, or Edu

  1. 1

    Ask your workspace admin to enable Developer Mode

    It is in beta and admin controlled. Without it, no custom MCP connector appears in the agent configuration.

  2. 2

    Get your OpenTweet API key

    Connect your X account to OpenTweet and copy the ot_ key from the dashboard. No X developer application involved.

  3. 3

    Add the connector

    Create a custom MCP connector with the values below. The transport is Streamable HTTP and the key rides in an Authorization header.

  4. 4

    Approve the first write

    Ask the agent to post. A confirmation modal appears for the write action. Approve it and the post publishes.

connector settings
Name:          OpenTweet
Type:          MCP server (custom connector)
URL:           https://mcp.opentweet.io/mcp
Transport:     Streamable HTTP
Auth header:   Authorization: Bearer ot_your_key
Approval:      Per-action confirmation (required for writes)
verify.sh
# Verify the endpoint answers with your key before you paste it into the UI.
curl -sS -X POST https://mcp.opentweet.io/mcp \
  -H "Authorization: Bearer ot_your_key" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}' | head -40

# A 401 here means the key is wrong. A tool list means the connector will work.

The full tool list, 36 of them covering posts, threads, articles, evergreen, media, and analytics, is in the MCP docs.

The confirmation modal, and what it means for automation

Every write action shows a per-action confirmation. A human clicks before anything leaves. That is a sane default for an agent with account access, and it means a Workspace Agent cannot be your unattended poster.

The workaround is not to defeat the modal. It is to move the waiting. Approve a scheduling call once, and OpenTweet publishes at the time you set without ChatGPT being involved at all. One approval buys you a week of posts instead of one.

For genuinely unattended posting, put the REST call in something you already run on a schedule. See GitHub Actions, Vercel Cron, or n8n.

The REST fallback, for every other plan

ChatGPT writes the post. Something you control sends it. No connector, no Developer Mode, no plan gate.

post.sh
# Works on every ChatGPT plan, because ChatGPT is not the one making the call.
curl -X POST https://opentweet.io/api/v1/posts \
  -H "Authorization: Bearer ot_your_key" \
  -H "Content-Type: application/json" \
  -d '{"text":"Three things I learned shipping this week.","publish_now":true}'

# Schedule instead:
curl -X POST https://opentweet.io/api/v1/posts \
  -H "Authorization: Bearer ot_your_key" \
  -H "Content-Type: application/json" \
  -d '{"text":"Three things I learned shipping this week.","scheduled_date":"2026-09-02T09:00:00Z"}'

The route is /api/v1/posts, not /api/v1/tweets. Fields and error codes are in the API docs. If you were using a custom GPT before, see make a custom GPT post to Twitter and post to Twitter from ChatGPT.

Frequently asked questions

Can ChatGPT Workspace Agents post to X?

Yes, if your plan allows MCP write actions. Full write support runs through Developer Mode, which is in beta on Business, Enterprise, and Edu plans only. Add the OpenTweet MCP server at https://mcp.opentweet.io/mcp with your ot_ bearer key, and the agent can publish, schedule, and thread. On Free, Plus, and Pro, use the OpenTweet REST API instead.

What replaced custom GPTs?

Workspace Agents, launched April 22, 2026. They are the successor product, and unlike custom GPTs they are built around connectors and MCP rather than an OpenAPI actions schema. Agent Builder and Evals leave the platform on November 30, 2026, so anything you built there needs a home before that date.

Why can I not add an MCP server on my Plus plan?

Because MCP write support is gated to Developer Mode, and Developer Mode is in beta on Business, Enterprise, and Edu. This is the single most common reason a Workspace Agents posting setup fails halfway through. If you are on Plus and following a guide that does not mention plans, you will get to the connector screen and find nothing to click.

Does the agent post without asking me?

No. Write actions surface a per-action confirmation modal, so a human approves each one. That is good for safety and bad for automation. If you want posts that go out while nobody is watching, schedule them through OpenTweet, or call the REST endpoint from your own job. The scheduling happens on our side, so the approval you gave once covers a post that fires later.

How do I post to X from ChatGPT on a Plus plan?

Route it through the OpenTweet REST API from something you control: a script, a Zapier or n8n step, a cron job, or a small server you already run. ChatGPT drafts the text, you send it with one POST to https://opentweet.io/api/v1/posts using your ot_ key. It is one HTTP call and it does not care what plan you are on.

Do I need an X developer account for this?

No. OpenTweet holds the X connection, the OAuth flow, and the token refresh. Your agent authenticates to OpenTweet with one key. You never create an X developer app, and you never pay the X pay-per-use rates of $0.015 per post or $0.20 per post containing a link.

What happens to my Agent Builder work after November 30, 2026?

Agent Builder and Evals leave the platform on that date. Anything you built on them needs to move. If the agent existed to post or schedule on X, the portable version is an MCP connection or a REST call, both of which survive the change because neither depends on OpenAI-hosted builder tooling.

One key, every ChatGPT plan

MCP connector where your workspace allows it, REST everywhere else. Same account, same queue.

$11.99/month, API included. Cancel anytime.