---
title: Changelog and change policy
description: Dated changes to the Queue CallBack MCP server, what the Stable and Preview labels promise, and the notice before a tool is removed or broken.
status: Stable
last_updated: 2026-11-06
canonical: https://queuecallback.com/docs/mcp/changelog
---

# Changelog and change policy

This page lists every change to the Queue CallBack MCP server that a client can see, newest first, starting with the launch on 2026-10-31. It also says what the Stable and Preview labels promise, and the notice before a change: at least 30 days before a Stable tool is removed, at least 14 days before a breaking change to a Stable tool's arguments, and none for Preview tools, which can change at any time.

> For AI agents: this page is also available as Markdown at `https://queuecallback.com/docs/mcp/changelog.md`. The whole MCP documentation in one file: https://queuecallback.com/docs/llms-full.txt

## How to read the changelog

- Each entry is dated in UTC. The date is the day the change reached the hosted Queue CallBack MCP server at `https://mcp.queuecallback.com/mcp`.
- Entries are grouped under **Added**, **Changed**, **Deprecated**, **Removed** and **Fixed**. An entry shows only the groups it needs. The launch entry also has **Not available at launch**, for what was built but not switched on.
- Only changes a client can see are listed: tools, arguments, results, scopes, error codes, limits, the server instructions and the way the server answers requests. Changes inside the service that clients cannot see are not listed.
- Entries are dated, not numbered. The server also reports a build identifier. It is not a compatibility signal: it stays the same when Queue CallBack switches a feature on or off or changes the Queue CallBack API behind the server, and it can change when nothing visible to clients changed. This page is the record of changes.

## Changes

### 2026-11-06: IVR call reports for organization admins, and the RingCentral connection

**Changed**

