# Zernio MCP

```json
{
  "name": "Zernio MCP",
  "slug": "zernio_mcp",
  "url": "https://composio.dev/toolkits/zernio_mcp",
  "markdown_url": "https://composio.dev/toolkits/zernio_mcp.md",
  "logo_url": "https://logos.composio.dev/api/zernio_mcp",
  "categories": [
    "marketing & social media"
  ],
  "is_composio_managed": false,
  "updated_at": "2026-08-20T15:34:52.379Z"
}
```

![Zernio MCP logo](https://logos.composio.dev/api/zernio_mcp)

## Description

Securely connect your AI agents and chatbots (Claude, ChatGPT, Cursor, etc) with Zernio MCP or direct API to schedule social posts, pull cross-platform analytics, manage inbox conversations, and run ads through natural language.

## Summary

Zernio is a social media management API for scheduling, analytics, inbox management, and ads across 14+ platforms.
It gives teams one API for Facebook, Instagram, LinkedIn, TikTok, X, YouTube, Reddit, WhatsApp Business, Telegram, and more.

## Categories

- marketing & social media

## Toolkit Details

- Tools: 51

## Images

- Logo: https://logos.composio.dev/api/zernio_mcp

## Authentication

- **Dcr Oauth**
  - Type: `custom`
  - Description: Dcr Oauth authentication for Zernio MCP.
  - Setup:
    - Configure Dcr Oauth credentials for Zernio MCP.
    - Use the credentials when creating an auth config in Composio.

## Suggested Prompts

- Schedule Instagram post for Friday launch
- Pull TikTok analytics from last week
- Reply to Facebook inbox conversations

## Supported Tools

| Tool slug | Name | Description |
|---|---|---|
| `ZERNIO_MCP_ACCOUNT_GROUPS_LIST_ACCOUNT_GROUPS` | Account groups list account groups | List groups |
| `ZERNIO_MCP_ACCOUNTS_GET` | Accounts get | Get account details for a specific platform. Returns username and ID for the first account matching the platform. |
| `ZERNIO_MCP_ACCOUNTS_GET_ACCOUNT_HEALTH` | Accounts get account health | Check account health |
| `ZERNIO_MCP_ACCOUNTS_GET_ALL_ACCOUNTS_HEALTH` | Accounts get all accounts health | Check accounts health |
| `ZERNIO_MCP_ACCOUNTS_GET_FOLLOWER_STATS` | Accounts get follower stats | Get follower stats |
| `ZERNIO_MCP_ACCOUNTS_LIST` | 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. |
| `ZERNIO_MCP_ACCOUNTS_MOVE_ACCOUNT_TO_PROFILE` | Accounts move account to profile | Move account to another profile |
| `ZERNIO_MCP_ANALYTICS_GET_ANALYTICS` | Analytics get analytics | Get post analytics |
| `ZERNIO_MCP_ANALYTICS_GET_BEST_TIME_TO_POST` | Analytics get best time to post | Get best times to post |
| `ZERNIO_MCP_ANALYTICS_GET_DAILY_METRICS` | 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 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. |
| `ZERNIO_MCP_ANALYTICS_GET_POST_TIMELINE` | 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. |
| `ZERNIO_MCP_CALL_TOOL` | Call tool | Call a tool by name with the given arguments. Use this to execute tools discovered via search_tools. |
| `ZERNIO_MCP_COMMENTS_GET_INBOX_POST_COMMENTS` | Comments get inbox post comments | Get post comments |
| `ZERNIO_MCP_COMMENTS_LIST_INBOX_COMMENTS` | Comments list inbox comments | List commented posts |
| `ZERNIO_MCP_COMMENTS_REPLY_TO_INBOX_POST` | Comments reply to inbox post | Reply to comment |
| `ZERNIO_MCP_DOCS_SEARCH` | 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. |
| `ZERNIO_MCP_MEDIA_CHECK_UPLOAD_STATUS` | 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). |
| `ZERNIO_MCP_MEDIA_GENERATE_UPLOAD_LINK` | 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 |
| `ZERNIO_MCP_MENTIONS_LIST_INBOX_MENTIONS` | Mentions list inbox mentions | List mentions |
| `ZERNIO_MCP_MENTIONS_REPLY_TO_MENTION` | Mentions reply to mention | Reply to a mention |
| `ZERNIO_MCP_POSTS_BULK_UPLOAD_POSTS` | Posts bulk upload posts | Bulk upload from CSV Args: dry_run |
| `ZERNIO_MCP_POSTS_CREATE` | 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 |
| `ZERNIO_MCP_POSTS_CROSS_POST` | 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. |
| `ZERNIO_MCP_POSTS_DELETE` | Posts delete | Delete a post by ID. Published posts cannot be deleted. |
| `ZERNIO_MCP_POSTS_EDIT_POST` | Posts edit post | Edit published post |
| `ZERNIO_MCP_POSTS_GET` | Posts get | Get full details of a specific post including content, status, and scheduling info. |
| `ZERNIO_MCP_POSTS_LIST` | Posts list | List posts with optional filtering by status. Status options: draft, scheduled, published, failed |
| `ZERNIO_MCP_POSTS_LIST_FAILED` | Posts list failed | List all failed posts that can be retried. |
| `ZERNIO_MCP_POSTS_PUBLISH_NOW` | 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. |
| `ZERNIO_MCP_POSTS_RETRY` | Posts retry | Retry publishing a failed post. Only works on posts with 'failed' status. |
| `ZERNIO_MCP_POSTS_RETRY_ALL_FAILED` | Posts retry all failed | Retry all failed posts at once. |
| `ZERNIO_MCP_POSTS_UNPUBLISH_POST` | Posts unpublish post | Unpublish post |
| `ZERNIO_MCP_POSTS_UPDATE` | Posts update | Update an existing post. Only draft, scheduled, and failed posts can be updated. Published posts cannot be modified. |
| `ZERNIO_MCP_PROFILES_CREATE` | Profiles create | Create a new profile for grouping social accounts. |
| `ZERNIO_MCP_PROFILES_DELETE` | Profiles delete | Delete a profile. The profile must have no connected accounts. |
| `ZERNIO_MCP_PROFILES_GET` | Profiles get | Get details of a specific profile including name, description, and color. |
| `ZERNIO_MCP_PROFILES_LIST` | Profiles list | List all profiles. Profiles group multiple social accounts together for easier management. |
| `ZERNIO_MCP_PROFILES_UPDATE` | Profiles update | Update an existing profile. Only provided fields will be changed. |
| `ZERNIO_MCP_QUEUE_CREATE_QUEUE_SLOT` | Queue create queue slot | Create schedule |
| `ZERNIO_MCP_QUEUE_DELETE_QUEUE_SLOT` | Queue delete queue slot | Delete schedule |
| `ZERNIO_MCP_QUEUE_GET_NEXT_QUEUE_SLOT` | Queue get next queue slot | Get next available slot |
| `ZERNIO_MCP_QUEUE_LIST_QUEUE_SLOTS` | Queue list queue slots | List schedules |
| `ZERNIO_MCP_QUEUE_PREVIEW_QUEUE` | Queue preview queue | Preview upcoming slots |
| `ZERNIO_MCP_QUEUE_UPDATE_QUEUE_SLOT` | Queue update queue slot | Update schedule |
| `ZERNIO_MCP_SEARCH_TOOLS` | Search tools | Search for tools using natural language. Returns matching tool definitions ranked by relevance, in the same format as list_tools. |
| `ZERNIO_MCP_TRACKING_TAGS_GET_TRACKING_TAG_STATS` | Tracking tags get tracking tag stats | Get aggregated event stats |
| `ZERNIO_MCP_TRACKING_TAGS_LIST_TRACKING_TAGS` | Tracking tags list tracking tags | List tracking tags |
| `ZERNIO_MCP_USAGE_GET_USAGE` | 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`. |
| `ZERNIO_MCP_VALIDATE_MEDIA` | Validate media | Validate media URL |
| `ZERNIO_MCP_VALIDATE_POST` | Validate post | Validate post content |
| `ZERNIO_MCP_VALIDATE_POST_LENGTH` | Validate post length | Validate character count |

## Supported Triggers

None listed.

## Installation and MCP Setup

### Path 1: SDK Installation

#### Path 1, Step 1: Install Composio

Install the Composio SDK
```python
pip install composio_openai
```

```typescript
npm install @composio/openai
```

#### Path 1, Step 2: Initialize Composio and Create Tool Router Session

Import and initialize Composio client, then create a Tool Router session
```python
from openai import OpenAI
from composio import Composio
from composio_openai import OpenAIResponsesProvider

