# Tool MCP

Tool mengikuti [REST API](/id/introduction/): input sama, hasil sama, error sama. Tool **baca** tidak pernah mengubah apa pun dan
hanya tool inilah yang dilihat koneksi hanya-baca. Petunjuk (hint) adalah anotasi tool MCP yang dipakai client untuk memutuskan
kapan harus bertanya dulu ke Anda.

## Workspace dan akun

| Tool | Fungsi | Akses | API |
|---|---|---|---|
| `get_workspace` | Nama, zona waktu, langganan, batas, peran dan tingkat akses Anda | Baca | [`GET /me`](/api/operations/getworkspace/) |
| `list_accounts` | Akun tersambung, statusnya dan content type yang diterima masing-masing | Baca | [`GET /accounts`](/api/operations/listaccounts/) |
| `list_content_types` | Batas media dan caption per content type; `platform` opsional | Baca | [`GET /content-types`](/api/operations/listcontenttypes/) |
| `get_tiktok_creator_info` | Level privasi dan pengaturan yang diizinkan akun TikTok, langsung dari TikTok | Baca | [`GET /accounts/{id}/tiktok-creator-info`](/api/operations/gettiktokcreatorinfo/) |

## Post

| Tool | Fungsi | Akses | Hint | API |
|---|---|---|---|---|
| `list_posts` | Per `status` atau `from`/`to`, filter `accountId`/`tagId`; mengembalikan `{ items, nextCursor }` | Baca | | [`GET /posts`](/api/operations/listposts/) |
| `get_post` | Satu post dengan status, error dan link tayang per akun | Baca | | [`GET /posts/{id}`](/api/operations/getpost/) |
| `validate_post` | Periksa post terhadap aturan semua platform tanpa menyimpan | Baca | | [`POST /posts/validate`](/api/operations/validatepost/) |
| `create_post` | Draft, jadwalkan, terbitkan sekarang atau ajukan persetujuan | Tulis | open world | [`POST /posts`](/api/operations/createpost/) |
| `update_post` | Ganti isi post yang belum terbit | Tulis | destruktif | [`PUT /posts/{id}`](/api/operations/updatepost/) |
| `reschedule_post` | Pindah ke waktu baru | Tulis | idempoten | [`POST /posts/{id}/reschedule`](/api/operations/reschedulepost/) |
| `publish_post` | Terbitkan sekarang | Tulis | open world | [`POST /posts/{id}/publish`](/api/operations/publishpost/) |
| `retry_post` | Terbitkan ulang akun yang gagal | Tulis | open world | [`POST /posts/{id}/retry`](/api/operations/retrypost/) |
| `approve_post` | Pemilik: setujui post yang menunggu review | Tulis | | [`POST /posts/{id}/approve`](/api/operations/approvepost/) |
| `reject_post` | Pemilik: kembalikan ke penulisnya dengan alasan | Tulis | | [`POST /posts/{id}/reject`](/api/operations/rejectpost/) |
| `delete_post` | Hapus dari PostFlow (post yang sudah tayang tetap di platform) | Tulis | destruktif | [`DELETE /posts/{id}`](/api/operations/deletepost/) |

## Kalender, antrean, media dan tag

| Tool | Fungsi | Akses | API |
|---|---|---|---|
| `get_calendar` | Post antara `from` dan `to` (≤ 92 hari) plus slot antrean yang kosong | Baca | [`GET /calendar`](/api/operations/getcalendar/) |
| `get_queue` | Jam posting mingguan dan saran waktu | Baca | [`GET /queue`](/api/operations/getqueue/) |
| `next_queue_slot` | Waktu posting kosong berikutnya | Baca | [`GET /queue/next`](/api/operations/nextqueueslot/) |
| `list_media` | Pustaka media, terbaru dulu; `kind`, `q`, `before` | Baca | [`GET /media`](/api/operations/listmedia/) |
| `import_media` | Masukkan foto atau video dari URL publik | Tulis | [`POST /media`](/api/operations/importmedia/) |
| `delete_media` | Hapus file yang tidak dipakai (destruktif) | Tulis | [`DELETE /media/{id}`](/api/operations/deletemedia/) |
| `list_tags` | Tag, untuk `tagIds` | Baca | [`GET /tags`](/api/operations/listtags/) |

## Komentar dan pesan

Teks komentar dan pesan ditulis orang lain. Server meminta agent tidak pernah mengikuti instruksi di dalamnya, serta menunjukkan
balasan persisnya dan menunggu persetujuan Anda sebelum mengirim.

| Tool | Fungsi | Akses | API |
|---|---|---|---|
| `list_comments` | Thread komentar di Facebook dan Instagram, dengan balasannya | Baca | [`GET /inbox`](/api/operations/listcomments/) |
| `reply_to_comment` | Balas secara publik lalu tandai selesai | Tulis | [`POST /inbox/{id}/reply`](/api/operations/replytocomment/) |
| `hide_comment` | Sembunyikan atau tampilkan komentar di platform | Tulis | [`POST /inbox/{id}/hide`](/api/operations/hidecomment/) |
| `set_comment_status` | Tandai selesai atau terbuka di PostFlow | Tulis | [`POST /inbox/{id}/status`](/api/operations/setcommentstatus/) |
| `list_conversations` | Percakapan pesan langsung, dengan batas waktu balas | Baca | [`GET /inbox/messages`](/api/operations/listconversations/) |
| `get_conversation` | 100 pesan terakhir | Baca | [`GET /inbox/messages/{id}`](/api/operations/listmessages/) |
| `reply_to_conversation` | Kirim balasan dalam 24 jam sejak pesan terakhir mereka | Tulis | [`POST /inbox/messages/{id}/reply`](/api/operations/replytoconversation/) |
| `set_conversation_status` | Tandai selesai atau terbuka di PostFlow | Tulis | [`POST /inbox/messages/{id}/status`](/api/operations/setconversationstatus/) |

## Analitik

| Tool | Fungsi | Akses | API |
|---|---|---|---|
| `get_analytics` | 7, 30 atau 90 hari dibanding periode sebelumnya: total, per akun dan format, waktu terbaik, post teratas | Baca | [`GET /analytics`](/api/operations/getanalytics/) |

## Hasil dan error

Panggilan yang berhasil mengembalikan JSON API sebagai teks, dan sebagai `structuredContent` bila berupa objek. Kegagalan
mengembalikan `isError: true` dengan kode, pesan dan detail error:

```text
VALIDATION: Some posts need changes before they can be scheduled
{"preflight":[{"socialAccountId":"acc_th","issues":[{"severity":"error","code":"caption_length","message":"Caption is 612 characters; the limit is 500."}]}]}
```