Tools
All tools exposed by the Zernio MCP server, parameter reference for the core posting tools, and the browser media upload flow.
The MCP server exposes 480+ tools covering the entire Zernio API: 20 hand-crafted core tools for the common flows, plus one auto-generated tool for every API endpoint.
Core Tools
These hand-crafted tools provide the best experience for common tasks:
| Tool | Description |
|---|---|
accounts_list | Show all connected social media accounts |
accounts_get | Get account details for a specific platform |
profiles_list / get / create / update / delete | Manage profiles |
posts_list / get / create / update / delete | Manage posts |
posts_publish_now | Publish a post immediately |
posts_cross_post | Post to multiple platforms at once |
posts_retry / posts_list_failed / posts_retry_all_failed | Handle failed posts |
media_generate_upload_link | Get a link to upload media files |
media_check_upload_status | Check if media upload is complete |
docs_search | Search the Zernio API documentation |
Auto-Generated Tools
One tool per API endpoint, auto-generated from the OpenAPI spec. Names follow {category}_{operation}, so the listAdCampaigns endpoint becomes ad_campaigns_list_ad_campaigns. All 461 tools, by category:
The auto-generated tools update automatically when new API endpoints are added. You always have access to the latest Zernio API features. Each tool maps 1:1 to an API Reference operation, where the full request and response schemas live.
Tool Reference
Detailed parameters for the core tools.
Posts
Multi-account users (agencies, multi-client setups): when you have more than one account on the same platform, you must pass account_id (or profile_id) to disambiguate. The write tools below return an error with the candidate account IDs if the selection is ambiguous, instead of silently picking one. Call accounts_list first to discover IDs. Available in zernio-sdk 1.4.0+.
posts_create
Create a social media post. Can be saved as DRAFT, SCHEDULED, or PUBLISHED immediately.
Choose the correct mode based on user intent:
- DRAFT MODE (
is_draft=true): Use when user says "draft", "save for later", "don't publish". Post is saved but NOT published. - IMMEDIATE MODE (
publish_now=true): Use when user says "publish now", "post now", "immediately". Post goes live right away. - SCHEDULED MODE (default): Use when user says "schedule", "in X minutes/hours". Post is scheduled for future publication.
| Parameter | Type | Description | Required | Default |
|---|---|---|---|---|
content | string | The post text/content | Yes | - |
platform | string | Target platform: twitter, instagram, linkedin, tiktok, bluesky, facebook, youtube, pinterest, threads, googlebusiness, telegram, snapchat | Yes | - |
account_id | string | Specific account to post from. Required when the user has multiple accounts on this platform. Call accounts_list to find IDs. | No | "" |
profile_id | string | Scope account auto-resolution to one profile (e.g. one client in an agency setup). Use when account_id is unknown but the target profile is. | No | "" |
is_draft | boolean | Set to true to save as DRAFT (not published, not scheduled) | No | false |
publish_now | boolean | Set to true to publish IMMEDIATELY | No | false |
schedule_minutes | integer | Minutes from now to schedule. Only used when is_draft=false AND publish_now=false | No | 60 |
media_urls | string | Comma-separated URLs of media files to attach (images, videos) | No | "" |
title | string | Post title (required for YouTube, recommended for Pinterest) | No | "" |
posts_publish_now
Publish a post immediately to a platform. Convenience wrapper around posts_create with publish_now=true.
| Parameter | Type | Description | Required | Default |
|---|---|---|---|---|
content | string | The post text/content | Yes | - |
platform | string | Target platform | Yes | - |
account_id | string | Specific account ID. Required when the user has multiple accounts on this platform. | No | "" |
profile_id | string | Scope auto-resolution to a single profile when account_id is unknown. | No | "" |
media_urls | string | Comma-separated URLs of media files to attach | No | "" |
posts_cross_post
Post the same content to multiple platforms at once. To target multiple accounts of the same platform in one call, repeat the platform: platforms="twitter,twitter", account_ids="acc_a,acc_b".
| Parameter | Type | Description | Required | Default |
|---|---|---|---|---|
content | string | The post text/content | Yes | - |
platforms | string | Comma-separated list of platforms (e.g., 'twitter,linkedin,bluesky'). Repeat a platform to target multiple accounts of it. | Yes | - |
account_ids | string | Comma-separated account IDs, parallel to platforms. Empty positions fall back to profile/auto-resolution. Required for multi-account users to disambiguate. | No | "" |
profile_id | string | Scope auto-resolution to one profile when account_ids is empty. | No | "" |
is_draft | boolean | Set to true to save as DRAFT (not published) | No | false |
publish_now | boolean | Set to true to publish IMMEDIATELY to all platforms | No | false |
media_urls | string | Comma-separated URLs of media files to attach | No | "" |
posts_create_post
Autogenerated tool that mirrors the full createPost REST surface. Use this instead of posts_create when you need per-target customisation that the simplified tool doesn't expose: customContent (different caption per platform), customMedia (different attachments per target), per-target scheduledFor, or platformSpecificData (TikTok privacy, YouTube category, etc.). The platforms argument is a JSON-encoded array of objects with platform, accountId, and any per-target overrides. Available in zernio-sdk 1.4.0+.
posts_list
| Parameter | Type | Description | Required | Default |
|---|---|---|---|---|
status | string | Filter by status: draft, scheduled, published, failed | No | "" |
limit | integer | Maximum number of posts to return | No | 10 |
posts_get / posts_delete / posts_retry
| Parameter | Type | Description | Required |
|---|---|---|---|
post_id | string | The post ID | Yes |
posts_update
| Parameter | Type | Description | Required | Default |
|---|---|---|---|---|
post_id | string | The post ID to update | Yes | - |
content | string | New content | No | "" |
scheduled_for | string | New schedule time (ISO string) | No | "" |
title | string | New title | No | "" |
Media
media_generate_upload_link
Generate a unique upload URL for the user to upload files via browser. The flow is:
- Call this tool to get an upload URL
- Ask the user to open the URL in their browser
- User uploads files through the web interface
- Call
media_check_upload_statusto get the uploaded file URLs - Use those URLs when creating the post with
posts_create
media_check_upload_status
| Parameter | Type | Description | Required |
|---|---|---|---|
token | string | The upload token from media_generate_upload_link | Yes |
Uploading Images & Videos
Since AI clients can't access files on your computer directly, we use a browser upload flow:
Ask to Create an Upload Link
Say something like: "I want to post an image to Instagram"
The assistant will give you a unique upload URL.
Upload Your File
Open the URL in your browser. You'll see a simple upload page where you can drag & drop your image or video.
Confirm Upload
Just say "done" or "uploaded". The assistant will check the status and create your post with the media attached.
Supported file types:
- Images: JPG, PNG, WebP, GIF
- Videos: MP4, MOV, WebM
- Documents: PDF
Maximum file size: 5GB