# Zernio MCP server

Schedule, publish, and analyze social media across 15+ platforms, plus inbox, ads, and analytics.

## Links
- Registry page: https://www.getdrio.com/mcp/com-zernio-zernio
- Repository: https://github.com/zernio-dev/zernio-python

## Install
- Endpoint: https://mcp.zernio.com/mcp
- Auth: Not captured

## Setup notes
- Remote endpoint: https://mcp.zernio.com/mcp

## Tools
- accounts_list (List all connected social media accounts) - 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. Endpoint: https://mcp.zernio.com/mcp
- accounts_get (Get account details for a specific platform) - Get account details for a specific platform.

Returns username and ID for the first account matching the platform. Endpoint: https://mcp.zernio.com/mcp
- profiles_list (List all profiles) - List all profiles.

Profiles group multiple social accounts together for easier management. Endpoint: https://mcp.zernio.com/mcp
- profiles_get (Get details of a specific profile) - Get details of a specific profile including name, description, and color. Endpoint: https://mcp.zernio.com/mcp
- profiles_create (Create a new profile) - Create a new profile for grouping social accounts. Endpoint: https://mcp.zernio.com/mcp
- profiles_update (Update an existing profile) - Update an existing profile. Only provided fields will be changed. Endpoint: https://mcp.zernio.com/mcp
- profiles_delete (Delete a profile) - Delete a profile. The profile must have no connected accounts. Endpoint: https://mcp.zernio.com/mcp
- posts_list (List posts with optional filtering) - List posts with optional filtering by status.

Status options: draft, scheduled, published, failed Endpoint: https://mcp.zernio.com/mcp
- posts_get (Get details of a specific post) - Get full details of a specific post including content, status, and scheduling info. Endpoint: https://mcp.zernio.com/mcp
- posts_create (Create a social media post (draft, scheduled, or immediate)) - 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 Endpoint: https://mcp.zernio.com/mcp
- posts_publish_now (Publish a post immediately) - 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. Endpoint: https://mcp.zernio.com/mcp
- posts_cross_post (Post the same content to multiple platforms) - 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. Endpoint: https://mcp.zernio.com/mcp
- posts_update (Update an existing post) - Update an existing post.

Only draft, scheduled, and failed posts can be updated.
Published posts cannot be modified. Endpoint: https://mcp.zernio.com/mcp
- posts_delete (Delete a post) - Delete a post by ID.

