Skip to main content
Use this page to connect Sendmux Product MCP to your AI client. Prefer hosted OAuth when your client supports it. Use local stdio or private HTTP when the client cannot complete hosted OAuth.
Replace placeholder keys and tokens before running any snippet. Do not commit smx_root_, smx_mbx_, or private HTTP bearer tokens to version control.

Choose a setup

Hosted OAuth

Use this for Claude, Cursor, Codex, Gemini CLI, Qwen Code, Kiro, OpenCode, Zed, Visual Studio, and ChatGPT.

Local stdio

Use this when your client can launch sendmux-mcp on your machine.

Private HTTP

Use this when your client needs a URL or runs outside your laptop.
ClientRecommended setupWorks with
Claude and Claude DesktopHosted OAuthCustom connector
Claude CodeHosted OAuthRemote HTTP, local stdio, private HTTP
CursorHosted OAuthRemote HTTP, local stdio, private HTTP
CodexHosted OAuthRemote HTTP, local stdio, private HTTP
ChatGPTHosted OAuth appRemote HTTPS MCP app
Gemini CLIHosted OAuthRemote HTTP, local stdio, private HTTP
Qwen CodeHosted OAuthRemote HTTP, local stdio, private HTTP
KiroHosted OAuthRemote HTTP, local stdio, private HTTP
OpenCodeHosted OAuthRemote MCP, local MCP
ZedHosted OAuthRemote OAuth, local command, private HTTP
Visual StudioHosted OAuthRemote HTTP, local stdio
VS CodeLocal stdio or private HTTPLocal stdio, private HTTP
Windsurf and CascadeLocal stdio or private HTTPLocal stdio, private HTTP
ClineLocal stdio or private HTTPLocal stdio, private HTTP
Roo CodeLocal stdio or private HTTPLocal stdio, private HTTP
Warp local appLocal stdio or private HTTPLocal command, URL server
JetBrains AI AssistantLocal stdio or private HTTPLocal stdio, private HTTP
ContinueLocal stdio or private HTTPLocal stdio, private HTTP
LM StudioPrivate HTTPRemote MCP using Cursor-style JSON
GitHub Copilot CLILocal stdio or private HTTPLocal, HTTP
GitHub Copilot coding agentPrivate HTTPRepository MCP config with secrets
A client can still use Sendmux when hosted OAuth is not listed. Use local stdio if the client can launch commands, or private HTTP if it needs a URL.

Hosted OAuth clients

Use the hosted endpoint when the client supports remote MCP OAuth:
https://mcp.sendmux.ai/mcp
Add a custom connector with server URL https://mcp.sendmux.ai/mcp, then connect and complete the Sendmux authorisation flow.On Team and Enterprise plans, an owner may need to add the custom connector for the organisation before members can connect it.
claude mcp add sendmux --transport http https://mcp.sendmux.ai/mcp
Use /mcp in Claude Code if the server is listed as requiring authentication.
Add this to .cursor/mcp.json for one project or ~/.cursor/mcp.json for all projects.
{
  "mcpServers": {
    "sendmux": {
      "url": "https://mcp.sendmux.ai/mcp"
    }
  }
}
Cursor opens the OAuth flow when the hosted server asks for authorisation.
Add this to ~/.codex/config.toml or a trusted project .codex/config.toml.
[mcp_servers.sendmux]
url = "https://mcp.sendmux.ai/mcp"
Then authenticate:
codex mcp login sendmux
Create a custom MCP app or connector that points to https://mcp.sendmux.ai/mcp. Developer mode or workspace app setup must be available on your plan or workspace.After ChatGPT scans the tools, complete the Sendmux authorisation prompt and test the app privately before publishing it to a workspace.
Add this to your Gemini CLI settings.json.
{
  "mcpServers": {
    "sendmux": {
      "httpUrl": "https://mcp.sendmux.ai/mcp",
      "trust": false
    }
  }
}
Then run /mcp auth sendmux inside Gemini CLI.
Add this to .qwen/settings.json for one project or ~/.qwen/settings.json for all projects.
{
  "mcpServers": {
    "sendmux": {
      "httpUrl": "https://mcp.sendmux.ai/mcp",
      "trust": false
    }
  }
}
Use /mcp auth in Qwen Code if the server needs authentication.
Add this to .kiro/settings/mcp.json for one workspace or ~/.kiro/settings/mcp.json for all workspaces.
{
  "mcpServers": {
    "sendmux": {
      "url": "https://mcp.sendmux.ai/mcp",
      "disabled": false
    }
  }
}
Kiro opens the browser OAuth flow when the hosted server asks for authorisation.
Add this to opencode.json.
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "sendmux": {
      "type": "remote",
      "url": "https://mcp.sendmux.ai/mcp",
      "enabled": true
    }
  }
}
Authenticate when prompted, or run:
opencode mcp auth sendmux
Add this to Zed settings.
{
  "context_servers": {
    "sendmux": {
      "url": "https://mcp.sendmux.ai/mcp"
    }
  }
}
Do not add an Authorization header for hosted OAuth. Zed prompts for the standard MCP OAuth flow when no header is configured.
Add a remote MCP server with this JSON shape.
{
  "servers": {
    "sendmux": {
      "url": "https://mcp.sendmux.ai/mcp"
    }
  }
}
Click Auth above the server in the MCP configuration file, then complete the Sendmux authorisation flow.