composio = Composio(provider=OpenAIResponsesProvider())
openai = OpenAI()
session = composio.create(user_id='your-user-id')
```

```typescript
import OpenAI from 'openai';
import { Composio } from '@composio/core';
import { OpenAIResponsesProvider } from '@composio/openai';

const composio = new Composio({
  provider: new OpenAIResponsesProvider(),
});
const openai = new OpenAI({});
const session = await composio.create('your-user-id');
```

#### Path 1, Step 3: Execute Zernio MCP Tools via Tool Router with Your Agent

Get tools from Tool Router session and execute Zernio MCP actions with your Agent
```python
tools = session.tools
response = openai.responses.create(
  model='gpt-4.1',
  tools=tools,
  input=[{
    'role': 'user',
    'content': 'Schedule a LinkedIn post for tomorrow at 9 AM announcing our product launch'
  }]
)
result = composio.provider.handle_tool_calls(
  response=response,
  user_id='your-user-id'
)
print(result)
```

```typescript
const tools = session.tools;
const response = await openai.responses.create({
  model: 'gpt-4.1',
  tools: tools,
  input: [{
    role: 'user',
    content: 'Schedule a LinkedIn post for tomorrow at 9 AM announcing our product launch'
  }],
});
const result = await composio.provider.handleToolCalls(
  'your-user-id',
  response.output
);
console.log(result);
```

### Path 2: MCP Server Setup

#### Path 2, Step 1: Install Composio

Install the Composio SDK for Python or TypeScript
```python
pip install composio claude-agent-sdk
```

```typescript
npm install @composio/core ai @ai-sdk/openai @ai-sdk/mcp
```

#### Path 2, Step 2: Initialize Client and Create Tool Router Session

Import and initialize the Composio client, then create a Tool Router session for Zernio MCP
```python
from composio import Composio
from claude_agent_sdk import ClaudeSDKClient, ClaudeAgentOptions

