---
id: mcp-whats-new
title: What's new
slug: /mcp/whats-new
description: Changes to the Chatley MCP server — new tools, changed behaviour, and anything that affects a connection you have already made.
---
Changes to the MCP server, newest first. Anything that could change how an
existing connection behaves is marked, because a tool that quietly starts
answering differently is worse than one that visibly stops working.

Tool names and error codes on this page are stable. When one has to change, it
appears here first and the old form keeps working for a stated period.

---

## First release

The initial tool set. Sixteen tools, all read or safe-write.

### Calls

`list_calls`, `get_call_details`, `get_call_transcript`, `get_call_analytics`.

Transcripts are a **separate** tool from the listing on purpose: a listing that
carried them would fill your assistant's context after a handful of calls and
make everything after it worse. List first, then fetch the one you want.

Call outcomes use a fixed set of values — `caller_ended`, `agent_ended`,
`transferred`, `no_answer`, `voicemail`, `busy`, `abandoned`,
`max_duration_reached`, `blocked`, `failed`, `in_progress`, `unknown` — so you
can branch on them safely.

### AI voice agents, with drafts

`list_agents`, `get_agent`, `create_agent`, `update_agent`,
`publish_agent_draft`.

**The behaviour to know about:** `update_agent` saves a **draft**. Your agent
keeps answering calls exactly as before until `publish_agent_draft` is called.
This is deliberate — an assistant acting on a misread instruction should not be
able to change what a caller hears in one step.

`get_agent` returns any unpublished draft alongside the live configuration, and
tells you which fields differ. If a change seems not to have taken effect, look
there first: an unpublished draft is the usual reason.

Saving again **replaces** the draft rather than adding to it, so put everything
you want staged into one call.

### Voices

`list_voices`. Voice IDs are case-sensitive — pass them back exactly as
returned. A voice's ID and its name are not always the same word, so use the
name when talking to a person and the ID when calling a tool.

### Knowledge bases

`list_knowledge_bases`, `delete_knowledge_base_items`.

Deleting takes **two calls**. The first returns exactly what would be removed,
including how many agents currently use each one, and changes nothing. Only a
second call carrying `confirmed: true` removes anything, and that check is ours
— a client cannot skip it.

### Account

`get_workspace_info`, `list_tenants`.

If you administer more than one Chatley account, `list_tenants` tells you which,
and every other tool accepts a `tenant_id` to target one. Naming an account you
do not administer is refused and recorded, so there is no point guessing.

### Metered access

`get_rate_card`, `get_balance`.

Reading is free — calls, transcripts, analytics, agents, voices and knowledge
bases are never metered, so an assistant can explore your account without
spending anything. At zero balance metered operations stop and reading carries
on.

If `get_rate_card` reports `prices_are_provisional: true`, the numbers are not
final; treat them as indicative.

---

## Known limitations

Stated here rather than discovered later.

**No contacts or campaigns.** Those tools arrive with the campaign engine.

**No adding to a knowledge base.** A Chatley knowledge base is an uploaded
document, and an upload is not something a tool call can carry. Add it in
Chatley; the agent picks it up.

**Deleting an AI voice agent, deleting a contact, and bulk updates are not
offered at all.** These are the operations where one confused call does the most
damage. Do them in Chatley, where the consequences are visible on screen.

**One region.** A single global endpoint. If data residency matters to you,
tell us — regional endpoints exist as a plan, not as a deployment.