Local stdio clients

Install the local package once:
pip install sendmux-mcp
Use a mailbox key for Mailbox or Sending:
export SENDMUX_MBX_KEY=smx_mbx_...
Use a root key for Management:
export SENDMUX_ROOT_KEY=smx_root_...
claude mcp add sendmux-mailbox \
  --transport stdio \
  --env SENDMUX_API_KEY="$SENDMUX_MBX_KEY" \
  -- sendmux-mcp-mailbox
{
  "mcpServers": {
    "sendmux-mailbox": {
      "type": "stdio",
      "command": "sendmux-mcp-mailbox",
      "env": {
        "SENDMUX_API_KEY": "smx_mbx_..."
      }
    }
  }
}
Use an input variable so the key is not stored directly in .vscode/mcp.json.
{
  "servers": {
    "sendmux-mailbox": {
      "type": "stdio",
      "command": "sendmux-mcp-mailbox",
      "env": {
        "SENDMUX_API_KEY": "${input:sendmux-mailbox-key}"
      }
    }
  },
  "inputs": [
    {
      "type": "promptString",
      "id": "sendmux-mailbox-key",
      "description": "Sendmux mailbox API key",
      "password": true
    }
  ]
}
Run Codex with SENDMUX_API_KEY already set, then use env_vars so the value stays outside the config file.
[mcp_servers.sendmux_mailbox]
command = "sendmux-mcp-mailbox"
env_vars = ["SENDMUX_API_KEY"]
Add this to ~/.codeium/windsurf/mcp_config.json.
{
  "mcpServers": {
    "sendmux-mailbox": {
      "command": "sendmux-mcp-mailbox",
      "env": {
        "SENDMUX_API_KEY": "smx_mbx_..."
      }
    }
  }
}
Add this through the Cline MCP settings JSON or ~/.cline/mcp.json.
{
  "mcpServers": {
    "sendmux-mailbox": {
      "command": "sendmux-mcp-mailbox",
      "env": {
        "SENDMUX_API_KEY": "smx_mbx_..."
      },
      "disabled": false,
      "autoApprove": []
    }
  }
}
Add this to the Roo MCP settings JSON.
{
  "mcpServers": {
    "sendmux-mailbox": {
      "command": "sendmux-mcp-mailbox",
      "env": {
        "SENDMUX_API_KEY": "smx_mbx_..."
      },
      "disabled": false,
      "alwaysAllow": []
    }
  }
}
Add this to Gemini CLI settings.json.
{
  "mcpServers": {
    "sendmux-mailbox": {
      "command": "sendmux-mcp-mailbox",
      "env": {
        "SENDMUX_API_KEY": "$SENDMUX_MBX_KEY"
      },
      "trust": false
    }
  }
}
Add this to .qwen/settings.json or ~/.qwen/settings.json.
{
  "mcpServers": {
    "sendmux-mailbox": {
      "command": "sendmux-mcp-mailbox",
      "env": {
        "SENDMUX_API_KEY": "$SENDMUX_MBX_KEY"
      },
      "trust": false
    }
  }
}
Add this to .kiro/settings/mcp.json or ~/.kiro/settings/mcp.json.
{
  "mcpServers": {
    "sendmux-mailbox": {
      "command": "sendmux-mcp-mailbox",
      "args": [],
      "env": {
        "SENDMUX_API_KEY": "${SENDMUX_MBX_KEY}"
      },
      "disabled": false
    }
  }
}
Add this to opencode.json.
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "sendmux-mailbox": {
      "type": "local",
      "command": ["sendmux-mcp-mailbox"],
      "environment": {
        "SENDMUX_API_KEY": "smx_mbx_..."
      },
      "enabled": true
    }
  }
}
Add this to Zed settings.
{
  "context_servers": {
    "sendmux-mailbox": {
      "command": "sendmux-mcp-mailbox",
      "args": [],
      "env": {
        "SENDMUX_API_KEY": "smx_mbx_..."
      }
    }
  }
}
Paste this as an MCP server JSON snippet in Settings > Agents > MCP servers.
{
  "mcpServers": {
    "sendmux-mailbox": {
      "command": "sendmux-mcp-mailbox",
      "args": [],
      "env": {
        "SENDMUX_API_KEY": "smx_mbx_..."
      }
    }
  }
}
Go to Settings > Tools > AI Assistant > Model Context Protocol (MCP) and add this JSON configuration over STDIO.
{
  "mcpServers": {
    "sendmux-mailbox": {
      "command": "sendmux-mcp-mailbox",
      "args": [],
      "env": {
        "SENDMUX_API_KEY": "smx_mbx_..."
      }
    }
  }
}
Create .continue/mcpServers/sendmux-mailbox.yaml.
name: Sendmux mailbox MCP
version: 0.0.1
schema: v1
mcpServers:
  - name: Sendmux mailbox
    type: stdio
    command: sendmux-mcp-mailbox
    env:
      SENDMUX_API_KEY: smx_mbx_...
