Guides

How to add ZeroSettle to ChatGPT as a custom MCP plugin for your dot

You add ZeroSettle to ChatGPT, not to the dot itself. On ChatGPT web, open Plugins, select +, choose Add custom MCP server, enter https://portal.zerosettle.io/mcp, pick OAuth, sign in with your phone number, then select Create as a plugin and install it. OpenAI says plugin permissions are shared between dots and the rest of ChatGPT, but no OpenAI page says a custom MCP plugin is one a dot can use. On Pro you get read-only tools at most; plugins with write tools are for Business and Enterprise/Edu, where an admin creates them or grants the permission to. Before you build on it, make one read-only call from your dot.

Key takeaways

  • Where: ChatGPT on the web. OpenAI: custom MCP on mobile? "No - web only."
  • Sign-in: OAuth with your phone number and an SMS code. No static API token.
  • Pro: "read/fetch permissions" only, so ZeroSettle's eight read-only tools. No sending, no changes.
  • Business and Enterprise/Edu: full MCP, writes with confirmation. An admin creates the plugin (on Enterprise/Edu, or grants the right to).
  • Unconfirmed: that a dot can call a custom MCP plugin, that Pro's limit follows ZeroSettle's read-only labels, and that scheduled tasks reach it. Test each.

Why connect ZeroSettle to a ChatGPT dot?

Dots are OpenAI's always-on agents inside ChatGPT, announced at DevDay on September 29, 2026. A dot has its own cloud computer and browser, keeps working between conversations, runs scheduled tasks, and reaches outside tools through ChatGPT plugins. Since October 28, 2026, some US Pro users can text their dot over iMessage or RCS through a third-party provider, Linq. But in OpenAI's words, "Your dot can only text you, and you're the only one who can text your dot."

Customers can text a ZeroSettle number instead. ZeroSettle gives your business a dedicated phone number on real iMessage, running on Apple hardware we operate in a server facility, with a REST API, signed webhooks, a hosted AI agent and an MCP server at https://portal.zerosettle.io/mcp. ZeroSettle is backed by Y Combinator and built by former Apple engineers. It isn't affiliated with or endorsed by OpenAI. Everything below about ChatGPT comes from the sources at the end, checked November 4, 2026.

The plugin gives your dot the owner's view of your number: who texted, what they said, and how the hosted agent is set up. The hosted agent or your own server still answers customers. For the bigger picture, see ChatGPT dots and iMessage.

What does OpenAI document, and what's only implied?

ChatGPT dots and custom MCP plugins (checked November 4, 2026)
QuestionStatusWhere it comes from
Can ChatGPT add a custom MCP server?Yes, on the web, with plan limitsOpenAI help center and developer docs
Which plans get full MCP, write tools included?Business and Enterprise/EduHelp center
What does Pro get?"Pro users can connect custom MCP servers with read/fetch permissions."Help center
Does a dot share your plugin connections?Yes: "Plugin permissions are shared across dots, ChatGPT, ChatGPT Work, and Codex."Dots privacy, security and safety FAQ
Is a custom MCP plugin one a dot can use?Not documented. learn.chatgpt.com says "supported plugins installed and enabled for your account." One unofficial GitHub repo says a dot drives its plugin, with no evidence.learn.chatgpt.com; dwgx/dot-mcp-hub
Does Pro's read/fetch limit follow a tool's readOnlyHint?Not documented. OpenAI's developer docs do say tools without readOnlyHint count as writes.Developer docs
Can scheduled tasks or proactive research call a custom plugin?Not documentedNone

You can add ZeroSettle to ChatGPT with certainty. Whether your dot can call it is something you have to test, and that's what Steps 3 and 4 do.