- The five IVR report tools (`get_ivr_summary`, `list_ivr_calls`, `get_ivr_call`, `get_flow_decisions` and `list_ivr_flow_stats`) are now for organization admins of organizations with the Custom IVR add-on, or of organizations that keep IVR reporting for a time after the add-on lapsed. For every other credential they are not listed, and a call to one by name is refused with [`ivr_reporting_not_enabled`](/docs/mcp/errors#ivr_reporting_not_enabled) before anything is read. `reports:read` still opens the callback reports (`get_live_stats`, `get_callback_summary`, `list_callbacks` and `get_callback_journey`) to every role. See [IVR call reports](/docs/mcp/access#ivr-call-reports).
- The User role no longer holds `ivr:read`, so a User's sign-in lists no IVR flow tool. An API key whose creating admin becomes a User loses `ivr:read` as well. Keys and sign-ins of organization admins are unchanged. See [Roles](/docs/mcp/access#roles).
- The edge in front of the server answers its per-address request limit as a JSON-RPC error, like the server's own HTTP-level answers: HTTP 429, `error.data.code` `rate_limited` and `Retry-After: 1`. Before, it answered an HTML page without `Retry-After`. See [HTTP errors](/docs/mcp/errors#http-errors).

**Added**

- The `ivr_reporting_enabled` field in the `get_me` result. It says whether this credential can read the IVR call reports. See [`get_me`](/docs/mcp/tools#get_me).
- The tool error [`ivr_reporting_not_enabled`](/docs/mcp/errors#ivr_reporting_not_enabled).
- The `ringcentral_connection` field on each `list_queues` item and in the `get_queue` result: `connected`, `needs_reconnect` or `not_connected`. It is the organization's RingCentral connection, which all of its queues share, and it is left out when it cannot be read. See [`list_queues`](/docs/mcp/tools#list_queues) and [`get_queue`](/docs/mcp/tools#get_queue).
- A code on every `add_callback` refusal: `invalid_request`, `invalid_callback_number`, `callback_number_outside_country`, `queue_not_found`, `queue_not_running`, `queue_without_extension`, `callback_already_waiting` (with `details.callback_id`), `manual_callback_limit_reached` and `callback_queue_unavailable`. `manual_callback_limit_reached` also carries `Retry-After` and `retry_after_seconds` when the server can tell when a callback can be added again. See [Callbacks and reporting](/docs/mcp/errors#callbacks-and-reporting).
- The tool error [`invalid_timezone`](/docs/mcp/errors#invalid_timezone), for a `get_live_stats` time zone that is not an IANA time zone name.

**Fixed**

- `get_live_stats` counts today from local midnight to the next local midnight in `tz`. Before, today started at midnight UTC of the local date, so in America/New_York the evening's callbacks were missing, and east of UTC part of yesterday was counted. `todayStart`, `todayEnd` and `localTime` now carry the zone's offset. An unknown time zone is refused with `invalid_timezone` instead of failing, and an organization with no callbacks yet gets zeros instead of an error. See [`get_live_stats`](/docs/mcp/tools#get_live_stats).
- `list_callback_queue` with `status` `active` and no `time_range` lists every open callback, however long ago it was created. Before, it read only the last 24 hours. `total` and `totalPages` now count the same window as the list. See [`list_callback_queue`](/docs/mcp/tools#list_callback_queue).

### 2026-11-06: queue voice and language changes, the Queue CallBack name and clearer answers

**Added**

- `set_queue_voice` and `set_queue_language` are available on the hosted server. They were in the catalog from the launch but switched off. Both work in two calls with a confirm token, ask the user on every call, and reach the queue's next call. See [`set_queue_voice`](/docs/mcp/tools#set_queue_voice) and [`set_queue_language`](/docs/mcp/tools#set_queue_language).
- The `tz` argument of `get_live_stats`, the name the other reporting tools use. See [`get_live_stats`](/docs/mcp/tools#get_live_stats).
- `confirm_token_spent` and `next_step` in the error object. A call that fails after its confirm token was used says so, where the new token comes from and, for `requeue_callback`, which `idempotency_key` to send. See [The error object](/docs/mcp/errors#the-error-object) and [Confirm tokens are spent on use](/docs/mcp/errors#confirm-tokens-are-spent-on-use).
- A title and a one-line description for each `edit_flow_draft` operation (Preview).

**Changed**

- The server's title, the `resource_name` of the discovery document and every text the server sends now read "Queue CallBack": the instructions, the tool descriptions, the error messages and the HTTP error bodies.
- The server instructions were rewritten. They now say what Queue CallBack is, to call `get_me` first, which changes need the user's agreement and a confirm token, that reports count days in America/New_York unless `tz` is passed, and that the IVR call reports are for organization admins. The [tool reference](/docs/mcp/tools#server-instructions) quotes the new text.
- A call by name to a tool that is not in the credential's tool list is refused as a tool result with `isError: true` and a code that says why (`insufficient_scope`, `custom_ivr_not_enabled`, `writes_disabled`, `queue_writes_disabled` or `queue_settings_disabled`), before anything is sent. Before, it was a JSON-RPC protocol error for an unknown tool. A name that is not a tool of the server at all is still a protocol error.
- Clearer error texts, with the same codes:
  - `invalid_handle` says how to check whether the operation already ran, by the kind of handle, and that a handle lasts 24 hours;
  - `confirm_refused` for a token that was already used says an earlier call may have made the change;
  - `insufficient_scope` names every cause: the key lacks the scope, the organization or the role withholds it, or the connection is a sign-in, which is read-only;
  - the HTTP 401 text names every state that answers 401, a suspended key and an ended sign-in included;
  - `writes_disabled`, `queue_writes_disabled` and `queue_settings_disabled` say to make the change in the portal for now.
- The descriptions of `get_me`, `get_organization`, `list_queues`, `get_queue` and `list_callback_queue` were rewritten. `get_node_type` and `edit_flow_draft` (Preview) point to `list_node_types` instead of listing the node types.
- `create_flow_draft` (Preview) is marked idempotent (`idempotentHint: true`): a repeated call returns the draft the first call started, with `created` `false`.

**Deprecated**

- The `timezone` argument of `get_live_stats`. Use `tz`. `timezone` is still accepted, and when both are sent they must name the same zone. No removal date is set: a removal will be announced on this page at least 14 days ahead.

**Removed**

- `rc_app_client_id`, `rc_server_url`, `token_expiry` and `token_status`, from each `list_queues` item and from the `get_queue` result. The token fields did not say whether a queue is connected to RingCentral. `registration_status`, `last_registration` and `registration_error` stay, and the organization's RingCentral connection is now `ringcentral_connection` (see the entry above).
- `status_url`, from the answers of `requeue_callback` and `get_requeue_status` and from requeue refusals, and `upgrade_url`, from the `custom_ivr_not_enabled` refusal. Follow a requeue with its `handle` and `get_requeue_status`; `request_id` stays.

### 2026-11-05: sign-in from Claude and ChatGPT

**Added**

- OAuth sign-in for Claude (claude.ai, Claude Desktop, the Claude mobile apps and Cowork) and ChatGPT. These clients can now connect to the Queue CallBack MCP server by signing in with a Queue CallBack account, without an API key. Queue CallBack supports sign-in from these two clients only; every other client connects with an API key as before. See [Sign in from Claude](/docs/mcp/connect#sign-in-from-claude) and [Sign in from ChatGPT](/docs/mcp/connect#sign-in-from-chatgpt).
- A signed-in connection acts as the person who signed in, in that person's own organization, limited by that person's role. It gets at most the five read scopes `ivr:read`, `reports:read`, `callbacks:read`, `queues:read` and `org:read`, whatever the client asks for. Caller data stays masked, and no tool that changes something, publishes a flow or places a call is listed: those still need an API key. See [OAuth sign-in](/docs/mcp/access#oauth-sign-in).
- For a signed-in connection, `get_me` reports `actor_type` `oauth`, the signed-in person's `user_id`, and `api_key` `null`. See [Check the connection](/docs/mcp/connect#check-the-connection).

**Changed**

- The discovery document at `https://mcp.queuecallback.com/.well-known/oauth-protected-resource/mcp` now names the authorization server in `authorization_servers`.
- The `WWW-Authenticate` header of a 401 answer now ends with `scope="ivr:read reports:read callbacks:read queues:read org:read"`: the scopes a sign-in asks for.
- Three answers can now occur, for signed-in connections only: HTTP 403 `insufficient_scope` before any tool runs, 403 `no_organization` and 503 `authorization_server_unavailable`. See [HTTP errors](/docs/mcp/errors#http-errors).

### 2026-10-31: queue settings and the Custom IVR requirement

A few hours after the launch, on the same day:

**Added**

- The `update_queue_settings` tool (Stable). It changes a queue's callback settings: `callback_timeout_minutes` (1 to 1440), `auto_requeue`, `max_requeue_attempts` (1 to 10) and `manual_callback` (the portal's Manual Callback Only flag, which is stored and shown in the portal and does not change how callbacks are dialed). Only the settings you give change, and the queue keeps running. The tool needs the `queues:write` scope, works in two calls with a confirm token, and carries the hint that makes Claude Code ask the user on every call. Its result lists each changed setting with the old and new value. Reference: [`update_queue_settings`](/docs/mcp/tools#update_queue_settings).
- With `update_queue_settings`, the catalog grew from 36 to 37 tools: 25 read-only and 12 that change something. Seven tools now carry the hint that makes Claude Code ask the user on every call. See [Approval prompts](/docs/mcp/safety#approval-prompts).
- A rate limit for queue settings changes, counted apart from voice and language changes. Both kinds answer `queue_write_limited` when the organization exceeds them. See [Limits](/docs/mcp/errors#limits).
- The tool error `queue_settings_disabled`, for queue settings changes while Queue CallBack has them switched off on the server. See [Tool errors](/docs/mcp/errors#tool-errors).
- The `custom_ivr_enabled` field in the `get_me` result. It says whether the organization has the Custom IVR add-on. See [`get_me`](/docs/mcp/tools#get_me).
- The tool error `custom_ivr_not_enabled`. It is returned when a request reaches an IVR flow tool for an organization without the Custom IVR add-on. Normally those tools are not listed for such an organization. The message says the IVR flow tools are not available, that the queue, callback and reporting tools still work, and that Queue CallBack can add the Custom IVR add-on to the organization. See [Tool errors](/docs/mcp/errors#tool-errors).

**Changed**

- The IVR flow tools now need the Custom IVR add-on, the read-only ones included. Before, only `ivr:write` and `ivr:publish` needed it, so an organization without the add-on could still read its flows and the node types with `ivr:read`. Now all three IVR scopes take effect only for an organization that has the add-on. Without it, the 14 IVR flow tools are not listed and `get_me` shows `custom_ivr_enabled: false`. The queue, callback and reporting tools were not affected by this change. A key keeps the IVR scopes it was given, and they take effect again once the organization has the add-on. See [Scopes](/docs/mcp/access#scopes).
- The server instructions that every client receives gained one sentence:

  > The IVR flow tools (flows, node types, drafts, validation, publishing) exist only for organizations with the Custom IVR add-on: elsewhere they are not listed and get_me shows custom_ivr_enabled false, while the queue, callback and reporting tools work as usual.

- The descriptions of `get_me`, `list_flows` and `list_node_types` now name the Custom IVR add-on. The description of `list_queues` names `update_queue_settings` among the tools that take a queue id.
- The `queues:write` scope now also covers a queue's callback timeout and requeue settings. The portal's description of the scope names these settings too.

### 2026-10-31: launch

The Queue CallBack MCP server launched.

**Added**

- The endpoint `https://mcp.queuecallback.com/mcp`. It uses Streamable HTTP in stateless mode. A POST that carries a request gets one JSON response, and a POST that carries only notifications gets 202 with no body. It supports the MCP revisions 2026-07-28, 2025-11-25, 2025-06-18, 2025-03-26 and 2024-11-05 on the same URL.
- Authentication with API keys, sent as `Authorization: Bearer qcb_sk_...`. Organization admins create keys in the portal under **Settings**, **API keys**. Each key acts in exactly one organization, the one it was created in. See [Create an API key](/docs/mcp/access#create-an-api-key).
- Twelve scopes: `ivr:read`, `ivr:write`, `ivr:publish`, `reports:read`, `pii:read`, `callbacks:read`, `callbacks:write`, `callbacks:dial`, `queues:read`, `queues:write`, `org:read` and `org:write`. See [Scopes](/docs/mcp/access#scopes).
- 36 tools: 25 read-only and 11 that change something. They cover the connection (`get_me`), the organization, queues, the callback queue, callback and IVR reporting, and the IVR flow tools (Preview). Six tools that place calls or change what callers hear carried the hint that makes Claude Code ask the user on every call: `add_callback`, `publish_flow`, `requeue_callback`, `restore_flow_version`, `set_queue_language` and `set_queue_voice`.
- The safety mechanisms:
  - A publish runs only with the confirm token that `validate_flow` returned for the same draft.
  - `requeue_callback`, `restore_flow_version`, `set_queue_voice` and `set_queue_language` work in two calls with a confirm token.
  - IVR edits go to a draft first. Callers keep hearing the published version until `publish_flow` runs, or until `restore_flow_version` brings back an earlier version with `target` `live`.
  - `add_callback` and `requeue_callback` take idempotency keys.
  - Long operations return handles, which `get_requeue_status` and `get_publish_status` follow.
  - Caller data is masked unless the key holds an effective `pii:read`.

  See [Confirm tokens](/docs/mcp/safety#confirm-tokens) and [Caller data](/docs/mcp/safety#caller-data).
- Server instructions sent to every client: one organization per credential, read before you change, the confirm tokens and caller-data masking. The [tool reference](/docs/mcp/tools#server-instructions) quotes the current text.
- The discovery document at `https://mcp.queuecallback.com/.well-known/oauth-protected-resource/mcp` and the health check at `https://mcp.queuecallback.com/healthz`.

**Not available at launch**

- `set_queue_voice` and `set_queue_language` were in the catalog but switched off on the hosted server, so no key saw them. Both became available on 2026-11-06 (see that entry above), behind the two-call confirm token: [`set_queue_voice`](/docs/mcp/tools#set_queue_voice), [`set_queue_language`](/docs/mcp/tools#set_queue_language).
- OAuth sign-in was built but not switched on. Clients that can only sign in with OAuth could not connect. Sign-in for Claude and ChatGPT became available on 2026-11-05 (see that entry above).

## Status labels

Every tool and every page of the Queue CallBack MCP documentation carries one of two status labels: Stable or Preview. The label is not part of the server's tool list. The [tool reference](/docs/mcp/tools) marks the IVR flow tools as Preview in their group heading and in each tool's availability row. Every other tool is Stable. Each page's Markdown also carries its label in the `status` field at the top.

| Label | Applies to | What it promises | What it does not promise |
|---|---|---|---|
| Stable | Every tool except the IVR flow tools | Names, arguments, documented result fields, scopes and error codes change only under the [change and deprecation policy](#change-and-deprecation-policy), with notice before a tool is removed or broken. Every change is logged on this page. | That every key sees the tool. The tool list depends on the key's scopes, the organization's add-ons and settings, and server switches. |
| Preview | The IVR flow tools (currently 14), and the IVR node types they return | The tools work, and the full safety model applies to them: drafts, validation, confirm tokens and approval prompts. Every change is logged on this page. | Stable tool names, arguments, node types, node fields or validation messages. Any of these can change, and a Preview tool can be removed, at any time and without notice. |

### Which tools are Preview

The Preview tools are the IVR flow tools. They are available only to organization admins of organizations with the Custom IVR add-on (a User's sign-in has no `ivr:read`). Today there are 14:

`list_flows`, `get_flow`, `list_flow_versions`, `diff_flow`, `list_flow_variables`, `list_node_types`, `get_node_type`, `create_flow_draft`, `edit_flow_draft`, `validate_flow`, `publish_flow`, `discard_draft`, `restore_flow_version`, `get_publish_status`.

Queue CallBack is redesigning the IVR flow builder, so the node types, their fields and the validation messages will change. An agent should discover node types at runtime with `list_node_types` and `get_node_type` and never hard-code them. See [Node types](/docs/mcp/ivr#node-types) and [Edit a flow safely](/docs/mcp/ivr#edit-a-flow-safely).

The IVR report tools (`get_ivr_summary`, `list_ivr_calls`, `get_ivr_call`, `get_flow_decisions` and `list_ivr_flow_stats`) are Stable. They are for organization admins of organizations with the Custom IVR add-on ([IVR call reports](/docs/mcp/access#ivr-call-reports)). Their results name IVR node kinds and steps, and those follow the Preview node types, so new kinds can appear in them.

When a Preview tool becomes Stable, this page logs it in a dated entry. The Stable promises apply from that date.

## Change and deprecation policy

This policy covers the hosted Queue CallBack MCP server at `https://mcp.queuecallback.com/mcp`:

- at least 30 days' notice before a Stable tool is removed;
- at least 14 days' notice before a breaking change to a Stable tool's arguments;
- no notice for Preview tools (the IVR flow tools), which can change at any time;
- every change, with or without notice, gets a dated entry on this page.

### Breaking changes

A breaking change to a Stable tool is one that can make a working client fail or misread a result:

- removing or renaming the tool;
- removing an argument, making an optional argument required, narrowing the values an argument accepts, or changing its type or meaning;
- removing or renaming a documented result field, or changing its type or meaning;
- removing an error code, or changing what it means;
- requiring a further scope for the tool;
- dropping support for an MCP protocol revision.

### Notice before a breaking change

| Change | Notice |
|---|---|
| Removing or renaming a Stable tool | At least 30 days |
| Requiring a further scope for a Stable tool | At least 30 days |
| Dropping support for an MCP protocol revision | At least 30 days |
| Any other breaking change to a Stable tool's arguments, documented results or error codes | At least 14 days |
| Any change to a Preview tool | None. Every change is logged on this page |

### Changes that need no notice

These changes can happen at any time. Each one is logged on this page.

- **Additions.** New tools, new optional arguments, new fields in results, new error codes, and new values in fields that report a state or a kind. Write clients to ignore fields they do not know. Branch on the error code (`structuredContent.error.code` in a tool result, `error.data.code` in an HTTP-level answer), not on the message text.
- **Wording.** Clearer tool descriptions, server instructions and error messages. Message text is written for people and models, and it is not a contract.
- **Limits.** The limits are defaults that Queue CallBack can tune. Follow `Retry-After` and `retry_after_seconds` instead of hard-coding numbers. See [Limits](/docs/mcp/errors#limits) and [Retries](/docs/mcp/errors#retries).
- **Safety.** A change needed to protect callers, caller data or the service can take effect at once, even for a Stable tool.

### How a deprecation is announced

1. A dated entry on this page, under **Deprecated**, names the tool, argument or field, what to use instead, and the earliest date of the change.
2. From the same day, the [tool reference](/docs/mcp/tools) marks the tool or argument as deprecated.
3. The tool's description in `tools/list` starts with "Deprecated:" and names the replacement, so an agent sees the notice when it lists the tools.
4. On or after the announced date, a dated entry under **Removed** or **Changed** records the change.

### Switched-off tools and missing tools

Queue CallBack can switch changes off on the hosted server for every organization, for example to protect callers during an incident. While changes are off, clients see only the read-only tools, and the tools that change something cannot be called. Queue voice and language changes, and queue settings changes, each have a further switch of their own. Switching changes off is not a deprecation: the tools come back unchanged when they are switched on again. When a tool that was switched off becomes available on the hosted server, this page logs it.

A tool can also be missing for a reason that is not a server change:

| Reason | What to check |
|---|---|
| The key lacks a scope the tool needs | The key's scopes in the portal, or `scopes` in the `get_me` result. See [Scopes](/docs/mcp/access#scopes) |
| The organization does not have the Custom IVR add-on | `custom_ivr_enabled` in the `get_me` result |
| The credential cannot read the IVR call reports (affects the five IVR report tools) | `ivr_reporting_enabled` in the `get_me` result. See [IVR call reports](/docs/mcp/access#ivr-call-reports) |
| A User's sign-in (affects the IVR flow tools: the User role holds no `ivr:read`) | `role` and `scopes` in the `get_me` result |
| The organization does not edit its IVR flows through drafts (affects `create_flow_draft`, `edit_flow_draft`, `discard_draft`, `publish_flow` and `restore_flow_version`) | `ivr:write` or `ivr:publish` is missing from `scopes` in the `get_me` result although the key holds it. See [Scopes](/docs/mcp/access#scopes) |
| Caller-data unmasking is off for the organization (`add_callback` is listed only for keys whose `pii:read` takes effect) | `pii_allowed` in the `get_me` result. See [Caller data](/docs/mcp/safety#caller-data) |
| The organization's API access is off | Every request is refused with 403 [`mcp_disabled`](/docs/mcp/errors#mcp_disabled) |

## How to notice changes

The Queue CallBack MCP server does not push change notifications. It runs in stateless mode with no server-to-client stream, and it does not send `notifications/tools/list_changed`. A client sees a change the next time it asks. These sources show what changed:

| Source | What it shows | When to check |
|---|---|---|
| `tools/list` | The tools this key can call now, with their descriptions, arguments and annotations. It is the source of truth for one key. | At the start of each session. Most clients list the tools when they connect, so reconnect the server or restart the client to pick up a change. The server lets clients cache the list for up to 60 seconds. |
| Server instructions | The rules every client receives when it connects. | Rarely changes. Each change is logged on this page. |
| [Tool reference](/docs/mcp/tools) | Every tool the server can serve, with its status label, scopes, arguments and limits. It is generated from the server's tool registry, so it can list tools your key does not see. | Before you build on a tool, and after a new entry on this page. |
| This page, and its Markdown twin `https://queuecallback.com/docs/mcp/changelog.md` | Dated changes, newest first, and every deprecation with its date. | Regularly. An agent can fetch the Markdown and compare the newest date with the last one it saw. |
| `get_me` | The key's organization, role, effective scopes, `pii_allowed`, `custom_ivr_enabled` and `ivr_reporting_enabled`. | When an expected tool is missing, to tell a key or organization difference from a server change. See [Check the connection](/docs/mcp/connect#check-the-connection). |

A call to a tool that is not in the key's list is refused as a tool result with a code that says why, such as `insufficient_scope`, `custom_ivr_not_enabled`, `ivr_reporting_not_enabled` or `writes_disabled`. Only a name that is not a tool of the server at all is a JSON-RPC protocol error. In either case, list the tools again and call `get_me` before retrying.
