---
canonical_url: "https://docs.composio.dev/toolkits/zernio_mcp"
markdown_url: "https://docs.composio.dev/toolkits/zernio_mcp.md"
product: "platform"
version: null
last_updated: null
---

# Zernio MCP

Zernio is a social media management API for scheduling posts, pulling analytics, managing inbox conversations and running ads across 14+ platforms including Facebook, Instagram, LinkedIn, TikTok, X, YouTube, Reddit, Pinterest, WhatsApp Business and Telegram.

- **Category:** social media marketing
- **Auth:** DCR_OAUTH
- **Composio-managed OAuth available?** No
- **Tools:** 52
- **Triggers:** 0
- **Slug:** `ZERNIO_MCP`
- **Version:** 20260910_00

## Tools

### Account groups list account groups

**Slug:** `ZERNIO_MCP_ACCOUNT_GROUPS_LIST_ACCOUNT_GROUPS`

List groups

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `result` | string | Yes |  |

### Accounts get

**Slug:** `ZERNIO_MCP_ACCOUNTS_GET`

Get account details for a specific platform.

Returns username and ID for the first account matching the platform.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `platform` | string | Yes | Platform name: twitter, instagram, linkedin, tiktok, bluesky, facebook, youtube, pinterest, threads (required) |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `result` | string | Yes |  |

### Accounts get account health

**Slug:** `ZERNIO_MCP_ACCOUNTS_GET_ACCOUNT_HEALTH`

Check account health

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `account_id` | string | Yes | The account ID to check (required) |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `result` | string | Yes |  |

### Accounts get all accounts health

**Slug:** `ZERNIO_MCP_ACCOUNTS_GET_ALL_ACCOUNTS_HEALTH`

Check accounts health

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `status` | string | No | Filter by health status |
| `platform` | string | No | Filter by platform |
| `profile_id` | string | No | Filter by profile ID |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `result` | string | Yes |  |

### Accounts get follower stats

**Slug:** `ZERNIO_MCP_ACCOUNTS_GET_FOLLOWER_STATS`