What do you need before you start?

  • Dot access and a plan with custom MCP. Dots are rolling out to Pro users 18 and older outside the EEA, UK and Switzerland, to Business Premium in supported regions (subject to workspace eligibility), and as an Enterprise/Edu/Healthcare beta an admin turns on.
  • ChatGPT on the web. Custom MCP setup is web only, not in the mobile apps.
  • A ZeroSettle number, if you're on Pro. Get it in the ZeroSettle console first. sign_up, set_profile and subscribe are write tools, so a read/fetch plugin can't run them.
  • A phone that gets SMS, for the sign-in code.
  • A decision about who answers customers. A new number starts managed by ZeroSettle's hosted AI agent, whose default business context is a made-up example. Write your own first (see the hosted AI agent guide), or set managed_by to "api" so your server gets the texts.

Step 1: How do you add the custom MCP server?

  1. On ChatGPT in a browser, open Plugins and select +.
  2. Choose Add custom MCP server. OpenAI's current help article says you don't need to turn on Developer Mode first.
  3. Enter a name, such as ZeroSettle iMessage, and an optional description.
  4. Under Connection, enter https://portal.zerosettle.io/mcp, including the /mcp. The server is public HTTPS, so skip the Secure MCP Tunnel option.
  5. For authentication, choose OAuth and leave static client credentials empty. ChatGPT uses static credentials if you supply them, then a client ID metadata document (CIMD) if the server advertises one, otherwise dynamic client registration (DCR). ZeroSettle advertises DCR, so ChatGPT registers itself.
  6. ChatGPT labels custom MCP servers Elevated risk. Tick I understand and want to continue.
  7. Select Create as a plugin, then install the plugin.

ChatGPT supports SSE and streaming HTTP; ZeroSettle uses Streamable HTTP. Don't choose No authentication: ZeroSettle's /mcp needs the OAuth sign-in and doesn't read a token from the URL, so the token-in-the-URL trick some community projects use won't work.

Step 2: What happens when you sign in?

ChatGPT sends you to a ZeroSettle sign-in page on portal.zerosettle.io. Enter your phone number, then the SMS code. This is OAuth 2.1 with PKCE (S256), and ChatGPT gets its own token. ZeroSettle supports the refresh-token grant, which matters: OpenAI warns that without refresh, ChatGPT "may lose access after the original authorization expires."

Use the phone number you sign in to the ZeroSettle console with. It decides which account the plugin reaches; sign in with a different number and you reach a different account, which may have no ZeroSettle number at all.

Tools are frozen when you add them. OpenAI says workspace-published apps use a "frozen" snapshot of their tools until an admin refreshes or republishes, and a community report says the same of personal plugins. If a new ZeroSettle tool doesn't appear, refresh the plugin or re-create it.

What can each ChatGPT plan do with it?

Custom MCP and dots by ChatGPT plan (OpenAI help center, checked November 4, 2026)
PlanWho can add the ZeroSettle pluginZeroSettle tools you can useDots
ProYou, on the webRead/fetch onlyYes (rolling out). Texting with your dot is a limited US beta.
BusinessAdmins and owners create and publish itAll, writes with confirmationOn Business Premium. OpenAI doesn't say separately how Business Premium handles custom MCP; expect the Business rule.
Enterprise/EduPeople an admin gives "Create plugins with MCPs" through rolesAll, writes with confirmationBeta, off until an admin turns it on
Free, Go, PlusNobody (per Peliqan)NoneNot among the plans OpenAI lists

There's a catch on both sides. Pro, the only plan with dot texting, can only read. Business and Enterprise can send, through a plugin an admin set up, but without dot texting. For sending through a dot, see approved replies on ChatGPT Business.

Which ZeroSettle tools are read-only?

OpenAI's developer docs say write actions need confirmation by default and tools without readOnlyHint count as writes. Here's how ZeroSettle annotates its tools:

ZeroSettle MCP tools by annotation (checked November 4, 2026)
ToolsWhat they doAnnotationOn Pro
get_line, read_docs, list_conversations, list_messages, list_group_chats, get_agent, list_agent_connectors, list_background_presetsYour number's status, conversations, messages and group chats, the hosted agent's settings and connectors, chat background presets, the docsreadOnlyHint: trueShould work, if read/fetch follows the annotation
send_imessage, show_typing, create_group_chat, update_group_chat, set_chat_backgroundSend from your number; show the "…" bubble; start or change a group chat; set a chat backgroundWrite; all but show_typing are also marked destructiveNo
set_agent, start_conversation, add_agent_file, add_agent_video, add_mcp_server, update_mcp_server, remove_agent_connectorChange the hosted agent, or have it open a conversationWriteNo
create_api_key, the webhook tools, sign_up, set_profile, send_test_message, subscribeTokens, your server's webhook, one-time setup and paymentWriteNo; use the console

On Business or Enterprise, create_api_key would put a fresh token into the conversation and clear_webhook would stop your server from hearing texts; neither belongs in a dot's daily work. ChatGPT asks you to confirm write actions by default, so read each confirmation before you approve it, and set your dot's rules (Step 4) so it asks before using ZeroSettle's write tools. See permissions and safety for dots and iMessage.

Step 3: Does your dot see the plugin?

OpenAI documents no separate MCP setup inside a dot. Its dots FAQ says: "Your dot can use your existing connections within the permissions you've granted." The getting-started article points to the dot's Customize > Plugins screen. Open it on desktop web and look for ZeroSettle iMessage; OpenAI doesn't say whether the mobile screen lists custom MCP plugins.

A listing is a good sign, not proof. learn.chatgpt.com limits dots to "supported plugins," and no OpenAI page says a custom MCP plugin counts. The next step settles it for your account.

Step 4: How do you test it safely?

Start with read-only calls, move to a send only if your plan allows writes, and stop at the first failure.

  1. A read-only call. In a chat with your dot:
    prompt
    Use the ZeroSettle iMessage plugin to call get_line. Tell me my number
    and whether it's active. Don't call any other tool.
    If your dot reports your number, it can use the plugin. If it says it has no such tool, use ZeroSettle from a regular ChatGPT chat, where custom MCP is documented.
  2. Read the conversations. "Use ZeroSettle list_conversations and list_messages and tell me who texted my number today. Don't reply to anyone."
  3. Pro: confirm the limit. Ask the dot to text your own number with send_imessage. It shouldn't be able to. If the text goes through, don't treat the read/fetch limit as a guardrail.
  4. Business or Enterprise: send only to yourself. "Use ZeroSettle send_imessage to text +1 (312) 555-0142 the words dot test. Show me the message first." Put your own number in place of the example. ChatGPT should ask you to confirm the write.
  5. A scheduled run. Ask the dot to run get_line in a scheduled task tomorrow morning. OpenAI doesn't say whether scheduled tasks reach custom plugins.

Write down what passed, with the date; dots are new and may change. Your dot's Custom Rules offer four behaviors: Take action without asking, Take action if pre-approved, Ask before taking action, and Hand off to you. Give ZeroSettle's send and change tools "Ask before taking action." OpenAI doesn't say how Custom Rules treat custom MCP calls, so check that the rule stops a test send.

A first job: a weekday briefing

The job most likely to work on Pro uses only read-only tools. Dots run scheduled tasks; you give each one a time zone and an end date, and manage them under Scheduled:

prompt
Each weekday at 8 AM Pacific until December 31, 2026: use ZeroSettle
list_conversations and list_messages to summarize customer texts to my
number from the last 24 hours. List anyone still waiting on a reply.
If something looks urgent, DM me in Slack. Never send anything through
ZeroSettle.

It depends on tests 1 and 5 above passing. If the briefing comes back empty but the same prompt works live, the scheduled path is the problem. The morning summary guide covers this job, and Slack alerts for iMessage a route that doesn't need the plugin.

What can't a dot do with ZeroSettle?

  • Reply to customers, or change the hosted agent, on Pro. Those are write tools.
  • React to each text as it arrives. OpenAI's MCP Events can wake a dot, but ZeroSettle doesn't implement them, and OpenAI doesn't say whether personal custom plugins can use them. Real-time answers are the hosted agent's or your server's job. An untested stopgap: post ZeroSettle webhooks into a Slack channel and explicitly ask the dot to monitor it (adding a dot to a channel doesn't start monitoring).
  • Text customers from the dot's own number. Dot texting is owner-only.
  • Watch your number unprompted. No source says proactive research reads custom MCP plugins.
  • Be set up from a phone, or use a static token. Setup is web only, with no bearer-token field.

