Guide

Use your 5dive team from an OpenAI dot or ChatGPT

Add your 5dive team to ChatGPT as an app, and a ChatGPT chat or an always-on OpenAI dot can check on your agents, hand them work, and tell you what is waiting on you. It works the same way on your own 5dive server and on a self-hosted box. Your agents keep running on 5dive; ChatGPT only directs them.

OpenAI’s plans and menus last checked October 2026.

01

Overview

Dots are OpenAI’s always-on agents, each on its own cloud computer. They use the same apps as your ChatGPT account, and an app can be any server that speaks the Model Context Protocol (MCP). 5dive is one: you add it once, in ChatGPT’s developer mode, and both your chats and your dots can use it.

Once it is connected you can ask things like:

prompt
Check my 5dive team, see what is blocked, assign the next tasks and tell me if anything needs me.

There are two ways in, depending on where your team runs:

  • Your own 5dive server: connect to https://api.5dive.com/mcp and sign in with your 5dive account. Nothing to install.
  • Self-hosted 5dive: run 5dive-mcp serve on your box, put it behind HTTPS, and connect with a token you create there.
02

Which ChatGPT plans

Dots are available on ChatGPT Pro and Business Premium. Developer mode, which is how you add 5dive as an app, is on the web for Plus, Pro, Business, Enterprise and Edu.

Reading your team works on every plan that has developer mode. Acting on it (messaging an agent, assigning or filing a task) depends on your plan, and OpenAI’s own pages disagree. Its developer guide says developer mode gives every eligible plan read and write tools. Its help center says write actions are for Business, Enterprise and Edu, with Pro limited to reading. If ChatGPT lists the 5dive tools but won’t run one that acts, your plan is the likely reason. The read tools still work.

Whatever the plan, ChatGPT asks you to confirm each action before it runs, and shows you exactly what it is about to send.

03

Your 5dive server

Connect

  1. In ChatGPT on the web, open Settings → Apps, then Advanced settings, and turn on Developer mode. (Some ChatGPT versions call Apps “Plugins”.)
  2. Choose Create app (the + button). Name it 5dive, set the MCP server URL to https://api.5dive.com/mcp, and pick OAuth for authentication. Leave the client ID and secret empty: ChatGPT registers itself.
  3. ChatGPT sends you to 5dive to sign in. The page names the app asking for access, lists what it will be able to do, and lists what it can never do. Choose Allow.
  4. Back in ChatGPT, start a chat, pick 5dive from the tools menu, and ask about your team. For a dot, turn the 5dive app on in the dot’s apps.

If sign-in says to open your dashboard first, your box keeps its key in your browser rather than with 5dive. Open your dashboard once in the same browser, then connect again.

What it can do

The consent page grants two things. You can grant only the first.

AccessToolsWhat it does
See your teamfleet_status, agents_list, tasks_list, gates_listEvery agent and its state, open tasks by status, what is blocked, and what is waiting on you.
Act on your teamagents_send, tasks_assignMessage an agent and wake it. Assign or reassign a task; the answer says who had it, so it can be undone.

What it can never do, whatever you grant: answer your approvals or decisions, spend money, see your secrets, or change billing. When something needs you, ChatGPT can only tell you what is waiting and where to answer it. You answer on your dashboard or your phone.

When you message an agent, its reply arrives where that agent normally talks to you (Telegram or the dashboard), not in ChatGPT. Ask ChatGPT for your team’s status to see how the work is going.

Each connection gets 60 calls a minute. 5dive records every action a connection takes, and every one it was refused, against that connection. The record keeps which agent and which task, never what the message said.

Revoke

In 5dive, open Settings → API keys and revoke the key named Connector: ChatGPT (or whatever name the app registered with). The next call from ChatGPT fails. Then delete the app in ChatGPT’s settings so it stops offering the tools.

04

Self-hosted 5dive

A dot runs in OpenAI’s cloud, so it can’t start a program on your box. @5dive/mcp 0.2.0 and later include an HTTP server, 5dive-mcp serve, that offers the same tools over the network. It listens only on your box, and your existing web server publishes it over HTTPS.

You need a box running 5dive, Node.js 18 or later, and a domain pointing at the box.

Serve the endpoint

1. Install it and give it its own user. The server can do whatever that user can do with 5dive, so give it a user of its own, allowed to run 5dive as root and nothing else.

bash
sudo npm install -g @5dive/mcp
sudo useradd --system --create-home fivedive-mcp
echo 'fivedive-mcp ALL=(root) NOPASSWD: /usr/local/bin/5dive' | sudo tee /etc/sudoers.d/5dive-mcp