Published posts cannot be deleted. Endpoint: https://mcp.zernio.com/mcp
- posts_retry (Retry a failed post) - Retry publishing a failed post. Only works on posts with 'failed' status. Endpoint: https://mcp.zernio.com/mcp
- posts_list_failed (List all failed posts) - List all failed posts that can be retried. Endpoint: https://mcp.zernio.com/mcp
- posts_retry_all_failed (Retry all failed posts) - Retry all failed posts at once. Endpoint: https://mcp.zernio.com/mcp
- media_generate_upload_link (Generate an upload URL for media files) - 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 Endpoint: https://mcp.zernio.com/mcp
- media_check_upload_status (Check upload status and get file URLs) - 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). Endpoint: https://mcp.zernio.com/mcp
- docs_search (Search the Late API documentation) - 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. Endpoint: https://mcp.zernio.com/mcp
- account_groups_list_account_groups (List groups) - List groups Endpoint: https://mcp.zernio.com/mcp
- accounts_get_follower_stats (Get follower stats) - Get follower stats Endpoint: https://mcp.zernio.com/mcp
- accounts_move_account_to_profile (Move account to another profile) - Move account to another profile Endpoint: https://mcp.zernio.com/mcp
- accounts_get_all_accounts_health (Check accounts health) - Check accounts health Endpoint: https://mcp.zernio.com/mcp
- accounts_get_account_health (Check account health) - Check account health Endpoint: https://mcp.zernio.com/mcp
- analytics_get_analytics (Get post analytics) - Get post analytics Endpoint: https://mcp.zernio.com/mcp
- analytics_get_daily_metrics (Get daily aggregated 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 social 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. Endpoint: https://mcp.zernio.com/mcp
- analytics_get_best_time_to_post (Get best times to post) - Get best times to post Endpoint: https://mcp.zernio.com/mcp
- analytics_get_post_timeline (Get post analytics 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. Endpoint: https://mcp.zernio.com/mcp
- comments_list_inbox_comments (List commented posts) - List commented posts Endpoint: https://mcp.zernio.com/mcp
- comments_get_inbox_post_comments (Get post comments) - Get post comments Endpoint: https://mcp.zernio.com/mcp
- comments_reply_to_inbox_post (Reply to comment) - Reply to comment Endpoint: https://mcp.zernio.com/mcp
- mentions_list_inbox_mentions (List mentions) - List mentions Endpoint: https://mcp.zernio.com/mcp
- mentions_reply_to_mention (Reply to a mention) - Reply to a mention Endpoint: https://mcp.zernio.com/mcp
- posts_bulk_upload_posts (Bulk upload from CSV) - Bulk upload from CSV

Args:
    dry_run Endpoint: https://mcp.zernio.com/mcp
- posts_unpublish_post (Unpublish post) - Unpublish post Endpoint: https://mcp.zernio.com/mcp
- posts_edit_post (Edit published post) - Edit published post Endpoint: https://mcp.zernio.com/mcp
- queue_list_queue_slots (List schedules) - List schedules Endpoint: https://mcp.zernio.com/mcp
- queue_create_queue_slot (Create schedule) - Create schedule Endpoint: https://mcp.zernio.com/mcp
- queue_update_queue_slot (Update schedule) - Update schedule Endpoint: https://mcp.zernio.com/mcp
- queue_delete_queue_slot (Delete schedule) - Delete schedule Endpoint: https://mcp.zernio.com/mcp
- queue_preview_queue (Preview upcoming slots) - Preview upcoming slots Endpoint: https://mcp.zernio.com/mcp
- queue_get_next_queue_slot (Get next available slot) - Get next available slot Endpoint: https://mcp.zernio.com/mcp
- tracking_tags_list_tracking_tags (List tracking tags) - List tracking tags Endpoint: https://mcp.zernio.com/mcp
- tracking_tags_get_tracking_tag_stats (Get aggregated event stats) - Get aggregated event stats Endpoint: https://mcp.zernio.com/mcp
- usage_get_usage (Usage snapshot (default) or billed-spend metering (with params)) - 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`. Endpoint: https://mcp.zernio.com/mcp
- validate_post_length (Validate character count) - Validate character count Endpoint: https://mcp.zernio.com/mcp
- validate_post (Validate post content) - Validate post content Endpoint: https://mcp.zernio.com/mcp
- validate_media (Validate media URL) - Validate media URL Endpoint: https://mcp.zernio.com/mcp
- search_tools (Search available tools) - Search for tools using natural language.

Returns matching tool definitions ranked by relevance,
in the same format as list_tools. Endpoint: https://mcp.zernio.com/mcp
- call_tool (Call a tool discovered via search) - Call a tool by name with the given arguments.

Use this to execute tools discovered via search_tools. Endpoint: https://mcp.zernio.com/mcp

## Resources
- zernio://docs/overview - What the Zernio API does, when an agent should reach for it, and where the full docs live. MIME type: text/markdown
- zernio://docs/authentication - How to authenticate tool calls: OAuth flow for interactive clients, API keys for headless use. MIME type: text/markdown
- zernio://docs/rate-limits - Request throughput limits per plan tier and the response headers that report them. MIME type: text/markdown

## Prompts
Not captured

## Metadata
- Owner: com.zernio
- Version: 1.0.0
- Runtime: Streamable Http
- Transports: HTTP
- License: Not captured
- Language: Not captured
- Stars: Not captured
- Updated: May 25, 2026
- Source: https://registry.modelcontextprotocol.io