copilot mcp add sendmux-mailbox \
  --env SENDMUX_API_KEY=smx_mbx_... \
  -- sendmux-mcp-mailbox

Private HTTP clients

Start a local HTTP MCP server:
SENDMUX_API_KEY=smx_mbx_... \
SENDMUX_MCP_HTTP_BEARER_TOKEN=local-mcp-token \
sendmux-mcp-mailbox --transport http --host 127.0.0.1 --port 8765
Use http://127.0.0.1:8765/mcp as the client URL.
claude mcp add sendmux-local \
  --transport http \
  --header "Authorization: Bearer local-mcp-token" \
  http://127.0.0.1:8765/mcp
{
  "mcpServers": {
    "sendmux-local": {
      "url": "http://127.0.0.1:8765/mcp",
      "headers": {
        "Authorization": "Bearer local-mcp-token"
      }
    }
  }
}
{
  "servers": {
    "sendmux-local": {
      "type": "http",
      "url": "http://127.0.0.1:8765/mcp",
      "headers": {
        "Authorization": "Bearer ${input:sendmux-mcp-token}"
      }
    }
  },
  "inputs": [
    {
      "type": "promptString",
      "id": "sendmux-mcp-token",
      "description": "Sendmux local MCP bearer token",
      "password": true
    }
  ]
}
[mcp_servers.sendmux_local]
url = "http://127.0.0.1:8765/mcp"
bearer_token_env_var = "SENDMUX_MCP_HTTP_BEARER_TOKEN"
{
  "mcpServers": {
    "sendmux-local": {
      "serverUrl": "http://127.0.0.1:8765/mcp",
      "headers": {
        "Authorization": "Bearer local-mcp-token"
      }
    }
  }
}
{
  "mcpServers": {
    "sendmux-local": {
      "url": "http://127.0.0.1:8765/mcp",
      "headers": {
        "Authorization": "Bearer local-mcp-token"
      },
      "disabled": false,
      "autoApprove": []
    }
  }
}
{
  "mcpServers": {
    "sendmux-local": {
      "type": "streamable-http",
      "url": "http://127.0.0.1:8765/mcp",
      "headers": {
        "Authorization": "Bearer local-mcp-token"
      },
      "disabled": false,
      "alwaysAllow": []
    }
  }
}
{
  "mcpServers": {
    "sendmux-local": {
      "httpUrl": "http://127.0.0.1:8765/mcp",
      "headers": {
        "Authorization": "Bearer local-mcp-token"
      },
      "trust": false
    }
  }
}
{
  "mcpServers": {
    "sendmux-local": {
      "httpUrl": "http://127.0.0.1:8765/mcp",
      "headers": {
        "Authorization": "Bearer local-mcp-token"
      },
      "trust": false
    }
  }
}
{
  "mcpServers": {
    "sendmux-local": {
      "url": "http://127.0.0.1:8765/mcp",
      "headers": {
        "Authorization": "Bearer local-mcp-token"
      },
      "disabled": false
    }
  }
}
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "sendmux-local": {
      "type": "remote",
      "url": "http://127.0.0.1:8765/mcp",
      "oauth": false,
      "headers": {
        "Authorization": "Bearer local-mcp-token"
      },
      "enabled": true
    }
  }
}
{
  "context_servers": {
    "sendmux-local": {
      "url": "http://127.0.0.1:8765/mcp",
      "headers": {
        "Authorization": "Bearer local-mcp-token"
      }
    }
  }
}
{
  "mcpServers": {
    "sendmux-local": {
      "url": "http://127.0.0.1:8765/mcp",
      "headers": {
        "Authorization": "Bearer local-mcp-token"
      }
    }
  }
}
Warp cloud agents should use a reachable private HTTPS endpoint, not a loopback URL on your laptop.
Use the HTTP option in the MCP settings.
{
  "mcpServers": {
    "sendmux-local": {
      "url": "http://127.0.0.1:8765/mcp",
      "headers": {
        "Authorization": "Bearer local-mcp-token"
      }
    }
  }
}
Create .continue/mcpServers/sendmux-local.yaml.
name: Sendmux local MCP
version: 0.0.1
schema: v1
mcpServers:
  - name: Sendmux local
    type: streamable-http
    url: http://127.0.0.1:8765/mcp
    headers:
      Authorization: Bearer local-mcp-token
