> ## 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.

# Agents

# Agents Tools

Create and run phone voice agents through the MCP server.

> [!NOTE]
>
> **Setup note:** Phone lines (60db Dialer numbers and SIP trunks) are added in the 60db dashboard or with the [Agents API](https://docs.60db.ai/api-reference/agents/create-phone-line.md). The MCP server can list them, but cannot create or delete them. SIP usernames and passwords are never shown.

## Available Tools

| Tool | Purpose |
| - | - |
| `sixtydb_agents_list` | List agents |
| `sixtydb_agents_get` | Get one agent |
| `sixtydb_agents_create` | Create an agent |
| `sixtydb_agents_update` | Change an agent's fields |
| `sixtydb_agents_delete` | Delete an agent (requires `confirm: true`) |
| `sixtydb_agents_place_call` | Place an outbound call (requires `confirm: true`; rings a real phone and costs money) |
| `sixtydb_agents_list_calls` | Call history, filterable by agent and status |
| `sixtydb_agents_get_call` | Status, duration, cost and summary of one call |
| `sixtydb_agents_get_transcript` | Turn-by-turn transcript of a call |
| `sixtydb_agents_list_phone_lines` | Phone lines agents can call from (no SIP secrets) |

**Note:** `confirm: true` is required for `sixtydb_agents_place_call` and `sixtydb_agents_delete`. Without it, the tool does nothing and explains what would happen.

## Create an Agent

```json theme={null}
{
  "tool": "sixtydb_agents_create",
  "arguments": {
    "name": "Front desk",
    "script": "You are the receptionist for Juniper Kitchen. Keep replies short.",
    "voice_id": "YOUR_VOICE_ID",
    "greeting": "Hello, Juniper Kitchen. How can I help?",
    "listen_languages": ["hi", "en"]
  }
}
```

The result includes `webhook_secret`, which is shown **once**. Store it before you continue. Tools and webhook URLs are set with `tools`, `tool_webhook_url` and `event_webhook_url`. See [Tools and webhooks](https://docs.60db.ai/features/agents-tools-and-webhooks.md).

## Update an Agent

Send the `agent_id` and only the fields to change:

```json theme={null}
{
  "tool": "sixtydb_agents_update",
  "arguments": {
    "agent_id": "9c2e1d7a-0b3f-4e6a-8f1d-5a7b9c0e2d44",
    "greeting": "Hi there! What can I do for you?"
  }
}
```

## Place a Call (Requires Confirmation)

`to` is in E.164 format. `phone_line_id` comes from `sixtydb_agents_list_phone_lines`.

Without `confirm: true`, nothing is called. The tool returns the cost and what will happen:

```json theme={null}
{
  "tool": "sixtydb_agents_place_call",
  "arguments": {
    "agent_id": "9c2e1d7a-0b3f-4e6a-8f1d-5a7b9c0e2d44",
    "to": "+919999999999",
    "phone_line_id": "2d8e4f10-6a3b-4c9d-8e7f-0b1a2c3d4e5f",
    "metadata": { "crm_lead_id": "L-1042" },
    "confirm": true
  }
}
```

The result is the queued call. Track it with `sixtydb_agents_get_call`, passing `call_id`.

## List Calls and Read Results

```json theme={null}
{
  "tool": "sixtydb_agents_list_calls",
  "arguments": {
    "agent_id": "9c2e1d7a-0b3f-4e6a-8f1d-5a7b9c0e2d44",
    "status": "completed",
    "limit": 20
  }
}
```

```json theme={null}
{
  "tool": "sixtydb_agents_get_call",
  "arguments": { "call_id": "6b1f0c52-4d7e-4b8a-9d3e-2a1c8e7f0a11" }
}
```

```json theme={null}
{
  "tool": "sixtydb_agents_get_transcript",
  "arguments": { "call_id": "6b1f0c52-4d7e-4b8a-9d3e-2a1c8e7f0a11" }
}
```

## Delete an Agent (Requires Confirmation)

```json theme={null}
{
  "tool": "sixtydb_agents_delete",
  "arguments": {
    "agent_id": "9c2e1d7a-0b3f-4e6a-8f1d-5a7b9c0e2d44",
    "confirm": true
  }
}
```

Deleting detaches the agent from its phone lines. The phone lines and past calls are kept.

## Important Notes

* **Placing a call costs money.** It uses AI credits for speech and LLM use, plus the Dialer balance for line minutes on a 60db number. A BYO line is billed by your carrier.
* **Only call people who agreed to be called.** Follow your local recording rules when `record` is on.
* **Secrets stay hidden.** SIP usernames, domains and passwords are never returned. The webhook secret appears only in the create and rotate responses.
* **Calls from MCP are tagged.** They show `source: "mcp"` in call history.
* **Pricing and limits:** see [Agents](https://docs.60db.ai/features/agents.md#pricing).


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