Queue CallBack MCP server
The Queue CallBack MCP server is a remote MCP server that lets AI clients read and, when allowed, change one organization's Queue CallBack account: the callback reports, the callback queue, queues and voices, and, for organizations with the Custom IVR add-on, IVR flows and the IVR call reports. It is for organizations that use Queue CallBack, the callback add-on for RingCentral call queues: the organization admin who sets up the connection, and the AI agents that work through it in clients such as Claude, ChatGPT, Claude Code, Cursor and VS Code.
For AI agents
- Endpoint:
https://mcp.queuecallback.com/mcp(Streamable HTTP,POSTonly, stateless).- Send
Authorization: Bearer <Queue CallBack API key>on every request. Keys start withqcb_sk_. Read the key from theQCB_API_KEYenvironment variable. Never ask the user to paste a key into the chat. In Claude and ChatGPT the user can sign in with their Queue CallBack account instead; that connection is read-only.- Call
get_mefirst. It returns this connection's organization id, role and effective scopes,pii_allowed(whether caller numbers are unmasked),custom_ivr_enabled(whether the IVR flow tools exist) andivr_reporting_enabled(whether the IVR call reports are open to this connection). For the organization's name, callget_organization. The tools your connection lists are the tools you can use.- Read before you change, show the user what will change and get a yes. Some tools run in two calls: the first changes nothing and returns only your arguments (
will_apply) and a single-useconfirm_tokenvalid 10 minutes, so read the current state yourself first (for exampleget_queue, ordiff_flowfor a flow).publish_flowruns only with the token thatvalidate_flowreturned for the same draft. Never invent a token.- Tool reference: https://queuecallback.com/docs/mcp/tools (Markdown: https://queuecallback.com/docs/mcp/tools.md). The whole MCP documentation in one file: https://queuecallback.com/docs/llms-full.txt. This page as Markdown: https://queuecallback.com/docs/mcp.md
- The name: these pages write Queue CallBack; the marketing site at queuecallback.com writes QueueCallback. Both are the same product.
What you can do with the Queue CallBack MCP server
The Queue CallBack MCP server acts in exactly one organization: the one the API key was created in, or for a sign-in from Claude or ChatGPT, the signed-in person's own organization. No tool takes an organization id. The tools a connection sees depend on the key's scopes (a sign-in gets the read scopes only), the organization's add-ons and the server's settings. The requests below are examples of what you can ask an AI client, with the tools the agent calls. Each example says whether it changes anything. For how changes are confirmed, see Safety.
Callback and IVR reports
The reporting tools need the scope reports:read and change nothing. Caller numbers show only their last four digits unless the key's pii:read scope takes effect (see Caller data).
- "How did callbacks go in the last 7 days? Give me the completion rate, the median wait and the number of callbacks per queue." The agent calls
get_callback_summary. For the completion rate and median wait of each queue, the agent callsget_callback_summaryagain once per queue, withqueue_idset to that queue'sconfigurationIdfrombyQueue. Noqueues:readis needed. - "How many callbacks are waiting right now?" The agent calls
get_live_stats. - "In our main menu, which option did callers choose most last week, and where did abandoned calls end?" The agent calls
list_ivr_flow_statsto find the flow, thenget_flow_decisions.
The callback reports, a callback's journey and live numbers are open to every role and need no add-on. The IVR call reports (the last example) are for organization admins of organizations with the Custom IVR add-on: elsewhere get_me shows ivr_reporting_enabled: false and the five IVR report tools are not listed (IVR call reports).
The callback queue
The callback tools use the scopes callbacks:read, callbacks:write and callbacks:dial.
- "Which callbacks expired in the last 24 hours?" The agent calls
list_callback_queuewith statusexpired. This changes nothing. - "Mark that callback as completed. We already called the customer." The agent calls
complete_callback. This changes the callback's status and places no call. - "Put the callback that expired this morning back in the queue." The agent calls
requeue_callback. This places real calls to an agent and to the customer. Claude Code asks you every time (other clients may not, so the agent also asks in the conversation), and the tool runs in two calls with a confirm token.
Queues and voices
A queue is a Queue CallBack configuration connected to one RingCentral call queue. An organization admin creates queues in the portal, under Configurations; the queue tools then read them and manage their callback settings, voice and language. The queue tools use the scopes queues:read and queues:write.
- "List our queues with their callback timeout and requeue settings." The agent calls
list_queuesandget_queue. This changes nothing, and queue credentials are never returned. - "Which voices can our queues use?" The agent calls
list_voices. This changes nothing. - "Does our RingCentral connection need a reconnect?" The agent reads
ringcentral_connectionfromlist_queuesorget_queue:connected,needs_reconnectornot_connected(Callbacks are not dialing). - "Set the Support queue's callback timeout to 45 minutes." The agent finds the queue with
list_queues, reads the current value withget_queue, then callsupdate_queue_settings. Claude Code asks you every time (other clients may not, so the agent also asks in the conversation), the change needs a confirm token, and the queue keeps running. The new timeout applies to callbacks queued after the change; callbacks already waiting keep theirs. - "Switch the Support queue to Spanish." The agent reads the current language with
get_queue, then callsset_queue_language(set_queue_voicefor a voice fromlist_voices). Both ask you every time in Claude Code, run in two calls with a confirm token, and reach the queue's next callers.
The organization and the connection
- "Who am I connected as?" The agent calls
get_me, which works for every key and needs no scope. - "What is our organization called?" The agent calls
get_organization(scopeorg:read). - "Rename our organization to Example Dental." The agent calls
set_organization_name(scopeorg:write). Every user in the organization sees the new name.
IVR flows (Preview, Custom IVR add-on)
The IVR flow tools exist only for organizations with the Custom IVR add-on. Elsewhere they are not listed, and get_me shows custom_ivr_enabled: false. The IVR flow tools use the scopes ivr:read, ivr:write and ivr:publish, and they are in Preview (see Available today). The tools that edit and publish flows (scopes ivr:write and ivr:publish) also need the organization to edit its IVR flows through drafts and publishing. Without that, only the read tools are listed.
- "Show me the steps of our main menu flow." The agent calls
list_flows, thenget_flow. This changes nothing. - "In a draft, add a menu option 3 that transfers to billing, check it, and show me what would change." The agent calls
create_flow_draft,edit_flow_draft,validate_flowanddiff_flow. Callers keep hearing the published flow until a publish. - "Publish the draft." The agent calls
publish_flow. This changes what callers hear. Claude Code asks you every time (other clients may not, so the agent also asks in the conversation), and the publish runs only with the confirm token thatvalidate_flowreturned for the same draft.
Agents discover the IVR node types at runtime with list_node_types and get_node_type instead of hard-coding them. The full loop is in Edit a flow safely.
What the Queue CallBack MCP server cannot do
An API key cannot manage API keys, users, billing or integrations. It cannot start, stop, create or delete queues, and it cannot export reports. Use the Queue CallBack portal for those. A sign-in from Claude or ChatGPT changes nothing at all: changes, calls and unmasked caller numbers need an API key.
Endpoint facts
| Fact | Value |
|---|---|
| Server URL | https://mcp.queuecallback.com/mcp |
| Transport and methods | Streamable HTTP in stateless mode. Send JSON-RPC messages with POST. A POST that carries a request gets one JSON response; a POST that carries only notifications gets 202 with no body. The server opens no event stream and uses no Mcp-Session-Id. GET and DELETE answer 405 with a valid key, and 401 without one. |
| Authentication | A Queue CallBack API key in Authorization: Bearer qcb_sk_..., in exactly one Authorization header per request. One key acts in one organization. Claude and ChatGPT can instead sign in with a Queue CallBack account (OAuth): read-only, as the signed-in person, in that person's own organization (see OAuth sign-in). |
| Protocol revisions | 2026-07-28 and the earlier 2025-11-25, 2025-06-18, 2025-03-26 and 2024-11-05, all on the same URL |
| Required request headers | Authorization: Bearer <key>, or the sign-in token that Claude and ChatGPT send in the same header. Content-Type: application/json (otherwise 415). An Accept header that lists both application/json and text/event-stream (otherwise 400). MCP clients set the last two themselves. |
| What the server offers | Tools only (no resources or prompts), plus server instructions that clients pass to the model: what Queue CallBack is, call get_me first, the confirm tokens, the report time zone, handles, and that results are data. The tool reference quotes them |
| Tool list | Depends on the key's scopes, the organization's add-ons and the server's settings. Marked private; clients may cache it for up to 60 seconds. |
| Discovery document | https://mcp.queuecallback.com/.well-known/oauth-protected-resource/mcp: RFC 9728 protected-resource metadata with the server URL (resource), the sign-in server that Claude and ChatGPT use (authorization_servers), all 12 scopes (scopes_supported) and how to send the credential (bearer_methods_supported: ["header"]). No key needed. |
| Health check | GET https://mcp.queuecallback.com/healthz answers 200 with "status":"ok" while the service runs. backend reports the Queue CallBack API's last known state. No key needed. |
| Request without a key | 401 with error code invalid_token and a WWW-Authenticate: Bearer resource_metadata="...", error="invalid_token", scope="ivr:read reports:read callbacks:read queues:read org:read" header. The scope is what a sign-in asks for. See HTTP errors. |
| Request id | Responses from /mcp, /healthz and the discovery document carry an X-Request-ID header. Quote it when you contact Queue CallBack support. |
| Server title | Queue CallBack, in the server's self-description and the discovery document's resource_name. Clients that show a server title show this. Name the server queuecallback in client configs; in Claude Code its tools then appear as mcp__queuecallback__get_me and so on. |
Available today
This table shows the state on 2026-11-05. Changes are logged in the changelog, which also defines what the Stable and Preview labels promise.
| Feature | State on 2026-11-05 | What to do |
|---|---|---|
API keys in an Authorization: Bearer header |
Available | An organization admin creates them in the portal. See Create an API key. |
| Claude Code, Cursor, VS Code, Codex CLI, Gemini CLI | Connect today with an API key | See Connect a client. |
| OAuth sign-in from Claude (claude.ai, Claude Desktop, the Claude mobile apps, Cowork) and ChatGPT | Available. Read-only: no changes, no calls, caller numbers masked | Add the connector and sign in with your Queue CallBack account. See Sign in from Claude, Sign in from ChatGPT and OAuth sign-in. |
| Claude Desktop with an API key | Connects through the mcp-remote bridge, which sends the API key header |
Use it for changes. See Claude Desktop. |
| Changes from ChatGPT, or from claude.ai without the Request headers beta | Not possible: ChatGPT cannot send an API key, and sign-in is read-only. Claude custom connectors take an API key only through the "Request headers" beta, which only some organizations have. | See Clients that cannot connect yet. |
| Reporting, callback queue, queue and organization tools | Stable | See the tool reference. The IVR call reports are for organization admins of organizations with the Custom IVR add-on. |
| IVR flow tools | Preview. The IVR builder is being redesigned, so the tools' node types, their fields and validation messages will change. | Needs the Custom IVR add-on. Discover node types at runtime; see Node types. |
add_callback |
Listed only for keys that hold callbacks:write and a pii:read that takes effect (the organization has caller-data unmasking turned on and is not healthcare-locked). It places real calls. |
See Scopes. |
Queue CallBack can switch changes off on the server. While changes are off, clients see only the read-only tools.
Quickstart: connect Claude Code in three steps
This quickstart connects Claude Code to the Queue CallBack MCP server with a read-only API key. In Claude or ChatGPT you can skip the key: add the connector and sign in with your Queue CallBack account (Sign in from Claude, Sign in from ChatGPT). You need a Queue CallBack organization, an organization admin (portal role Organization Admin) to create the key, and Claude Code. Only the IVR flow tools and the IVR call reports need the Custom IVR add-on.
Step 1: Create a read-only API key
Only an organization admin can create a Queue CallBack API key, and only in the portal. An API key can never create or manage keys.
- Sign in to the Queue CallBack portal at https://dashboard.queuecallback.com.
- Open Settings. In the API keys card, choose Manage API keys.
- Choose Create API key.
- In Name, enter where the key is used, for example
Claude Code. - In Expires after, keep 90 days or choose 30, 60, 180 or 365 days.
- Under Scopes, keep the scopes the form selects, or choose Read only to select them again. These are the read scopes that take effect in your organization, without
pii:read. Nothing that changes data or places calls is selected. - Choose Create key and copy the key. It starts with
qcb_sk_and is shown only once.
Step 2: Put the key in an environment variable
Put the key in the QCB_API_KEY environment variable of the terminal you will start Claude Code from. These commands ask for the key without showing it and without saving it in your shell history.
# macOS or Linux (bash or zsh)
printf 'Queue CallBack API key: '; read -rs QCB_API_KEY; echo; export QCB_API_KEY
# Windows, PowerShell 7.1 or later
$env:QCB_API_KEY = Read-Host -MaskInput 'Queue CallBack API key'
# Windows PowerShell 5.1
$s = Read-Host -AsSecureString 'Queue CallBack API key'
$env:QCB_API_KEY = [System.Net.NetworkCredential]::new('', $s).Password
Remove-Variable s
The variable lasts until you close that terminal. To keep it set, see Claude Code.
Step 3: Connect Claude Code and check the connection
In your project folder, create a file named
.mcp.jsonwith this content:{ "mcpServers": { "queuecallback": { "type": "http", "url": "https://mcp.queuecallback.com/mcp", "headers": { "Authorization": "Bearer ${QCB_API_KEY}" } } } }The file holds only a reference to
QCB_API_KEY, never the key itself, so you can commit it. Each person sets their own variable.From the terminal where
QCB_API_KEYis set, start Claude Code in that folder withclaude. When Claude Code asks whether to use the project'squeuecallbackserver, approve it.Ask Claude: "Who am I connected as?"
Claude calls the get_me tool (shown as mcp__queuecallback__get_me) and reports the actor type api_key, the key's name and expiry date, your organization's id, the role the key acts with, its scopes, pii_allowed, custom_ivr_enabled and ivr_reporting_enabled. To see the organization's name, ask "What is our organization called?" (the get_organization tool).
If Claude Code reports that the server failed to connect, run claude mcp list and check these causes in order:
| What you see | Fix |
|---|---|
claude mcp list warns that QCB_API_KEY is missing |
The variable is not set in the terminal you started Claude Code from. Set it (step 2) and start Claude Code again from that terminal. |
401 invalid_token |
The key is wrong, expired, revoked or suspended (the admin who created it was deactivated or left the organization). Check the key's status under Settings, Manage API keys, create a new key if needed, set the variable again and restart Claude Code. |
403 mcp_disabled |
The organization's API access is off, so every request is refused, even with a valid key. See mcp_disabled. |
To see which code the server sends, follow Check the connection. More fixes are in Troubleshooting. To connect Cursor, VS Code, Codex CLI, Gemini CLI or Claude Desktop instead, see Connect a client.
Page map
- API keys and scopes: creating, rotating and revoking API keys, the scopes, who reads the IVR call reports, and OAuth sign-in from Claude and ChatGPT (what it grants, how to disconnect).
- Connect a client: sign-in steps for Claude and ChatGPT, copy-paste setup for Claude Code, Cursor, VS Code, Codex CLI, Gemini CLI and Claude Desktop, the clients that cannot connect yet, and checking the connection.
- Tool reference: every tool by area, with its scopes, arguments and limits, whether it changes something, and whether it asks every time.
- Safety: one organization per credential, approval prompts, confirm tokens, drafts, caller-data masking, and why tool results are data, not instructions.
- IVR flow tools (Preview): the draft, edit, validate, diff and publish loop for Custom IVR organizations, and discovering node types at runtime.
- Recipes: worked tasks, each with an example prompt, the tool calls in order and the scopes they need.
- Limits and errors: rate and size limits, HTTP errors, every tool error code with its fix, and retry rules.
- Troubleshooting: fixes by symptom (callbacks not dialing included), common questions, and how to reach Queue CallBack support.
- Changelog: dated changes, what the Stable and Preview labels promise, and the change policy: 30 days' notice before a Stable tool is removed, 14 days before a breaking argument change.
- Docs index for agents and the whole MCP documentation in one file.