Get follower stats

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `to_date` | string | No | End date in YYYY-MM-DD format (defaults to today) |
| `from_date` | string | No | Start date in YYYY-MM-DD format (defaults to 30 days ago) |
| `profile_id` | string | No | Filter by profile ID |
| `account_ids` | string | No | Comma-separated list of account IDs (optional, defaults to all user's accounts) |
| `granularity` | string | No | Data aggregation level |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `result` | string | Yes |  |

### Accounts list

**Slug:** `ZERNIO_MCP_ACCOUNTS_LIST`

List all connected social media accounts.

Returns the platform, username, and account ID for each connected account.
Use this to find account IDs needed for creating posts.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `result` | string | Yes |  |

### Accounts move account to profile

**Slug:** `ZERNIO_MCP_ACCOUNTS_MOVE_ACCOUNT_TO_PROFILE`

Move account to another profile

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `account_id` | string | Yes | (required) |
| `profile_id` | string | Yes | Target profile ID (must be a valid ObjectId and owned by the same user as the account). (required) |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `result` | string | Yes |  |

### Analytics get analytics

**Slug:** `ZERNIO_MCP_ANALYTICS_GET_ANALYTICS`

Get post analytics

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `page` | integer | No | Page number (default 1) |
| `limit` | integer | No | Page size (default 50) |
| `order` | string | No | Sort order |
| `source` | string | No | Filter by post source: late (posted via Zernio API), external (synced from platform), all (default) |
| `post_id` | string | No | Returns analytics for a single post. Accepts both Zernio Post IDs and External Post IDs. Zernio IDs are auto-resolved to External Post analytics. |
| `sort_by` | string | No | Sort by date, engagement, or a specific metric. Instagram-only metrics (follows, reposts, reels_skip_rate, ig_reels_*) sort a null value as 0. |
| `to_date` | string | No | Inclusive upper bound (YYYY-MM-DD). Defaults to today if omitted. |
| `platform` | string | No | Filter by platform (default "all") |
| `from_date` | string | No | Inclusive lower bound (YYYY-MM-DD). Defaults to 90 days ago if omitted. Max range is 366 days. |
| `account_id` | string | No | Filter by account ID |
| `profile_id` | string | No | Filter by profile ID (default "all") |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `result` | string | Yes |  |

### Analytics get best time to post

**Slug:** `ZERNIO_MCP_ANALYTICS_GET_BEST_TIME_TO_POST`

Get best times to post

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `source` | string | No | Filter by post origin. "late" for posts published via Zernio, "external" for posts imported from platforms. |
| `platform` | string | No | Filter by platform (e.g. "instagram", "tiktok"). Omit for all platforms. |
| `account_id` | string | No | Filter by account ID. Omit for all accounts. |
| `profile_id` | string | No | Filter by profile ID. Omit for all profiles. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `result` | string | Yes |  |

### Analytics get daily metrics

**Slug:** `ZERNIO_MCP_ANALYTICS_GET_DAILY_METRICS`

Get daily aggregated metrics

    Args:
        platform: Filter by platform (e.g. "instagram", "tiktok"). Omit for all platforms.
        profile_id: Filter by profile ID. Omit for all profiles.
        account_id: Filter by account ID
        from_date: Inclusive start date (ISO 8601). Defaults to 180 days ago.
        to_date: Inclusive end date (ISO 8601). Defaults to now.
        source: Filter by post origin. "late" for posts published via Zernio, "external" for posts imported from platforms.
        attribution: How each post's engagement is attributed to a day.
"publish" (default) sums each post's lifetime total on its publish date.
"received" buckets the per-day increase in engagement by the day it actually arrived (engagement-over-time), so engagement on older posts appears on the day it was gained rather than the post's publish date.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `source` | string | No |  |
| `to_date` | string | No |  |
| `platform` | string | No |  |
| `from_date` | string | No |  |
| `account_id` | string | No |  |
| `profile_id` | string | No |  |
| `attribution` | string | No |  |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `result` | string | Yes |  |

### Analytics get post timeline

**Slug:** `ZERNIO_MCP_ANALYTICS_GET_POST_TIMELINE`

Get post analytics timeline

   Args:
       post_id: The post to fetch timeline for. Accepts an ExternalPost ID, a platformPostId, or a Zernio Post ID.
(required)
       from_date: Start of date range (ISO 8601). Defaults to 90 days ago.
       to_date: End of date range (ISO 8601). Defaults to now.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `post_id` | string | Yes |  |
| `to_date` | string | No |  |
| `from_date` | string | No |  |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `result` | string | Yes |  |

### Call tool

**Slug:** `ZERNIO_MCP_CALL_TOOL`

Call a tool by name with the given arguments.

Use this to execute tools discovered via search_tools.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | Yes | The name of the tool to call |
| `arguments` | string | No | Arguments to pass to the tool |

### Comments get inbox post comments

**Slug:** `ZERNIO_MCP_COMMENTS_GET_INBOX_POST_COMMENTS`

Get post comments

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `limit` | integer | No | Maximum number of comments to return |
| `cursor` | string | No | Pagination cursor, returned by a previous call as `pagination.cursor`. This is the platform's own opaque paging value passed through verbatim: never construct, decode or validate it client-side. |
| `post_id` | string | Yes | Zernio post ID or platform-specific post ID. Zernio IDs are auto-resolved. LinkedIn third-party posts accept full activity URN or numeric ID. On Facebook and Instagram, a comment ID is also accepted here and returns that comment's replies. (required) |
| `subreddit` | string | No | (Reddit only) Subreddit name |
| `account_id` | string | Yes | (required) |
| `comment_id` | string | No | (Reddit only) Get replies to a specific comment |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `result` | string | Yes |  |

### Comments list inbox comments

**Slug:** `ZERNIO_MCP_COMMENTS_LIST_INBOX_COMMENTS`

List commented posts

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `limit` | integer | No |  |
| `since` | string | No | Posts created after this date |
| `cursor` | string | No |  |
| `sort_by` | string | No | Sort field |
| `platform` | string | No | Filter by platform. `metaads` is a synthetic value meaning the user's ads (boosted/dark posts) only; `facebook`/`instagram` return organic posts only. |
| `account_id` | string | No | Filter by specific account ID |
| `profile_id` | string | No | Filter by profile ID |
| `sort_order` | string | No | Sort order |
| `min_comments` | string | No | Minimum comment count |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `result` | string | Yes |  |

### Comments reply to inbox post

**Slug:** `ZERNIO_MCP_COMMENTS_REPLY_TO_INBOX_POST`

Reply to comment

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `message` | string | Yes | (required) |
| `post_id` | string | Yes | Zernio post ID or platform-specific post ID. LinkedIn third-party posts accept full activity URN or numeric ID. (required) |
| `root_cid` | string | No | (Bluesky only) Root post CID |
| `root_uri` | string | No | (Bluesky only) Root post URI |
| `account_id` | string | Yes | (required) |
| `comment_id` | string | No | Reply to specific comment (optional) |
| `parent_cid` | string | No | (Bluesky only) Parent content identifier |
| `attachment_url` | string | No | (Facebook only) URL of an image to attach, publishing a photo comment alongside the text. The URL must be publicly accessible so Meta can fetch it. Returns 400 for other platforms. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `result` | string | Yes |  |

### Docs search

**Slug:** `ZERNIO_MCP_DOCS_SEARCH`

Search across the Late API documentation to find relevant information, code examples, API references, and guides.

Use this tool when you need to answer questions about Late, find specific documentation, understand how features work, or locate implementation details.

The search returns contextual content with section titles and relevant snippets.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `query` | string | Yes | Search query (e.g., 'webhooks', 'create post', 'authentication') (required) |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `result` | string | Yes |  |

### Media check upload status

**Slug:** `ZERNIO_MCP_MEDIA_CHECK_UPLOAD_STATUS`

Check the status of an upload token and get uploaded file URLs.

Use this after the user has uploaded files through the browser upload page.
Returns: pending (waiting for upload), completed (files ready), or expired (token expired).

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `token` | string | Yes | The upload token from media_generate_upload_link (required) |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `result` | string | Yes |  |

### Media generate upload link

**Slug:** `ZERNIO_MCP_MEDIA_GENERATE_UPLOAD_LINK`

Generate a unique upload URL for the user to upload files via browser.

Use this when the user wants to include images or videos in their post.
The flow is:
1. Call this tool to get an upload URL
2. Ask the user to open the URL in their browser
3. User uploads files through the web interface
4. Call media_check_upload_status to get the uploaded file URLs
5. Use those URLs when creating the post with posts_create

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `result` | string | Yes |  |

### Mentions list inbox mentions

**Slug:** `ZERNIO_MCP_MENTIONS_LIST_INBOX_MENTIONS`

List mentions

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `limit` | integer | No |  |
| `cursor` | string | No | Cursor for pagination (ID of the last item from the previous page) |
| `account_id` | string | No | Filter by account ID |
| `profile_id` | string | No | Filter by profile ID |
| `sort_order` | string | No | Sort order by publishedAt |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `result` | string | Yes |  |

### Mentions reply to mention

**Slug:** `ZERNIO_MCP_MENTIONS_REPLY_TO_MENTION`

Reply to a mention

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `message` | string | Yes | The reply text (required) |
| `media_id` | string | Yes | The ID of the media the account was mentioned in (required) |
| `account_id` | string | Yes | The Instagram account ID (required) |
| `comment_id` | string | No | The mentioning comment's ID. Omit for a caption mention. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `result` | string | Yes |  |

### Posts bulk upload posts

**Slug:** `ZERNIO_MCP_POSTS_BULK_UPLOAD_POSTS`

Bulk upload from CSV

Args:
    dry_run

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `dry_run` | boolean | No |  |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `result` | string | Yes |  |

### Posts create

**Slug:** `ZERNIO_MCP_POSTS_CREATE`

Create a social media post. Can be saved as DRAFT, SCHEDULED, or PUBLISHED immediately.

⚠️ IMPORTANT - Choose the correct mode based on user intent:

**DRAFT MODE (is_draft=True)**
Use when user says: "draft", "borrador", "save for later", "don't publish", "save it", "guardar"
→ Post is saved but NOT published and NOT scheduled. User can edit it later.

**IMMEDIATE MODE (publish_now=True)**
Use when user says: "publish now", "post now", "publica ya", "immediately", "right now", "ahora"
→ Post goes live IMMEDIATELY.

**SCHEDULED MODE (default)**
Use when user says: "schedule", "programar", "in X minutes/hours", "at 3pm", "tomorrow"
→ Post is scheduled for future publication. Use schedule_minutes to set the delay.

⚠️ MULTI-ACCOUNT USERS (agencies, multi-client setups):
If the user has more than one account on the target platform, you MUST pass
`account_id`. Call `accounts_list` (or `profiles_list` then `accounts_list`)
first to discover the right ID. If you omit account_id when multiple accounts
exist, the tool returns an error listing the candidates - use it to retry.

Examples:
- "Create a draft tweet" → is_draft=True
- "Post this to Twitter now" → publish_now=True
- "Schedule a LinkedIn post for 2 hours from now" → schedule_minutes=120
- "Post this to Acme's Twitter" → call accounts_list, find Acme's twitter ID, pass account_id

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `title` | string | No | Post title (required for YouTube, recommended for Pinterest) Default: . |
| `content` | string | Yes | The post text/content (required) |
| `is_draft` | boolean | No | Set to True to save as DRAFT (not published, not scheduled). Use when user wants to save without publishing Default: False. |
| `platform` | string | Yes | Target platform: twitter, instagram, linkedin, tiktok, bluesky, facebook, youtube, pinterest, threads (required) |
| `account_id` | string | No | Specific account ID to post from. REQUIRED when the user has multiple accounts on this platform. Call accounts_list first to find IDs. Leave empty only if there is exactly one account for this platform. Default: . |
| `media_urls` | string | No | Comma-separated URLs of media files to attach (images, videos) Default: . |
| `profile_id` | string | No | Scope account resolution to one profile (e.g. one client in an agency setup). Use when account_id is unknown but the target profile is. Call profiles_list to find IDs. Default: . |
| `publish_now` | boolean | No | Set to True to publish IMMEDIATELY. Post goes live right now Default: False. |
| `schedule_minutes` | integer | No | Minutes from now to schedule. Only used when is_draft=False AND publish_now=False Default: 60. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `result` | string | Yes |  |

### Posts cross post

**Slug:** `ZERNIO_MCP_POSTS_CROSS_POST`

Post the same content to multiple platforms at once.

⚠️ IMPORTANT - Choose the correct mode based on user intent:

**DRAFT MODE (is_draft=True)**
Use when user says: "draft", "borrador", "save for later", "don't publish"
→ Posts are saved but NOT published. User can edit them later.

**IMMEDIATE MODE (publish_now=True)**
Use when user says: "publish now", "post now", "immediately"
→ Posts go live IMMEDIATELY on all platforms.

**SCHEDULED MODE (default)**
Use when user says: "schedule", "programar", "in X hours"
→ Posts are scheduled for 1 hour from now.

⚠️ MULTI-ACCOUNT USERS:
- To pick a specific account per platform, pass `account_ids` parallel to
  `platforms` (same order, comma-separated). Use empty string for a position
  to fall back to profile/auto-resolution.
- To target multiple accounts of the SAME platform in one call, repeat the
  platform: platforms='twitter,twitter', account_ids='acc_a,acc_b'.
- If you omit account_ids and the user has multiple accounts for any of the
  requested platforms, the tool errors with the candidate list - use it to retry.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `content` | string | Yes | The post text/content (required) |
| `is_draft` | boolean | No | Set to True to save as DRAFT (not published). Use when user wants to save without publishing Default: False. |
| `platforms` | string | Yes | Comma-separated list of platforms (e.g., 'twitter,linkedin,bluesky'). Repeat a platform to target multiple accounts of it: 'twitter,twitter'. (required) |
| `media_urls` | string | No | Comma-separated URLs of media files to attach Default: . |
| `profile_id` | string | No | Scope auto-resolution to one profile when account_ids is empty. Default: . |
| `account_ids` | string | No | Comma-separated account IDs, parallel to `platforms`. Empty positions fall back to profile/auto-resolution. Required for multi-account users to disambiguate. Default: . |
| `publish_now` | boolean | No | Set to True to publish IMMEDIATELY to all platforms Default: False. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `result` | string | Yes |  |

### Posts delete

**Slug:** `ZERNIO_MCP_POSTS_DELETE`

Delete a post by ID.

Published posts cannot be deleted.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `post_id` | string | Yes | The post ID to delete (required) |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `result` | string | Yes |  |

### Posts edit post

**Slug:** `ZERNIO_MCP_POSTS_EDIT_POST`

Edit published post

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `content` | string | Yes | The new post text content (required) |
| `post_id` | string | Yes | (required) |
| `platform` | string | Yes | The platform to edit the post on. (required) |
| `account_id` | string | No | Which account's copy of the post to edit when the post was published to several accounts on the same platform; defaults to the first. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `result` | string | Yes |  |

### Posts get

**Slug:** `ZERNIO_MCP_POSTS_GET`

Get full details of a specific post including content, status, and scheduling info.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `post_id` | string | Yes | The post ID to retrieve (required) |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `result` | string | Yes |  |

### Posts list

**Slug:** `ZERNIO_MCP_POSTS_LIST`

List posts with optional filtering by status.

Status options: draft, scheduled, published, failed

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `limit` | integer | No | Maximum number of posts to return Default: 10. |
| `status` | string | No | Filter by status: draft, scheduled, published, failed. Leave empty for all posts Default: . |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `result` | string | Yes |  |

### Posts list failed

**Slug:** `ZERNIO_MCP_POSTS_LIST_FAILED`

List all failed posts that can be retried.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `limit` | integer | No | Maximum number of posts to return Default: 10. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `result` | string | Yes |  |

### Posts publish now

**Slug:** `ZERNIO_MCP_POSTS_PUBLISH_NOW`

Publish a post immediately to a platform. The post goes live right away.

Use this when user explicitly wants to publish NOW, not schedule for later.
This is a convenience wrapper around posts_create with publish_now=True.

⚠️ MULTI-ACCOUNT USERS: pass `account_id` when the user has more than one
account on this platform. Call `accounts_list` first to find the right ID.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `content` | string | Yes | The post text/content (required) |
| `platform` | string | Yes | Target platform: twitter, instagram, linkedin, tiktok, bluesky, etc. (required) |
| `account_id` | string | No | Specific account ID. REQUIRED when the user has multiple accounts on this platform. Leave empty only if there is exactly one. Default: . |
| `media_urls` | string | No | Comma-separated URLs of media files to attach Default: . |
| `profile_id` | string | No | Scope auto-resolution to a single profile when account_id is unknown. Default: . |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `result` | string | Yes |  |

### Posts retry

**Slug:** `ZERNIO_MCP_POSTS_RETRY`

Retry publishing a failed post. Only works on posts with 'failed' status.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `post_id` | string | Yes | The ID of the failed post to retry (required) |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `result` | string | Yes |  |

### Posts retry all failed

**Slug:** `ZERNIO_MCP_POSTS_RETRY_ALL_FAILED`

Retry all failed posts at once.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `result` | string | Yes |  |

### Posts unpublish post

**Slug:** `ZERNIO_MCP_POSTS_UNPUBLISH_POST`

Unpublish post

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `post_id` | string | Yes | (required) |
| `platform` | string | Yes | The platform to delete the post from (required) |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `result` | string | Yes |  |

### Posts update

**Slug:** `ZERNIO_MCP_POSTS_UPDATE`

Update an existing post.

Only draft, scheduled, and failed posts can be updated.
Published posts cannot be modified.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `title` | string | No | New title (leave empty to keep current) Default: . |
| `content` | string | No | New content (leave empty to keep current) Default: . |
| `post_id` | string | Yes | The post ID to update (required) |
| `scheduled_for` | string | No | New schedule time as ISO string (leave empty to keep current) Default: . |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `result` | string | Yes |  |

### Profiles create

**Slug:** `ZERNIO_MCP_PROFILES_CREATE`

Create a new profile for grouping social accounts.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | Yes | Profile name (required) |
| `color` | string | No | Optional hex color (e.g., '#4CAF50') Default: . |
| `description` | string | No | Optional description Default: . |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `result` | string | Yes |  |

### Profiles delete

**Slug:** `ZERNIO_MCP_PROFILES_DELETE`

Delete a profile. The profile must have no connected accounts.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `profile_id` | string | Yes | The profile ID to delete (required) |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `result` | string | Yes |  |

### Profiles get

**Slug:** `ZERNIO_MCP_PROFILES_GET`

Get details of a specific profile including name, description, and color.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `profile_id` | string | Yes | The profile ID (required) |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `result` | string | Yes |  |

### Profiles list

**Slug:** `ZERNIO_MCP_PROFILES_LIST`

List all profiles.

Profiles group multiple social accounts together for easier management.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `result` | string | Yes |  |

### Profiles update

**Slug:** `ZERNIO_MCP_PROFILES_UPDATE`

Update an existing profile. Only provided fields will be changed.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | No | New name (leave empty to keep current) Default: . |
| `color` | string | No | New hex color (leave empty to keep current) Default: . |
| `is_default` | boolean | No | Set as default profile Default: False. |
| `profile_id` | string | Yes | The profile ID to update (required) |
| `description` | string | No | New description (leave empty to keep current) Default: . |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `result` | string | Yes |  |

### Queue create queue slot

**Slug:** `ZERNIO_MCP_QUEUE_CREATE_QUEUE_SLOT`

Create schedule

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | Yes | Queue name (e.g., Evening Posts) (required) |
| `slots` | string | Yes | (required) |
| `active` | boolean | No |  |
| `timezone` | string | Yes | IANA timezone (required) |
| `profile_id` | string | Yes | Profile ID (required) |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `result` | string | Yes |  |

### Queue delete queue slot

**Slug:** `ZERNIO_MCP_QUEUE_DELETE_QUEUE_SLOT`

Delete schedule

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `queue_id` | string | No | Queue ID to delete. Omit to delete all queues for the profile |
| `profile_id` | string | Yes | (required) |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `result` | string | Yes |  |

### Queue get next queue slot

**Slug:** `ZERNIO_MCP_QUEUE_GET_NEXT_QUEUE_SLOT`

Get next available slot

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `queue_id` | string | No | Specific queue ID (optional, defaults to profile's default queue) |
| `profile_id` | string | Yes | (required) |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `result` | string | Yes |  |

### Queue list queue slots

**Slug:** `ZERNIO_MCP_QUEUE_LIST_QUEUE_SLOTS`

List schedules

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `all` | string | No | Set to 'true' to list all queues for the profile |
| `queue_id` | string | No | Specific queue ID to retrieve (optional) |
| `profile_id` | string | Yes | Profile ID to get queues for (required) |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `result` | string | Yes |  |

### Queue preview queue

**Slug:** `ZERNIO_MCP_QUEUE_PREVIEW_QUEUE`

Preview upcoming slots

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `count` | integer | No |  |
| `queue_id` | string | No | Filter by specific queue ID. Omit to use the default queue. |
| `profile_id` | string | Yes | (required) |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `result` | string | Yes |  |

### Queue update queue slot

**Slug:** `ZERNIO_MCP_QUEUE_UPDATE_QUEUE_SLOT`

Update schedule

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | No | Queue name |
| `slots` | string | Yes | (required) |
| `active` | boolean | No |  |
| `queue_id` | string | No | Queue ID to update (optional) |
| `timezone` | string | Yes | (required) |
| `profile_id` | string | Yes | (required) |
| `set_as_default` | string | No | Make this queue the default |
| `reshuffle_existing` | boolean | No | Whether to reschedule existing queued posts to match new slots |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `result` | string | Yes |  |

### Search tools

**Slug:** `ZERNIO_MCP_SEARCH_TOOLS`

Search for tools using natural language.

Returns matching tool definitions ranked by relevance,
in the same format as list_tools.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `query` | string | Yes | Natural language query to search for tools |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `result` | string | Yes |  |

### Tracking tags get tracking tag stats

**Slug:** `ZERNIO_MCP_TRACKING_TAGS_GET_TRACKING_TAG_STATS`

Get aggregated event stats

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `tag_id` | string | Yes | Pixel id. (required) |
| `end_time` | string | No | Unix seconds upper bound. |
| `account_id` | string | Yes | (required) |
| `start_time` | string | No | Unix seconds lower bound. |
| `aggregation` | string | No | Aggregation dimension. Defaults to `event`. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `result` | string | Yes |  |

### Tracking tags list tracking tags

**Slug:** `ZERNIO_MCP_TRACKING_TAGS_LIST_TRACKING_TAGS`

List tracking tags

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `account_id` | string | Yes | Ads SocialAccount id (platform `metaads` or `openaiads`). (required) |
| `ad_account_id` | string | No | Optional, Meta only. Scope to one ad account, e.g. `act_123456789`. Ignored for OpenAI Ads. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `result` | string | Yes |  |

### Usage get usage

**Slug:** `ZERNIO_MCP_USAGE_GET_USAGE`

Usage snapshot (default) or billed-spend metering (with params)

    Args:
        reconcile: Snapshot mode only. For Stripe subscription users, `true` forces a
subscription reconciliation pass even when cached plan data looks
complete.
        range: Window to report. `cycle` / `prev-cycle` resolve to the customer's
real billing-period bounds (falling back to a trailing 30 days when
no invoice exists yet); `7d`…`12mo` are trailing windows; `custom`
uses `from` / `to`.
        from_: Inclusive start (UTC date). Required when `range=custom`.
        to: Inclusive end (UTC date). Required when `range=custom`. Max span 366 days.
        granularity: Bucketing of the `days` series: `day` (one row per UTC day),
`month` (one row per calendar month, dated to the 1st), or `total`
(no series, read `totals`). Does not affect `totals`.
        group_by: Metering mode. Adds `attribution`: the window's spend split per profile or per account (keys are ids; resolve names via `GET /v1/profiles` / `GET /v1/accounts`).
        profile_id: Metering mode (pair with `range`). Project the payload onto this profile's attributed share. Mutually exclusive with `accountId`, and `groupBy` (if given) must be `profile`; 404 when the profile is not in your team (or outside a scoped key's profiles).
        account_id: Metering mode (pair with `range`). Project the payload onto this account's attributed share. Mutually exclusive with `profileId`, and `groupBy` (if given) must be `account`; 404 when the account is not visible to the caller.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `to` | string | No |  |
| `from_` | string | No |  |
| `range` | string | No |  |
| `group_by` | string | No |  |
| `reconcile` | string | No |  |
| `account_id` | string | No |  |
| `profile_id` | string | No |  |
| `granularity` | string | No |  |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `result` | string | Yes |  |

### Validate media

**Slug:** `ZERNIO_MCP_VALIDATE_MEDIA`

Validate media URL

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `url` | string | Yes | Public media URL to validate (required) |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `result` | string | Yes |  |

### Validate post

**Slug:** `ZERNIO_MCP_VALIDATE_POST`

Validate post content

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `content` | string | No | Post text content |
| `platforms` | string | Yes | Target platforms (same format as POST /v1/posts) (required) |
| `media_items` | string | No | Root media items shared across platforms |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `result` | string | Yes |  |

### Validate post length

**Slug:** `ZERNIO_MCP_VALIDATE_POST_LENGTH`

Validate character count

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `text` | string | Yes | The post text to check (required) |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `result` | string | Yes |  |

### Zernio overview

**Slug:** `ZERNIO_MCP_ZERNIO_OVERVIEW`

Show an overview of what this Zernio MCP server can do (accounts, posts, analytics, ads, inbox) and how to find the right tool.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `result` | string | Yes |  |
