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

# Gunakan ThunderPhone sebagai server MCP

> Hubungkan klien MCP HTTP yang dapat di-stream ke ThunderPhone untuk mencantumkan agen, memeriksa panggilan dan transkrip, serta melakukan panggilan keluar dengan kunci API organisasi.

ThunderPhone menyediakan server Model Context Protocol di:

```text theme={null}
https://api.thunderphone.com/v1/mcp
```

Arahkan klien MCP ke endpoint HTTP Streamable tersebut agar agen dan panggilan organisasi Anda tersedia sebagai alat. Ini merupakan arah yang berlawanan dari
[menghubungkan server MCP jarak jauh ke agen suara](/id/guides/mcp-servers):

| Arah                                      | Hasil                                                                      |
| ----------------------------------------- | -------------------------------------------------------------------------- |
| Server MCP jarak jauh → agen ThunderPhone | Agen suara Anda dapat memanggil alat server jarak jauh.                    |
| ThunderPhone → klien MCP Anda             | Klien MCP Anda dapat memanggil alat ThunderPhone untuk agen dan panggilan. |

## Autentikasi

Buat kunci `sk_live_` di **Organization → Keys** dan kirimkan sebagai token Bearer. Endpoint MCP menerima kunci API organisasi, bukan cookie sesi dasbor atau kunci widget yang dapat dipublikasikan.

```json Generic client configuration theme={null}
{
  "mcpServers": {
    "thunderphone": {
      "url": "https://api.thunderphone.com/v1/mcp",
      "headers": {
        "Authorization": "Bearer sk_live_YOUR_API_KEY"
      }
    }
  }
}
```

<Warning>
  Kunci `sk_live_` dapat mengakses data organisasi dan melakukan panggilan. Jangan simpan kunci ini dalam kode browser, repositori, tangkapan layar, atau log chat. Gunakan penyimpanan rahasia yang didukung oleh klien MCP Anda dan segera cabut kunci jika terekspos.
</Warning>

## Alat yang tersedia

| Alat                  | Argumen                                     | Fungsinya                                                                                                       |
| --------------------- | ------------------------------------------- | --------------------------------------------------------------------------------------------------------------- |
| `list_agents`         | tidak ada                                   | Mencantumkan agen organisasi beserta id, nama, produk, dan suara.                                               |
| `get_agent`           | `agent_id`                                  | Mengambil satu agen.                                                                                            |
| `place_call`          | `agent_id`, `from_number`, `to_number`      | Melakukan panggilan keluar dengan validasi dan pemeriksaan penagihan yang sama seperti endpoint panggilan REST. |
| `get_call`            | `call_id`                                   | Mengambil Status, ringkasan, dan nilai panggilan.                                                               |
| `list_calls`          | `limit` opsional (1–100), `status` opsional | Mencantumkan panggilan terbaru.                                                                                 |
| `get_call_transcript` | `call_id`                                   | Mengambil transkrip lengkap untuk panggilan.                                                                    |

Semua alat dibatasi pada organisasi yang terikat dengan kunci API. Id dari organisasi lain akan dianggap tidak tersedia.

## Metode protokol

Endpoint ini mengimplementasikan metode MCP JSON-RPC yang diperlukan untuk klien HTTP Streamable:

* `initialize`
* `notifications/initialized`
* `tools/list`
* `tools/call`

Anda dapat memeriksa katalog alat secara langsung:

```bash theme={null}
curl -X POST https://api.thunderphone.com/v1/mcp \
  -H "Authorization: Bearer sk_live_YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/list",
    "params": {}
  }'
```

Panggil alat dengan nama dan argumennya:

```json theme={null}
{
  "jsonrpc": "2.0",
  "id": 2,
  "method": "tools/call",
  "params": {
    "name": "list_calls",
    "arguments": { "limit": 20, "status": "completed" }
  }
}
```

Hasil alat berupa item konten teks MCP. Kegagalan alat dikembalikan dalam hasil dengan `isError: true`; metode JSON-RPC yang tidak dikenal mengembalikan kesalahan protokol.

## Melakukan panggilan dengan aman

`place_call` mengikuti aturan yang sama seperti
[`POST /v1/call`](/api-reference/outbound-calls): agen dan nomor harus menjadi milik organisasi kunci tersebut, nomor harus memenuhi syarat untuk panggilan keluar, organisasi harus memiliki saldo yang cukup, dan setiap konfirmasi panggilan keluar yang berlaku harus telah selesai.

Perlakukan klien dengan akses ke `place_call` sebagai pemanggil produksi. Batasi siapa yang dapat menggunakan klien, jelaskan agen dan nomor yang dituju dalam Prompt klien itu sendiri, dan tinjau panggilan di Riwayat Panggilan.

## Referensi wire lengkap

Lihat [API Server MCP](/api-reference/mcp-servers#thunderphone-as-an-mcp-server) untuk contoh respons, kesalahan JSON-RPC, dan API pengelolaan server jarak jauh.
