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

# Unlisted tools: posts, inbox, and accounts

> Tools the server accepts by name but does not list, for Instagram posts, audits, the inbox, connected accounts, and week planning: inputs, examples, and errors.

Generated from the server's own tool registry, as released on 2026-11-05. These tools are registered and callable by name, but `tools/list` doesn't advertise them: most are writes and helpers the listed tools reach for you. Use the listed tool unless a result or a tool description names one of these, and fetch the live schema with `help_describe` first.

| Tool | What it does | Changes things |
| - | - | - |
| [`post_create_instagram`](#post_create_instagram) | Publish an Instagram image, carousel, or reel. Call with mode='preview' first to validate and get a `confirm_token`, then mode='publish' with the token to execute. | Yes |
| [`post_manage`](#post_manage) | Manage an existing post: unschedule, reschedule, edit caption, or delete. Use `preview_delete` first for published posts to get a `confirm_token` before deleting. | Yes |
| [`post_audit`](#post_audit) | Audit a draft or published post for brand voice, hashtags, accessibility, and platform fit. | No |
| [`organic_workflow_run`](#organic_workflow_run) | Plan and schedule a week of organic content end-to-end in one call. mode='`plan_week`' starts a run; mode='resume' continues past an approval gate (pass the `next_step.arguments` the … | Yes |
| [`organic_media_list`](#organic_media_list) | List recent organic media for a connected account (cache-first, 5-minute TTL). | No |
| [`organic_profile_get`](#organic_profile_get) | Fetch the public profile (handle, follower count, picture, bio) for a connected organic account. | No |
| [`organic_inbox_list`](#organic_inbox_list) | List unified inbox items (DMs, comments, mentions) for a connected Instagram account (cache-first, 30s TTL). **Not available yet:** it returns `NOT_IMPLEMENTED`. | No |
| [`organic_inbox_reply`](#organic_inbox_reply) | Reply to an inbox item (DM, comment, or mention) on Instagram. **Not available yet:** it returns `NOT_IMPLEMENTED`. | Yes |

### `post_create_instagram`

Publish an Instagram image, carousel, or reel. Call with mode='preview' first to validate and get a `confirm_token`, then mode='publish' with the token to execute.

| Contract | Behavior |
| - | - |
| Changes things | Yes |
| Listed in your assistant | Not in `tools/list`. Call it by name; `help_describe` has its schema. |
| Role | Any brand member |
| Needs | An active brand. Connection: Instagram. |
| Confirmation | Writes preview first and return a `confirm_token` with `expires_at`. Confirm with that token after the person says yes. |
| Completion | Returns right away. Longer work continues as a job; read the id in the result. |
| Retry | Retry with the same `idempotency_key` to avoid duplicates. |

**Actions** (`type`):

| type | Required inputs |
| - | - |
| `image` | `account_id`, `type`, `caption`, `media`, `idempotency_key` |
| `carousel` | `account_id`, `type`, `caption`, `media`, `idempotency_key` |
| `reel` | `account_id`, `type`, `caption`, `media`, `idempotency_key` |

Other inputs, shared by every action (the live schema says which each action reads): `account_id`, `caption`, `hashtags`, `media`, `cover_image_url`, `schedule_at`, `location_id`, `idempotency_key`, `mode`, `confirm_token`.

**Examples** (IDs are illustrative; use the ones earlier calls return):

* Preview an image post (publish only after a yes): `{"name":"post_create_instagram","arguments":{"account_id":"5c8e1a3b-7d2f-4e6a-9b4c-0f1e3d5a7c92","type":"image","caption":"Autumn is here. Our new single-origin roast is out now.","media":[{"type":"image","source_url":"https://cdn.example.com/autumn-roast.jpg"}],"idempotency_key":"autumn-roast-post-2026-11-09","mode":"preview"}}`

**Errors and statuses:**

| Code | When |
| - | - |
| `VALIDATION_ERROR` | Format/media mismatch or invalid `schedule_at`. |
| `CONFLICT` | Idempotency key already produced a published post. |
| `UPSTREAM_ERROR` | Instagram Graph API rejected the publish call. |
| `MEDIA_INVALID` | The file can't be used: wrong type, size, or dimensions. `details` says which. |
| `BRAND_NOT_SELECTED` | No brand is active. Call `brands_select`. |
| `needs_integration` | The brand has no instagram connection. Call `integrations_connect`. |
| `CONFIRMATION_REQUIRED` | This write needs a preview first. Preview, get a yes, then confirm with the returned token. |

**Related:** `post_manage`, `post_audit`.

Full schema: `help_describe {"tool":"post_create_instagram","action":"image"}`. `help_describe`'s `action` takes a `type` value. As JSON: [`/mcp/schemas/post_create_instagram.json`](https://docs.trycontinuum.ai/mcp/schemas/post_create_instagram.json).

### `post_manage`

Manage an existing post: unschedule, reschedule, edit caption, or delete. Use `preview_delete` first for published posts to get a `confirm_token` before deleting.

| Contract | Behavior |
| - | - |
| Changes things | Yes |
| Listed in your assistant | Not in `tools/list`. Call it by name; `help_describe` has its schema. |
| Role | Any brand member |
| Needs | An active brand. Connection: Instagram. |
| Confirmation | Writes preview first: a confirmation dialog in clients that support it, otherwise a `confirm_token` to send back after a yes. |
| Completion | Returns the result in the same call. |
| Retry | Not idempotent. Check the current state before retrying. |

**Actions** (`action`):

| action | Required inputs |
| - | - |
| `unschedule` | `account_id`, `post_id`, `action` |
| `delete` | `account_id`, `post_id`, `action`, `idempotency_key` |
| `edit_caption` | `account_id`, `post_id`, `action`, `caption` |
| `reschedule` | `account_id`, `post_id`, `action`, `schedule_at`, `idempotency_key` |
| `preview_delete` | `account_id`, `post_id`, `action` |

Other inputs, shared by every action (the live schema says which each action reads): `account_id`, `post_id`, `caption`, `schedule_at`, `idempotency_key`, `confirm_token`.

**Examples** (IDs are illustrative; use the ones earlier calls return):

* Move a scheduled post: `{"name":"post_manage","arguments":{"account_id":"5c8e1a3b-7d2f-4e6a-9b4c-0f1e3d5a7c92","post_id":"17895695668004550","action":"reschedule","schedule_at":"2026-11-20T15:00:00Z","idempotency_key":"reschedule-17895695668004550-1120"}}`

**Errors and statuses:**

| Code | When |
| - | - |
| `CONFLICT` | Action not allowed in the current post state. |
| `NOT_FOUND` | `post_id` does not resolve to a draft or published post. |
| `CONFIRMATION_REQUIRED` | This write needs a preview first. Preview, get a yes, then confirm with the returned token. |
| `INTERNAL` | Something went wrong on our side. Retry once, then contact support. |
| `PERMISSION_DENIED` | The person's role can't do this. Ask an Admin or Owner. |
| `VALIDATION_ERROR` | An input is missing or wrong, or it changed since the preview. `details` names the field. |
| `BRAND_NOT_SELECTED` | No brand is active. Call `brands_select`. |
| `needs_integration` | The brand has no instagram connection. Call `integrations_connect`. |

**Related:** `post_create_instagram`.

Full schema: `help_describe {"tool":"post_manage","action":"unschedule"}`. As JSON: [`/mcp/schemas/post_manage.json`](https://docs.trycontinuum.ai/mcp/schemas/post_manage.json).

### `post_audit`

Audit a draft or published post for brand voice, hashtags, accessibility, and platform fit.

| Contract | Behavior |
| - | - |
| Changes things | No |
| Listed in your assistant | Not in `tools/list`. Call it by name; `help_describe` has its schema. |
| Role | Any brand member |
| Needs | An active brand. Connection: Instagram. |
| Confirmation | None. The call runs when made. |
| Completion | Returns right away. Longer work continues as a job; read the id in the result. |
| Retry | Safe to retry: it only reads. |

**Inputs:**

| Input | Type | Required | About |
| - | - | - | - |
| `account_id` | string | Yes | The connected account to act on, from `accounts_list` or `account_map`. |
| `content` | object | Yes | — |
| `audit_dimensions` | array | No | — |
| `force_refresh` | boolean | No | — |
| `async` | boolean | No | — |

**Examples** (IDs are illustrative; use the ones earlier calls return):

* Audit a draft caption before publishing: `{"name":"post_audit","arguments":{"account_id":"5c8e1a3b-7d2f-4e6a-9b4c-0f1e3d5a7c92","content":{"type":"post","caption":"Autumn is here. Our new single-origin roast is out now.","hashtags":["#coffee","#autumn"]},"audit_dimensions":["brand_voice","hashtag_strategy"]}}`

**Errors and statuses:**

| Code | When |
| - | - |
| `UPSTREAM_ERROR` | Jaina audit endpoint failed. |
| `NOT_FOUND` | Referenced `post_id` is not in `published_posts`. |
| `BRAND_NOT_SELECTED` | No brand is active. Call `brands_select`. |
| `needs_integration` | The brand has no instagram connection. Call `integrations_connect`. |
| `VALIDATION_ERROR` | An input is missing or wrong, or it changed since the preview. `details` names the field. |

**Related:** `insights_get`, `jobs_status`.

Full schema: `help_describe {"tool":"post_audit"}`. As JSON: [`/mcp/schemas/post_audit.json`](https://docs.trycontinuum.ai/mcp/schemas/post_audit.json).

### `organic_workflow_run`

Plan and schedule a week of organic content end-to-end in one call. mode='`plan_week`' starts a run; mode='resume' continues past an approval gate (pass the `next_step.arguments` the …

| Contract | Behavior |
| - | - |
| Changes things | Yes |
| Listed in your assistant | Not in `tools/list`. Call it by name; `help_describe` has its schema. |
| Role | Operator or higher |
| Needs | An active brand. Connection: Instagram. |
| Confirmation | The person approves the pending change; the approval is the yes. |
| Completion | Returns a `job_id`. Read the result with `jobs_status`. |
| Retry | Not idempotent. Check the current state before retrying. |

**Actions** (`mode`):

| mode | Required inputs | Other inputs it uses |
| - | - | - |
| `plan_week` | `mode`, `weekStart`, `timezone` | `brief`, `platformAccountIds` |
| `resume` | `mode`, `workflow_id`, `approval_token` | `placements`, `skip_placements` |

**Examples** (IDs are illustrative; use the ones earlier calls return):

* Plan next week end to end: `{"name":"organic_workflow_run","arguments":{"mode":"plan_week","weekStart":"2026-11-16","timezone":"America/New_York","brief":"Lead with the autumn roast launch."}}`

**Errors and statuses:**

| Code | When |
| - | - |
| `AWAITING_APPROVAL` | The run paused at a gate (stage '`awaiting_calendar_approval`' or '`awaiting_publish_approval`'). Re-call with mode='resume' and the `next_step.arguments` the gate returned; use `skip_placements` to drop placements. |
| `ADMIN_GRANT_REQUIRED` | Stage '`admin_grant_required`' lists pending `confirm_tokens`; an admin must run `mcp_approval_grant` before the run can resume. |
| `CTX_MISSING_MODE_A_FIELDS` | The call is missing session context. Reconnect the assistant and retry. |
| `INTERNAL` | Something went wrong on our side. Retry once, then contact support. |
| `JOB_ENQUEUE_FAILED` | The job couldn't start. Retry once, then contact support. |
| `UPSTREAM_ERROR` | A platform or provider returned an error. `details` carries its message. |
| `VALIDATION_ERROR` | An input is missing or wrong, or it changed since the preview. `details` names the field. |
| `BRAND_NOT_SELECTED` | No brand is active. Call `brands_select`. |
| `needs_role` | The person's role is too low for this call. Needs: Operator or higher. Ask an Admin or Owner. |
| `needs_integration` | The brand has no instagram connection. Call `integrations_connect`. |

**Related:** `content_create`, `mcp_approval_grant`, `help_describe`.

Full schema: `help_describe {"tool":"organic_workflow_run","action":"plan_week"}`. `help_describe`'s `action` takes a `mode` value. As JSON: [`/mcp/schemas/organic_workflow_run.json`](https://docs.trycontinuum.ai/mcp/schemas/organic_workflow_run.json).

### `organic_media_list`

List recent organic media for a connected account (cache-first, 5-minute TTL).

| Contract | Behavior |
| - | - |
| Changes things | No |
| Listed in your assistant | Not in `tools/list`. Call it by name; `help_describe` has its schema. |
| Role | Viewer or higher |
| Needs | An active brand. Connection: Instagram. |
| Confirmation | None. The call runs when made. |
| Completion | Returns the result in the same call. |
| Retry | Safe to retry: it only reads. |

**Actions** (`platform`):

| platform | Required inputs |
| - | - |
| `instagram` | `platform` |
| `facebook` | `platform` |
| `linkedin` | `platform` |
| `tiktok` | `platform` |
| `youtube` | `platform` |
| `threads` | `platform` |
| `x` | `platform` |

Other inputs, shared by every action (the live schema says which each action reads): `account_id`, `since`, `until`, `media_types`, `limit`, `cursor`.

**Examples** (IDs are illustrative; use the ones earlier calls return):

* Recent IG posts: `{"name":"organic_media_list","arguments":{"platform":"instagram","limit":25}}`

**Errors and statuses:**

| Code | When |
| - | - |
| `INTERNAL` | Something went wrong on our side. Retry once, then contact support. |
| `NOT_FOUND` | The item doesn't exist, or this brand can't see it. |
| `BRAND_NOT_SELECTED` | No brand is active. Call `brands_select`. |
| `needs_integration` | The brand has no instagram connection. Call `integrations_connect`. |
| `VALIDATION_ERROR` | An input is missing or wrong, or it changed since the preview. `details` names the field. |

**Related:** `analytics_query`, `content_create`.

Full schema: `help_describe {"tool":"organic_media_list","action":"instagram"}`. `help_describe`'s `action` takes a `platform` value. As JSON: [`/mcp/schemas/organic_media_list.json`](https://docs.trycontinuum.ai/mcp/schemas/organic_media_list.json).

### `organic_profile_get`

Fetch the public profile (handle, follower count, picture, bio) for a connected organic account.

| Contract | Behavior |
| - | - |
| Changes things | No |
| Listed in your assistant | Not in `tools/list`. Call it by name; `help_describe` has its schema. |
| Role | Viewer or higher |
| Needs | An active brand. Connection: Instagram. |
| Confirmation | None. The call runs when made. |
| Completion | Returns the result in the same call. |
| Retry | Safe to retry: it only reads. |

**Actions** (`platform`):

| platform | Required inputs |
| - | - |
| `instagram` | `platform` |
| `facebook` | `platform` |
| `linkedin` | `platform` |
| `tiktok` | `platform` |
| `youtube` | `platform` |
| `threads` | `platform` |
| `x` | `platform` |

Other inputs, shared by every action (the live schema says which each action reads): `account_id`.

**Examples** (IDs are illustrative; use the ones earlier calls return):

* IG profile: `{"name":"organic_profile_get","arguments":{"platform":"instagram"}}`

**Errors and statuses:**

| Code | When |
| - | - |
| `NOT_IMPLEMENTED` | Non-Instagram platforms not yet supported. |
| `INTERNAL` | Something went wrong on our side. Retry once, then contact support. |
| `NOT_FOUND` | The item doesn't exist, or this brand can't see it. |
| `BRAND_NOT_SELECTED` | No brand is active. Call `brands_select`. |
| `needs_integration` | The brand has no instagram connection. Call `integrations_connect`. |
| `VALIDATION_ERROR` | An input is missing or wrong, or it changed since the preview. `details` names the field. |

**Related:** `organic_media_list`.

Full schema: `help_describe {"tool":"organic_profile_get","action":"instagram"}`. `help_describe`'s `action` takes a `platform` value. As JSON: [`/mcp/schemas/organic_profile_get.json`](https://docs.trycontinuum.ai/mcp/schemas/organic_profile_get.json).

### `organic_inbox_list`

List unified inbox items (DMs, comments, mentions) for a connected Instagram account (cache-first, 30s TTL). **Not available yet:** it returns `NOT_IMPLEMENTED`.

| Contract | Behavior |
| - | - |
| Changes things | No |
| Listed in your assistant | Not in `tools/list`. Call it by name; `help_describe` has its schema. |
| Role | Operator or higher |
| Needs | An active brand. Connection: Instagram. |
| Confirmation | None. The call runs when made. |
| Completion | Returns the result in the same call. |
| Retry | Safe to retry: it only reads. |

**Actions** (`platform`):

| platform | Required inputs |
| - | - |
| `instagram` | `platform` |
| `facebook` | `platform` |
| `linkedin` | `platform` |
| `tiktok` | `platform` |
| `youtube` | `platform` |
| `threads` | `platform` |
| `x` | `platform` |

Other inputs, shared by every action (the live schema says which each action reads): `kinds`, `since`, `limit`, `account_id`.

**Examples** (IDs are illustrative; use the ones earlier calls return):

* List unread DMs: `{"name":"organic_inbox_list","arguments":{"platform":"instagram"}}`

**Errors and statuses:**

| Code | When |
| - | - |
| `NOT_IMPLEMENTED` | Inbox sync not yet implemented. |
| `INTEGRATION_DISCONNECTED` | The connection lapsed. Reconnect it with `integrations_connect`. |
| `INTERNAL` | Something went wrong on our side. Retry once, then contact support. |
| `NOT_FOUND` | The item doesn't exist, or this brand can't see it. |
| `BRAND_NOT_SELECTED` | No brand is active. Call `brands_select`. |
| `needs_role` | The person's role is too low for this call. Needs: Operator or higher. Ask an Admin or Owner. |
| `needs_integration` | The brand has no instagram connection. Call `integrations_connect`. |
| `VALIDATION_ERROR` | An input is missing or wrong, or it changed since the preview. `details` names the field. |

**Related:** `organic_inbox_reply`.

Full schema: `help_describe {"tool":"organic_inbox_list","action":"instagram"}`. `help_describe`'s `action` takes a `platform` value. As JSON: [`/mcp/schemas/organic_inbox_list.json`](https://docs.trycontinuum.ai/mcp/schemas/organic_inbox_list.json).

### `organic_inbox_reply`

Reply to an inbox item (DM, comment, or mention) on Instagram. **Not available yet:** it returns `NOT_IMPLEMENTED`.

| Contract | Behavior |
| - | - |
| Changes things | Yes |
| Listed in your assistant | Not in `tools/list`. Call it by name; `help_describe` has its schema. |
| Role | Operator or higher |
| Needs | An active brand. Connection: Instagram. |
| Confirmation | None. The call runs when made. |
| Completion | Returns the result in the same call. |
| Retry | Not idempotent. Check the current state before retrying. |

**Inputs:**

| Input | Type | Required | About |
| - | - | - | - |
| `inbox_id` | string | Yes | — |
| `message` | string | Yes | — |
| `inbox_type` | string | No | One of `dm`, `comment`, `mention`. |
| `account_id` | string | No | The connected account to act on, from `accounts_list` or `account_map`. |
| `idempotency_key` | string | No | A key you choose. Reuse it only to retry the same request without doing it twice. |

**Examples** (IDs are illustrative; use the ones earlier calls return):

* Reply: `{"name":"organic_inbox_reply","arguments":{"inbox_id":"msg_1","message":"Hi"}}`

**Errors and statuses:**

| Code | When |
| - | - |
| `NOT_IMPLEMENTED` | Inbox reply not yet implemented. |
| `INTEGRATION_DISCONNECTED` | The connection lapsed. Reconnect it with `integrations_connect`. |
| `INTERNAL` | Something went wrong on our side. Retry once, then contact support. |
| `NOT_FOUND` | The item doesn't exist, or this brand can't see it. |
| `BRAND_NOT_SELECTED` | No brand is active. Call `brands_select`. |
| `needs_role` | The person's role is too low for this call. Needs: Operator or higher. Ask an Admin or Owner. |
| `needs_integration` | The brand has no instagram connection. Call `integrations_connect`. |
| `VALIDATION_ERROR` | An input is missing or wrong, or it changed since the preview. `details` names the field. |

**Related:** `organic_inbox_list`.

Full schema: `help_describe {"tool":"organic_inbox_reply"}`. As JSON: [`/mcp/schemas/organic_inbox_reply.json`](https://docs.trycontinuum.ai/mcp/schemas/organic_inbox_reply.json).

## What's next

* [All tools](https://docs.trycontinuum.ai/mcp/tools.md): Every tool on one page, and the machine-readable index.
* [Unlisted tools: agents, brand, and approvals](https://docs.trycontinuum.ai/mcp/tools/unlisted.md): Tools the server accepts by name but does not list, for the agents, brand context, insights, naming, audiences, and admin approvals.


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