composio = Composio(api_key='your-composio-api-key')
session = composio.create(user_id='your-user-id')
url = session.mcp.url
```

```typescript
import { Composio } from '@composio/core';

const composio = new Composio({ apiKey: 'your-api-key' });
const session = await composio.create('your-user-id');
console.log(`Tool Router session created: ${session.mcp.url}`);
```

#### Path 2, Step 3: Connect to AI Agent

Use the MCP server with your AI agent (Anthropic Claude or Mastra)
```python
import asyncio

options = ClaudeAgentOptions(
    permission_mode='bypassPermissions',
    mcp_servers={
        'tool_router': {
            'type': 'http',
            'url': url,
            'headers': {
                'x-api-key': 'your-composio-api-key'
            }
        }
    },
    system_prompt='You are a helpful assistant with access to Zernio MCP tools.',
    max_turns=10
)

async def main():
    async with ClaudeSDKClient(options=options) as client:
        await client.query('Pull Instagram and TikTok analytics for the last 7 days and summarize engagement trends')
        async for message in client.receive_response():
            if hasattr(message, 'content'):
                for block in message.content:
                    if hasattr(block, 'text'):
                        print(block.text)

asyncio.run(main())
```

```typescript
import { openai } from '@ai-sdk/openai';
import { experimental_createMCPClient as createMCPClient } from '@ai-sdk/mcp';
import { generateText } from 'ai';

const client = await createMCPClient({
  transport: {
    type: 'http',
    url: session.mcp.url,
    headers: {
      'x-api-key': 'your-composio-api-key',
    },
  },
});

const tools = await client.tools();
const { text } = await generateText({
  model: openai('gpt-4o'),
  tools,
  messages: [{
    role: 'user',
    content: 'Pull Instagram and TikTok analytics for the last 7 days and summarize engagement trends'
  }],
  maxSteps: 5,
});

