Skip to content

Add MCP servers

On this page

An MCP server lets Codex or Claude use tools from another service, such as searching your team's documents or updating an issue in your tracker. Add a supported remote server in boxes.dev to make its tools available across your project's Template box and devboxes. If the service supplies a marketplace plugin rather than an MCP server URL or setup command, follow Install agent plugins.

Large MCP results in Codex may appear as shortened raw data when you reopen a thread. Keep a separate copy of any result you need in full.

Add a connection

Get the server URL or setup command from the service you want to connect, then:

  1. In the desktop app, select your project and open Integrations → MCPs.
  2. Choose Add MCP and paste the URL or the provider's Codex or Claude setup command, then choose Continue.
  3. Name the connection. Keep This project selected, or choose All projects if you want to use the same server and service account across your projects.
  4. If Sign-in appears, the server also works without an account. Keep Sign in to connect your account, or choose Don't sign in to use the server without one.
  5. If Advanced opens to request an API key or header, enter the values supplied by the provider.
  6. Under Add to, Codex and Claude both start selected. If you pasted a setup command, only its agent starts selected. Change the selection if needed, then choose Add MCP and complete any requested provider sign-in.

boxes.dev will detect the supported connection type and authentication method. You can use Advanced to edit the URL, authentication method, and the name your agents will use.

For OAuth connections, Codex and Claude each need their own authorization, so connecting both usually means approving access twice in your browser. API-key and unauthenticated servers do not require that browser sign-in. If a server also works without an account and neither agent is signed in, its row will offer Use without signing in.

The connection's row will show a separate status for each agent. boxes.dev will keep the connection and its credentials current on the applicable machines, including new devboxes and sleeping machines after they wake. You don't need a snapshot. Project-scoped connections let you use different service accounts in different projects.

You can also add MCPs and sign in to them from the mobile app under a project's Project settings → MCPs. See Use boxes.dev on your phone.

Without the desktop app, you can add servers and sign in from a terminal on your own computer with dvb mcp. See Manage MCP servers.

Connect Slack

Slack's MCP server only accepts sign-in from apps registered with Slack, so boxes.dev can't sign you in to it. Instead, you'll connect it with your own user token from a Slack app in your workspace. Slack allows only internal apps and apps published in the Slack Marketplace to use its MCP server, and your workspace admin may need to approve the app.

  1. Open Slack's app settings and create an app in your workspace, or open one you already use.
  2. Under Agents, turn on Slack Model Context Protocol (MCP) Server.
  3. Open OAuth & Permissions and add the User Token Scopes for the tools you want, such as search:read.public and channels:history to search and read public channels. Slack's MCP server guide lists the scopes each tool needs.
  4. On the same page, install the app to your workspace and approve the request. Copy the User OAuth Token, which starts with xoxp-.
  5. In boxes.dev, choose Add MCP, paste https://mcp.slack.com/mcp, and choose Continue. Advanced will open with an Authorization header. Enter Bearer followed by your token as its value, then choose Add MCP.

Codex and Claude will act as you in Slack, limited to the scopes you granted. boxes.dev doesn't renew Slack tokens. If your app has token rotation turned on, its tokens will expire after 12 hours, so use an app without token rotation. If Slack revokes the token, install the app again and enter the new token through the row's ⋯ → Edit.

Manage MCPs from the website

If you don't use the desktop app, for example on Linux or Windows, you can manage the same connections in any browser:

  1. Sign in at boxes.dev and choose MCPs in the header.
  2. Choose the project. The page shows the same list, Add MCP form, agent buttons, and row menus as the desktop app. The Template-managed MCPs inventory is only in the desktop app.
  3. When an OAuth connection needs a sign-in, a dialog will open. Choose Open sign-in page and approve access in the new tab.
  4. The provider will then send that tab to an address starting with http://127.0.0.1:, which will show a connection error. That's expected. Copy the full address from the address bar, paste it into the dialog, and choose Finish sign-in.

Finish each sign-in within 10 minutes; each address works only once. If you paste an address from a different sign-in, the dialog will tell you which address it needs. The dialog also shows the dvb mcp authorize command if you prefer to sign in from a terminal on your own computer. A server that only a private network can reach needs the desktop app or dvb mcp authorize instead.

A sign-in link from a Template box or devbox, for example after codex mcp add, will open this page with that connection's sign-in ready. When you open one from a thread or terminal in the desktop app, it will open Integrations → MCPs in that connection's project instead. After you approve access, the app will finish signing in automatically, with no address to paste.

Answer a service request

A connected service can ask Claude or Codex for information in the thread. Review the server name and request, fill in the form, and choose Submit. Forms support text, numbers, Yes/No answers, and single or multiple choices. Choose Clear to leave an optional field out. A No answer is a value you can submit; choose Decline to refuse the request or Cancel to dismiss it. Simple confirmations may still use Allow and Deny.

