> ## Documentation Index
> Fetch the complete documentation index at: https://docs.60db.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Call analysis

# Call Analysis Tools

Create analyzers, add recordings, and read the problems 60db finds in your calls, through the MCP server. These tools call the [Call Analysis API](https://docs.60db.ai/api-reference/call-analysis/overview.md), so they need a key for a workspace owner or admin (or a user with analytics access).

> [!NOTE]
>
> **Setup note:** Recordings are added by **public URL**. Uploading a local file is not available through MCP; use the [API upload flow](https://docs.60db.ai/features/call-analysis-quickstart.md) for files. The API key must have the **Call analysis** permission. New keys have it; for older keys switch on **Call analysis** in Developers → API keys. Without it the tools return `DA_API_KEY_SCOPE_MISSING`. The fix-agent tools also need the key's `agents` permission. Keys created with default scopes have both.

## Available Tools

| Tool | Purpose |
| - | - |
| `sixtydb_call_analysis_list_analyzers` | List analyzers |
| `sixtydb_call_analysis_create_analyzer` | Create an analyzer (`name`, `instructions`) |
| `sixtydb_call_analysis_get_analyzer` | Get one analyzer with counts |
| `sixtydb_call_analysis_update_analyzer` | Change an analyzer's fields |
| `sixtydb_call_analysis_archive_analyzer` | Archive an analyzer (requires `confirm: true`) |
| `sixtydb_call_analysis_add_recording_urls` | Add recordings from public URLs (1-50). Does not start analysis |
| `sixtydb_call_analysis_analyze` | Analyze ready recordings. Spends credits; two steps, see below |
| `sixtydb_call_analysis_list_recordings` | Recordings with status, verdict and top problem |
| `sixtydb_call_analysis_get_problems` | Problems summary by category and severity |
| `sixtydb_call_analysis_get_analytics` | Charts data for one analyzer, or the whole workspace if `agent_id` is omitted |
| `sixtydb_call_analysis_get_call_analysis` | Transcript and analysis of one call |
| `sixtydb_call_analysis_suggest_agent_fix` | Suggest better instructions for the AI agent behind a call. Saves nothing |
| `sixtydb_call_analysis_apply_agent_fix` | Save the suggested instructions (requires `confirm: true`) |
| `sixtydb_call_analysis_undo_agent_fix` | Restore the previous instructions (requires `confirm: true`) |

**Note:** Analysis spends credits, so `sixtydb_call_analysis_analyze` first returns the count of ready recordings and does nothing. Call it again with that number as `confirm_count` to start. Archive, apply and undo need `confirm: true`.

## Create an Analyzer

```json theme={null}
{
  "tool": "sixtydb_call_analysis_create_analyzer",
  "arguments": {
    "name": "Refund policy check",
    "instructions": "Flag any call where the agent gives wrong refund information."
  }
}
```

## Add Recordings and Analyze

```json theme={null}
{
  "tool": "sixtydb_call_analysis_add_recording_urls",
  "arguments": {
    "agent_id": "ANALYZER_UUID",
    "urls": ["https://example.com/calls/one.mp3", "https://example.com/calls/two.mp3"]
  }
}
```

Preview the count and cost, then confirm:

```json theme={null}
{ "tool": "sixtydb_call_analysis_analyze", "arguments": { "agent_id": "ANALYZER_UUID" } }
```

```json theme={null}
{ "tool": "sixtydb_call_analysis_analyze", "arguments": { "agent_id": "ANALYZER_UUID", "confirm_count": 2 } }
```

## Read Results

Poll until each recording is `done` or `failed`:

```json theme={null}
{
  "tool": "sixtydb_call_analysis_list_recordings",
  "arguments": { "agent_id": "ANALYZER_UUID", "status": "done" }
}
```

```json theme={null}
{ "tool": "sixtydb_call_analysis_get_problems", "arguments": { "agent_id": "ANALYZER_UUID" } }
```

```json theme={null}
{ "tool": "sixtydb_call_analysis_get_call_analysis", "arguments": { "call_id": "CALL_UUID" } }
```

`call_id` comes from the recordings list.

## Fix an AI Agent

For a call made by a 60db AI agent that has problems:

```json theme={null}
{ "tool": "sixtydb_call_analysis_suggest_agent_fix", "arguments": { "call_id": "CALL_UUID" } }
```

Review the suggestion, then save it with the `base_hash` and `after` text it returned:

```json theme={null}
{
  "tool": "sixtydb_call_analysis_apply_agent_fix",
  "arguments": { "call_id": "CALL_UUID", "base_hash": "64-hex-characters", "script": "the new instructions", "confirm": true }
}
```

To go back, call `sixtydb_call_analysis_undo_agent_fix` with the `fix_id` from the apply result and `confirm: true`.

## Related

* [Call Analysis API](https://docs.60db.ai/api-reference/call-analysis/overview.md)
* [Analyze your first calls](https://docs.60db.ai/features/call-analysis-quickstart.md)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.