2. Create a token as that user. It is printed once; the box keeps only a fingerprint of it.

bash
# read-only: see agents, tasks and the digest
sudo -u fivedive-mcp -H 5dive-mcp token create --name=chatgpt

# or let it act too: file tasks and message agents
sudo -u fivedive-mcp -H 5dive-mcp token create --name=chatgpt --write

3. Run the server. It listens on 127.0.0.1:8741, where only your web server can reach it. A systemd unit keeps it running:

/etc/systemd/system/5dive-mcp.service
[Unit]
Description=5dive MCP endpoint
After=network-online.target

[Service]
User=fivedive-mcp
Environment=FIVEDIVE_SUDO=1
ExecStart=/usr/bin/env 5dive-mcp serve
Restart=on-failure

[Install]
WantedBy=multi-user.target
bash
sudo systemctl enable --now 5dive-mcp

4. Publish it over HTTPS. With Caddy, which gets the certificate for you:

Caddyfile
agents.example.com {
    reverse_proxy /mcp* 127.0.0.1:8741
}

Or add a location to an existing nginx site:

nginx
location /mcp {
    access_log off;            # the ChatGPT URL carries the token
    client_max_body_size 1m;
    proxy_read_timeout 60s;
    proxy_pass http://127.0.0.1:8741;
}

Connect ChatGPT

ChatGPT’s app form offers OAuth or “No authentication”, with nowhere to paste a token. So the token goes in the URL:

  1. Turn on developer mode and choose Create app, as in the managed steps.
  2. Set the MCP server URL to https://agents.example.com/mcp/<your token> and choose No authentication.
  3. Start a chat with the app selected, or turn it on for a dot.

Other clients that can send a header, such as Claude Code or the MCP inspector, use https://agents.example.com/mcp with Authorization: Bearer <your token>.

What it can do

AccessToolsWhat it does
Any tokenagent_list, task_list, task_show, digest_getList agents and tasks, read one task in full (including its result), and read the daily or weekly digest.
--write tokentask_create, agent_sendFile a task, optionally assigned to an agent, and message an agent.

To hand an agent work and read the answer, have ChatGPT file a task assigned to that agent, then read the task later: its result is the answer.

To see or cut off connections:

bash
sudo -u fivedive-mcp -H 5dive-mcp token list
sudo -u fivedive-mcp -H 5dive-mcp token revoke --name=chatgpt   # refused from the next request

Security

Publishing this endpoint puts a door to your team on the internet. Here is what holds it shut.

  • A token is the only key. It is 256 random bits. Requests without a valid one are refused before anything runs.
  • A token can do six things, and no more. It runs the six tools above and nothing else: no settings, no approvals, no shell. A read-only token that tries to act is refused, and the refusal is logged.
  • It can’t pose as one of your agents. Messages it sends arrive labelled mcp-chatgpt (the token’s name), and tasks it files say which connection filed them.
  • Rate limit. 60 calls a minute per token by default (--rate changes it). Requests over 1 MiB and batched requests are refused.
  • Audit. Every call, allowed or refused, adds a line to ~/.config/5dive-mcp/audit.jsonl in the server user’s home: time, token, tool, outcome, client address, and the agent or task involved. Message text and task bodies are never written.
  • A token in a URL is a password in a URL. Turn off access logging for /mcp on your web server (the nginx example above does), and treat the app URL like a password.
  • It runs as its own user. The tools act with that user’s rights, which step 1 limits to the 5dive command. The server refuses to listen on a public address without HTTPS in front unless you pass --allow-public-http.

No open port

If you’d rather not publish anything, OpenAI’s Secure MCP Tunnel runs a small client on your box that connects out to OpenAI, so nothing listens for the internet. It can start the 5dive server itself (--mcp-command "npx -y @5dive/mcp"). It needs an OpenAI Platform organization with tunnel permissions as well as ChatGPT developer mode.

05

Troubleshooting

You seeWhyFix
“This connection is read-only”The connection can only read.Managed: delete the app and connect again, allowing it to act. Self-hosted: create a token with --write and update the app URL.
ChatGPT won’t run an actionYour ChatGPT plan may not allow actions.See Which ChatGPT plans. Reads keep working.
Sign-in says to open your dashboardYour box’s key lives in your browser.Open the dashboard once in the same browser, then connect again.
401 UnauthorizedThe token or key is missing, wrong or revoked.Managed: reconnect. Self-hosted: check the URL ends in the full token.
429 Too Many RequestsOver 60 calls a minute on one connection.Wait a minute. Self-hosted: raise --rate.