Limits, consent and cost

ZeroSettle's limits apply whatever does the sending. On Pro, a number opens 5 new contacts a day (Growth: 25+ new outbound contacts a day); people who text you first, and ongoing conversations, don't count. Each number handles up to 10,000 messages a day with known contacts, and at most 2 messages to someone who hasn't replied. A customer who texts STOP (or a similar opt-out phrase, as the whole message or its first sentence) is opted out, and ZeroSettle blocks every number on your account from texting them. Only text people who asked to hear from you; cold messaging gets a line suspended. See iMessage and TCPA consent.

ZeroSettle Pro is $49 a month for one number, month to month, with a 30-day money-back guarantee. Growth starts at $199/month for one dedicated number, with 25+ new outbound contacts a day, and a Pro account can upgrade in the console. Need several numbers working as one? Multi-number Growth terms are agreed in an operator-priced invite, so talk to us. Enterprise is custom pricing through sales for high volume and compliance needs. See ZeroSettle pricing and which plan is right for you. On the ChatGPT side, the first dot is included in eligible plans; chatting with it doesn't count toward usage limits, but Work and Codex tasks do. OpenAI hasn't published terms beyond the first month's extended limits.

Troubleshooting

Symptoms and fixes
SymptomLikely causeFix
No "Add custom MCP server" optionYou're in a mobile app, your plan doesn't include custom MCP, or on Business you're not an admin or ownerUse ChatGPT on the web; ask a workspace admin
Sign-in fails or loopsNo authentication was chosen, or static client credentials were enteredRemove the server and add it again with OAuth and empty credentials
Dot says it has no ZeroSettle toolsThe plugin isn't installed or enabled, or dots don't reach custom plugins for youCheck Customize > Plugins; try the same call in a regular ChatGPT chat
get_line shows no numberYou signed in with a different phone number than your console accountReconnect and sign in with the console's phone number
Send and settings tools missing on ProPro is read/fetch onlyExpected; make changes in the console
Customers get answers you didn't writeThe hosted AI agent manages the numberEdit its business context, or set managed_by to "api"

Using Claude or Cursor too? See connect Claude Code or Cursor to an iMessage number and the ZeroSettle connector for Claude Duet. Comparing the agents? Read ChatGPT dots vs Claude Duet vs Grok Bot for iMessage.

Frequently asked questions

Where do I add the ZeroSettle plugin for my ChatGPT dot?

In ChatGPT on the web, not in the dot and not in the mobile apps. Open Plugins, select +, choose Add custom MCP server, enter https://portal.zerosettle.io/mcp, choose OAuth, then select Create as a plugin and install it. OpenAI says plugin permissions are shared across dots, ChatGPT, ChatGPT Work and Codex, but it doesn't say a custom MCP plugin counts as a supported plugin for dots, so test with one read-only call first.

Can my dot send iMessages to customers through ZeroSettle on ChatGPT Pro?

Not as OpenAI documents it. Pro users can connect custom MCP servers with read/fetch permissions only, and ZeroSettle's send_imessage is a write tool. On Pro the usable tools should be the read-only ones: get_line, read_docs, list_conversations, list_messages, list_group_chats, get_agent, list_agent_connectors and list_background_presets. Full MCP with write tools is for ChatGPT Business and Enterprise/Edu, where an admin creates the plugin or grants the permission to create one, and dots using it there is still unconfirmed.

Can I use a static ZeroSettle API token instead of OAuth?

No. ChatGPT's custom MCP setup offers OAuth, No authentication, or OAuth or no authentication, with no bearer-token field, and ZeroSettle's MCP server doesn't read a token from the URL. Choose OAuth and sign in with your phone number and an SMS code. ZeroSettle advertises dynamic client registration, PKCE and refresh tokens, so ChatGPT should register itself and stay signed in.