LM Studio follows Cursor’s mcp.json notation. Open Program > Install > Edit mcp.json and add:
{
  "mcpServers": {
    "sendmux-local": {
      "url": "http://127.0.0.1:8765/mcp",
      "headers": {
        "Authorization": "Bearer local-mcp-token"
      }
    }
  }
}
copilot mcp add --transport http \
  --header "Authorization: Bearer local-mcp-token" \
  sendmux-local http://127.0.0.1:8765/mcp
Use repository-level MCP settings with a private HTTPS endpoint that the cloud agent can reach. Store the bearer token as an Agents secret or variable whose name starts with COPILOT_MCP_.
{
  "mcpServers": {
    "sendmux": {
      "type": "http",
      "url": "https://your-private-mcp.example.com/mcp",
      "headers": {
        "Authorization": "Bearer $COPILOT_MCP_SENDMUX_MCP_TOKEN"
      },
      "tools": ["*"]
    }
  }
}
GitHub Copilot coding agent does not support remote MCP servers that require OAuth. Do not point it at the hosted Sendmux OAuth endpoint.

Verify the connection

1

Reconnect the server

Restart or reconnect the MCP server in the client.
2

Check the tools

Open the client’s MCP server list or tool picker and confirm Sendmux tools appear.
3

Select a mailbox when needed

For a hosted multi-mailbox grant, call mailbox_list_granted_mailboxes before mailbox-specific work.
4

Check private HTTP auth

For private HTTP, confirm the client sends Authorization: Bearer local-mcp-token.

Next steps

MCP overview

Compare Documentation MCP, hosted Product MCP, local stdio, and private HTTP.

API keys

Create mailbox and root keys for local MCP.

Agent skills

Teach AI coding agents the Sendmux workflows and efficient defaults.

CLI

Run Sendmux workflows from your terminal.