console.log(`Agent: ${text}`);
```

## Why Use Composio?

### 1. AI Native Zernio MCP Integration

- Supports both Zernio MCP and direct API based integrations
- Structured, LLM-friendly schemas for reliable social media tool execution
- Rich coverage for scheduling posts, reading analytics, managing inboxes, and handling ad workflows across Zernio

### 2. Managed Auth

- Built-in OAuth handling with automatic token refresh and rotation
- Central place to manage, scope, and revoke Zernio MCP access
- Per user and per environment credentials instead of hard-coded keys

### 3. Agent Optimized Design

- Tools are tuned using real error and success rates to improve reliability over time
- Comprehensive execution logs so you always know which post, inbox action, analytics pull, or ad task ran, when, and on whose behalf

### 4. Enterprise Grade Security

- Fine-grained RBAC so you control which agents and users can access Zernio MCP
- Scoped, least privilege access to Zernio social accounts, analytics, inboxes, and ad resources
- Full audit trail of agent actions to support review and compliance

## Use Zernio MCP with any AI Agent Framework

Choose a framework you want to connect Zernio MCP with:

None listed.

## Related Toolkits

- [Reddit](https://composio.dev/toolkits/reddit) - Reddit is a social news platform with thriving user-driven communities (subreddits). It's the go-to place for discussion, content sharing, and viral marketing.
- [Facebook](https://composio.dev/toolkits/facebook) - Facebook is a social media and advertising platform for businesses and creators. It helps you connect, share, and manage content across your public Facebook Pages.
- [Linkedin](https://composio.dev/toolkits/linkedin) - LinkedIn is a professional networking platform for connecting, sharing content, and engaging with business opportunities. It's the go-to place for building your professional brand and unlocking new career connections.
- [Active campaign](https://composio.dev/toolkits/active_campaign) - ActiveCampaign is a marketing automation and CRM platform for managing email campaigns, sales pipelines, and customer segmentation. It helps businesses engage customers and drive growth through smart automation and targeted outreach.
- [ActiveTrail](https://composio.dev/toolkits/active_trail) - ActiveTrail is a user-friendly email marketing and automation platform. It helps you reach subscribers and automate campaigns with ease.
- [Ahrefs](https://composio.dev/toolkits/ahrefs) - Ahrefs is an SEO and marketing platform for site audits, keyword research, and competitor insights. It helps you improve search rankings and drive organic traffic.
- [AimTell](https://composio.dev/toolkits/aimtell) - AimTell is a web push notification platform for managing websites, subscribers, campaigns, segments, and delivery analytics. Use it to send targeted browser notifications and measure engagement across your web push campaigns.
- [Amcards](https://composio.dev/toolkits/amcards) - AMCards lets you create and mail personalized greeting cards online. Build stronger customer relationships with easy, automated card campaigns.
- [Beamer](https://composio.dev/toolkits/beamer) - Beamer is a news and changelog platform for in-app announcements and feature updates. It helps companies boost user engagement by sharing news where users are most active.
- [Benchmark email](https://composio.dev/toolkits/benchmark_email) - Benchmark Email is a platform for creating, sending, and tracking email campaigns. It's built to help you engage audiences and analyze results—all in one place.
- [Bigmailer](https://composio.dev/toolkits/bigmailer) - BigMailer is an email marketing platform for managing multiple brands with white-labeling and automation. It helps teams streamline campaigns and simplify integration with Amazon SES.
- [Bitly](https://composio.dev/toolkits/bitly) - Bitly is a link management platform for shortening, customizing, sharing, and tracking links and QR codes. It helps teams create branded links and measure engagement across campaigns.
- [Brandfetch](https://composio.dev/toolkits/brandfetch) - Brandfetch is an API that delivers company logos, colors, and visual branding assets. It helps marketers and developers keep brand visuals consistent everywhere.
- [Brevo](https://composio.dev/toolkits/brevo) - Brevo is an all-in-one email and SMS marketing platform for transactional messaging, automation, and CRM. It helps businesses engage customers and streamline communications through powerful campaign tools.
- [Buffer](https://composio.dev/toolkits/buffer) - Buffer is a social media management platform for planning, creating, scheduling, and publishing posts across connected channels. It helps teams keep content organized and publish consistently without jumping between social apps.
- [BulkPublish](https://composio.dev/toolkits/bulkpublish) - BulkPublish is a social media publishing platform for managing scheduled content across multiple channels. It helps teams plan campaigns, publish consistently, and track performance in one place.
- [Campayn](https://composio.dev/toolkits/campayn) - Campayn is an email marketing platform for creating, sending, and managing campaigns. It helps businesses engage contacts and grow audiences with easy-to-use tools.
- [Cardly](https://composio.dev/toolkits/cardly) - Cardly is a platform for creating and sending personalized direct mail to customers. It helps businesses break through the digital clutter by getting real engagement via physical mailboxes.
- [ClickSend](https://composio.dev/toolkits/clicksend) - ClickSend is a cloud-based SMS and email marketing platform for businesses. It streamlines communication by enabling quick message delivery and contact management.
- [Constant Contact](https://composio.dev/toolkits/constant_contact) - Constant Contact is an email marketing and automation platform for small businesses. It helps teams build campaigns, manage contacts, and grow customer relationships.

## Frequently Asked Questions

### Do I need my own developer credentials to use Zernio MCP with Composio?

Yes, Zernio MCP requires you to configure your own DCR OAuth credentials. Once set up, Composio handles secure credential storage and management for you.

### Can I use multiple toolkits together?

Yes! Composio's Tool Router enables agents to use multiple toolkits. [Learn more](https://docs.composio.dev/tool-router/overview).

### Is Composio secure?

Composio is SOC 2 and ISO 27001 compliant with all data encrypted in transit and at rest. [Learn more](https://trust.composio.dev).

### What if the API changes?

Composio maintains and updates all toolkit integrations automatically, so your agents always work with the latest API versions.

---
[See all toolkits](https://composio.dev/toolkits) · [Composio docs](https://docs.composio.dev/llms.txt)