Your unfinished answers will remain available when you leave and return to the thread in the same running app. Restarting the app may restore only the request and its defaults. If sending fails, your edits will remain available for Retry.

Codex can also ask you to complete a service request in your browser. Review the destination, choose Open in browser, and finish the service's flow there. Opening the page will send your consent; the agent will continue after the service reports completion. Enter passwords and credentials only in the service's browser flow. If you cannot finish, stop the agent and ask it to try again. Claude browser requests and unsupported forms are currently canceled or declined so the agent can continue.

Codex will keep a supported form or browser request pending while no app is connected, including through a service update on the box. Reopen the thread to answer, or stop the turn. Automated turns can wait for an answer too; don't rely on an unanswered request timing out. If an older app cannot show the request, update boxes.dev and reopen the thread.

Keep connections current

Connections from your Team Template

In a managed project, rows marked Team Template follow the team's current MCP settings. Additions, edits, and removals reach existing projects without a new saved environment. You can connect either agent, disconnect it, or change your credentials; only a team admin can edit or remove the definition. Choose Connection details from the row menu to enter API-key values. Connecting a team MCP is optional and does not block startup or agent sessions.

When the team adds an MCP matching your saved URL and authentication settings, boxes.dev will adopt one matching personal connection and retain its sign-in and agent choices. If several match, it will prefer this project's connection, then the one with more connected agents, then the oldest. Other connections will stay personal. An adopted All projects connection remains available in other projects, with a shared sign-in that renews in one place.

Team MCPs have a unique name for agents, shown under Connection details → Advanced. Their display names stay readable. If the team changes the server URL or authentication requirements, connect again before using it; existing credentials will not be sent to the new destination automatically.

Independent projects receive editable copies when created and keep those copies after later template changes.

Your personal connections

Open Integrations → MCPs to manage your saved connections. Opening the page will not wake a machine.

  • To add an agent, select its button on the connection row.
  • To renew sign-in or stop an agent from using the connection, open that agent's button menu and choose Reauthorize, Remove from Codex, or Remove from Claude.
  • To edit the server definition or headers, or remove the connection from both agents, use the row's ⋯ menu.

Add a connection from a terminal

You can also add supported remote HTTP connections from a terminal on a Template box or devbox:

codex mcp add <name> --url <url>
claude mcp add --transport http <name> <url>

Run the command for the agent you want to use, replacing the placeholders with your server's name and URL. It will add the connection to the current project's central list. If the server needs sign-in, the command will print a sign-in link and a dvb mcp authorize command, and it will try to open the link. If nothing opens, open the link yourself, or run that command in a terminal on your own computer, not on the box. You can also ask Claude or Codex to add the connection; the agent will give you the sign-in link.

To enable both agents, run both commands with the same name, URL, and authentication settings, including any API-key headers. The second command will add its agent to the existing project connection. Repeating a matching command will preserve the connection and current sign-in; OAuth still needs separate authorization for each agent.

For an All projects connection, or when the same name has different settings, add the agent through the existing row in Integrations → MCPs. Choose another name if you need a separate connection.

Handle an existing machine-local connection

If an agent already has an MCP with the same name configured directly on a machine, its button may say Already set up in Codex or Already set up in Claude. Choose Move to boxes.dev to replace matching copies with the connection and sign-in saved in boxes.dev.

Approve the move separately for each agent. Sleeping machines will apply it when they next connect. A copy with a different URL, transport, authentication setup, disabled state, or customized configuration will be left unchanged. Choose Rename MCP if you want to keep both connections.

Connections that stay on the Template box

Local stdio servers, legacy SSE servers, custom OAuth clients, and unsupported command options remain Template-managed. Configure these through the agent's native tools on your Template box, then save a snapshot for future devboxes. Existing devboxes will keep their own configuration.

Expand Template-managed MCPs on the MCP page to inspect the Template box's connections; this may wake it. If that inventory cannot load, you can still edit the central connections. Managed projects have no personal Template box, so they show only the central list. You can still use native agent tools to install an unsupported MCP on a member devbox, but that installation will stay on that devbox.

Repair an expired tool sign-in

When a connection's sign-in expires, open Integrations → MCPs. The repair depends on where the connection lives:

  • For a central connection, including a Team Template connection, choose Reauthorize from the Codex or Claude button menu on its row. boxes.dev will send your renewed sign-in to the applicable devboxes.
  • For a Template-managed connection, reauthorize it on the Template box and save a snapshot for future devboxes. Existing devboxes will need their own repair to use that MCP.
  • For a machine-local connection copied in a Team Template's saved environment, follow the notice to ask a Team Template admin to repair it in the template.

If Codex reports an expired MCP sign-in during a thread, the notice above the composer offers Open MCPs as a shortcut to this page. Dismissing the notice will hide that server's current warning across the project; it will not reconnect the service. A later expiration after a successful connection can show a new warning.