MCP server
One remote MCP server. Every account you connect.
Add Prubex once and your agent reaches every mailbox and calendar in your workspace, with the same 61 tools everywhere (ChatGPT also gets its own search and fetch). Clients sign in with OAuth or send an API key; either way you choose what they may do.
Server URL
https://mcp.prubex.com/mcp- Streamable HTTP
- OAuth 2.1 with PKCE
- API keys
- In the MCP Registry: com.prubex/prubex
Set up your client
Pick your client. Each guide also has its own page with notes.
To connect Claude to your email and calendars, add Prubex as a custom connector and sign in through Prubex. You choose what Claude may do and which accounts it reaches, and the connector then works in every Claude app you use.
In Claude, open Settings, then Connectors, and choose to add a custom connector.
Name it Prubex and paste this URL:
https://mcp.prubex.com/mcpChoose Connect. Claude opens Prubex: sign in, choose what it may do (Assistant is recommended) and which accounts it reaches, then choose Allow. Leave “Ask me before it sends anything” on, and sends wait for your approval in Prubex.
Back in Claude, ask something like “What came in from Ana this week?”. Sends come back as “waiting for approval” until you approve them in Prubex.
To connect Claude Code to your email and calendars, add Prubex as an HTTP MCP server at https://mcp.prubex.com/mcp. Sign in through the browser, or use an API key made in Prubex under Agents & keys.
Add the server:
claude mcp add --transport http prubex https://mcp.prubex.com/mcpIn Claude Code, run /mcp, choose prubex and authenticate: your browser opens Prubex’s consent screen.
Or, with an API key instead of signing in:
claude mcp add --transport http prubex https://mcp.prubex.com/mcp --header "Authorization: Bearer pbx_live_YOUR_KEY"
To connect ChatGPT to your email and calendars, add Prubex as a connector and sign in through Prubex. ChatGPT also gets search and fetch, the two tools deep research uses to read across your mail and calendars.
In ChatGPT, open Settings, then Apps and connectors. If adding your own needs it, turn on developer mode under Advanced settings.
Create a connector named Prubex with this URL and OAuth sign-in:
https://mcp.prubex.com/mcpChatGPT opens Prubex: sign in, choose a preset and accounts, then Allow. Prubex shows ChatGPT as verified when it signs in with its published identity.
Use it in a chat, or in deep research: “Find every invoice from Contoso this quarter and summarise them.”
To connect Cursor to your email and calendars, add Prubex to Cursor’s MCP settings with an API key made in Prubex. Cursor’s agent then works across every account you connect, with your approval rules applied.
pbx_live_YOUR_KEY with your key in Cursor’s MCP settings.Create an API key in Prubex under Agents & keys. Choose Assistant and keep “Require approval for every send” on: sends then wait for your approval.
Create an API keyAdd this to
~/.cursor/mcp.json(or the project’s.cursor/mcp.json), replacingpbx_live_YOUR_KEYwith your key:{ "mcpServers": { "prubex": { "url": "https://mcp.prubex.com/mcp", "headers": { "Authorization": "Bearer pbx_live_YOUR_KEY" } } } }Open Cursor’s settings, then MCP, and check that prubex shows its tools.
To connect VS Code to your email and calendars, add Prubex as a remote MCP server in mcp.json. GitHub Copilot’s agent mode can sign in through Prubex, or send an API key.
Add this to .vscode/mcp.json in your project (or your user mcp.json):
{ "servers": { "prubex": { "type": "http", "url": "https://mcp.prubex.com/mcp" } } }Start the server from the file’s code lens. VS Code asks to sign in, and opens Prubex’s consent screen.
Or send an API key instead:
{ "servers": { "prubex": { "type": "http", "url": "https://mcp.prubex.com/mcp", "headers": { "Authorization": "Bearer pbx_live_YOUR_KEY" } } } }
To connect Windsurf to your email and calendars, add Prubex to Cascade’s MCP settings with an API key made in Prubex under Agents & keys. Cascade then works across every account you connect, with your approval rules applied.
Create an API key in Prubex under Agents & keys. Choose Assistant and keep “Require approval for every send” on: sends then wait for your approval.
Create an API keyAdd this to
~/.codeium/windsurf/mcp_config.json, replacingpbx_live_YOUR_KEYwith your key:{ "mcpServers": { "prubex": { "serverUrl": "https://mcp.prubex.com/mcp", "headers": { "Authorization": "Bearer pbx_live_YOUR_KEY" } } } }Refresh the MCP servers in Cascade and check that prubex lists its tools.
To use your email and calendars in n8n, give an AI Agent node Prubex’s tools through the MCP Client Tool node, with an API key. The agent then reaches every account you connect, with your approval rules applied.
Create an API key in Prubex under Agents & keys. Choose Assistant and keep “Require approval for every send” on: sends then wait for your approval.
Create an API keyAdd an MCP Client Tool node to your AI Agent.
Set the endpoint to this URL, with the HTTP Streamable transport:
https://mcp.prubex.com/mcpChoose Bearer authentication and paste a key made in Prubex under Agents & keys.
Authorization: Bearer pbx_live_YOUR_KEY
To use Prubex without MCP, call the REST API under https://prubex.com/api/v1 with the same API keys, permissions and approvals. Every MCP tool is an endpoint, and the OpenAPI description lists every route.
Create an API key in Prubex under Agents & keys. Choose Assistant and keep “Require approval for every send” on: sends then wait for your approval.
Create an API keyList the accounts a key reaches, replacing
pbx_live_YOUR_KEYwith your key:curl -s https://prubex.com/api/v1/accounts \ -H "Authorization: Bearer pbx_live_YOUR_KEY"Read the OpenAPI description, to generate a client or import into a tool:
https://prubex.com/openapi.json
The tools
Every tool takes the same arguments on every provider, reads span all your accounts, and every call checks your rules before it touches a mailbox. The most used are listed to every client; the rest are found with search_tools.
Mail26
- mail_searchSearch mail across accounts
- mail_list_messagesList messages in a folder
- mail_get_messageRead a message
- mail_get_threadRead a conversation
- mail_list_changesWhat's new since I last looked
- mail_list_foldersList folders and labels
- mail_get_attachmentGet an attachment
- mail_sendSend an email
- mail_replyReply to an email
- mail_forwardForward an email
- mail_create_draftCreate a draft
- mail_send_draftSend a draft
- mail_validate_sendCheck whether a send is allowed
- mail_moveMove a message to a folder
- mail_archiveArchive a message
- mail_trashMove a message to Trash
- mail_mark_readMark read or unread
- mail_flagFlag or star a message
- mail_list_draftsList drafts
- mail_update_draftEdit a draft
- mail_delete_draftDiscard a draft
- mail_list_labelsList labels and categories
- mail_set_labelsAdd or remove labels
- mail_create_folderCreate a folder
- mail_rename_folderRename a folder
- mail_get_rawGet the raw source of a message
Calendar11
- calendar_list_calendarsList calendars
- calendar_list_eventsList events across calendars
- calendar_get_eventGet an event
- calendar_create_eventCreate an event
- calendar_update_eventChange an event
- calendar_delete_eventDelete or cancel an event
- calendar_respond_to_eventAccept or decline an invitation
- calendar_get_free_busyGet free/busy times
- calendar_find_meeting_timesFind meeting times
- calendar_get_agendaDay or week agenda
- calendar_list_event_instancesOccurrences of a recurring event
Accounts and profiles14
- accounts_listList connected accounts
- accounts_getGet one account
- accounts_get_all_accounts_healthHealth of every account
- accounts_get_account_healthHealth of one account
- accounts_generate_connect_linkLink to connect a new account
- accounts_move_account_to_profileMove an account to a profile
- accounts_pausePause an account
- accounts_resumeResume a paused account
- profiles_listList profiles
- profiles_getGet one profile
- profiles_createCreate a profile
- profiles_updateRename or recolour a profile
- profiles_deleteDelete a profile
- policies_getRead an account's sending policy
Approvals, uploads and help10
- prubex_overviewOverview of your Prubex access
- search_toolsFind a tool
- call_toolRun a tool found by search_tools
- docs_searchSearch the Prubex docs
- approvals_listList approval requests
- approvals_getCheck an approval request
- approvals_cancelWithdraw an approval request
- attachments_generate_upload_linkLink for the user to upload files
- attachments_check_upload_statusCheck an upload
- usage_get_usageUsage and estimated cost
Built so an agent can’t surprise you
- Each key or connected app has its own scopes and accounts.
- Sends wait for approval by default; agents see “waiting for approval”, not an error.
- Content from mail and calendars is marked as untrusted for the agent, and every call is logged.