Can my dot's own texting channel text my customers?

No. OpenAI's docs say a dot can only text its owner, and only the owner can text the dot. Texting is a limited US Pro beta that isn't available in Business or Enterprise workspaces. Customers text your ZeroSettle number instead, and ZeroSettle's hosted AI agent or your own server answers them.

Who can add the plugin on ChatGPT Business or Enterprise?

On ChatGPT Business, only admins and owners can create and publish custom MCP plugins. On Enterprise and Edu, admins grant the Create plugins with MCPs permission through role-based access control. OpenAI doesn't say separately how Business Premium, the Business tier with dots, handles this; expect the Business rule.

What does it cost?

ZeroSettle Pro is $49 a month for one dedicated iMessage number, month to month, with a 30-day money-back guarantee. Growth starts at $199/month for one dedicated number, with 25+ new outbound contacts a day; multi-number Growth terms are agreed in an operator-priced invite. Enterprise is custom pricing through sales. On the ChatGPT side, the first dot is included in eligible plans; chatting with it doesn't count toward ChatGPT usage limits, but Work and Codex tasks do.

Sources

  1. Connecting custom MCP servers in ChatGPT, OpenAI help center: the Plugins flow, plan limits, Pro read/fetch, Business admins and owners, the Enterprise/Edu role permission, web only, frozen tool snapshots, refresh. Snapshot of October 19, 2026; checked November 4, 2026.
  2. Add custom MCP server, OpenAI developer docs: authentication options, CIMD and DCR, transports, Elevated risk, write confirmation and readOnlyHint. Checked November 4, 2026.
  3. Dots privacy, security, and safety FAQs, OpenAI help center: shared plugin permissions, proactive research. Checked November 4, 2026.
  4. Getting started with your dot, OpenAI help center: eligibility, Customize > Plugins, texting beta limits, Custom Rules. Checked November 4, 2026.
  5. ChatGPT release notes, OpenAI: September 29 dots launch, October 28 texting through Linq. Checked November 4, 2026.
  6. Introducing dots and How we build safety, security, and privacy into dots, OpenAI. Checked November 4, 2026.
  7. Meet dots, Message your dot, Connect computers and apps to your dot and Tasks and memory, learn.chatgpt.com: supported plugins, owner-only texting, scheduled tasks, usage. Checked November 4, 2026.
  8. MCP Events, OpenAI developer docs. Checked November 4, 2026.
  9. ChatGPT MCP: plans, setup and what breaks in 2026, Peliqan, November 2, 2026: Free, Go and Plus can't add custom MCP. Checked November 4, 2026.
  10. dwgx/dot-mcp-hub (unofficial community project): untested claim that a dot drives a custom MCP plugin; frozen tool catalog. Checked November 4, 2026.
  11. ZeroSettle OAuth metadata: dynamic client registration, PKCE S256, refresh tokens. Checked November 4, 2026.
  12. MCP, AI agent and Errors, limits, and compliance, ZeroSettle iMessage API docs. Checked November 4, 2026.

Changelog

  • First published.

Written by the ZeroSettle team. ZeroSettle is an iMessage API: a real phone number on real iMessage, running on Apple hardware we operate for you, that your code texts customers from and hears back on through a bearer token and signed webhooks.

Product facts on this page come from the ZeroSettle iMessage API docs as of November 4, 2026. Facts about ChatGPT and dots come from OpenAI's own pages and the sources listed above, checked the same day; dots are rolling out gradually, so menus, plans and limits may change. ZeroSettle isn't affiliated with or endorsed by OpenAI.

Text your customers from your own iMessage number

ZeroSettle gives your business its own phone number on real iMessage, running on Apple hardware we operate for you in a server facility. Your code sends with one API call and hears every reply on a signed webhook.

Pro is $49 a month with a 30-day money-back guarantee. Growth starts at $199/month for one dedicated number, with 25+ new outbound contacts a day. Enterprise is custom.