Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

Zernio

REMOTE · MCP.ZERNIO.COM · SCANNED SEP 20

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

Available components

−51 this week 36 Trust /100
Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score → Why this is hard to score →

Endpoint Security89
Transport & Reachability0
Schema Quality & AI Usability0
  • Schema blocked by authentication: the endpoint requires auth we don't have to read it. See how to fix → Unverified
Stability & Change Management0
  • Stability not yet verified: not enough scan history yet (needs a 30-day window).Unverified
Tool Coverage0
  • Tool coverage blocked by authentication: the endpoint requires auth we don't have to read its tools.Unverified
Tool Safety0
  • Tool safety blocked by authentication: the endpoint requires auth we don't have to read its tools.Unverified
Capabilities0
  • Capabilities blocked by authentication: the endpoint requires auth we don't have to read them. See how to fix → Unverified

Unverified: 6 categories

Categories scored 0 because we could not verify them: authentication we do not have, an unreachable endpoint, or not enough scan history. We only credit what we can confirm. Claim this server and supply a read-only token to verify it and lift the score.

Install

How do I install the Zernio MCP server?

Zernio is a hosted endpoint at https://mcp.zernio.com/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

remote · mcp.zernio.com

# add to Claude Code
claude mcp add --transport http com-zernio-zernio 'https://mcp.zernio.com/mcp'
// .cursor/mcp.json
{
  "mcpServers": {
    "com-zernio-zernio": {
      "url": "https://mcp.zernio.com/mcp"
    }
  }
}
// .vscode/mcp.json
{
  "servers": {
    "com-zernio-zernio": {
      "type": "http",
      "url": "https://mcp.zernio.com/mcp"
    }
  }
}
# ~/.codex/config.toml
[mcp_servers.com-zernio-zernio]
url = "https://mcp.zernio.com/mcp"
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "com-zernio-zernio": {
      "type": "remote",
      "url": "https://mcp.zernio.com/mcp",
      "enabled": true
    }
  }
}
# add to OpenClaw
openclaw mcp add com-zernio-zernio --url 'https://mcp.zernio.com/mcp' --transport streamable-http
# ~/.hermes/config.yaml
mcp_servers:
  com-zernio-zernio:
    url: "https://mcp.zernio.com/mcp"
// ~/.netclaw/config/netclaw.json
{
  "McpServers": {
    "com-zernio-zernio": {
      "Transport": "http",
      "Url": "https://mcp.zernio.com/mcp"
    }
  }
}
# add to Vellum
assistant mcp add com-zernio-zernio -t streamable-http -u 'https://mcp.zernio.com/mcp'
// mcp.json
{
  "mcpServers": {
    "com-zernio-zernio": {
      "type": "http",
      "url": "https://mcp.zernio.com/mcp"
    }
  }
}

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 16 Sept 26 −52
    • Endpoint reachability: reachable → behind authorisation security
    • Tool safety: pass → unverified security
    • Stability: 0.70 → unverified security
    • Transport: pass → unverified security
    • Authorization: The endpoint enforces authorisation, advertised via RFC 9728 protected-resource metadata. security
    • Tool coverage: 98 → unverified functional
    • Capabilities: pass → unverified functional
    • Schema quality: 100 → unverified functional
  • 15 Sept 26 0
    • “comments_list_inbox_comments” reworded the description of “platform” cosmetic

    1 cosmetic change on this day. Switch on “Show cosmetic changes” to see it.

  • 14 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 63 to 67. That category is still filling its 30-day observation window: 19 days of observed history at the previous scan, 20 at this one. The score rises as the window fills, whether or not the server changes.

  • 12 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 57 to 60. That category is still filling its 30-day observation window: 17 days of observed history at the previous scan, 18 at this one. The score rises as the window fills, whether or not the server changes.

  • 11 Sept 26 0
    • “analytics_get_analytics” reworded the description of “sort_by” cosmetic
    • “comments_get_inbox_post_comments” reworded the description of “comment_id” cosmetic

    2 cosmetic changes on this day. Switch on “Show cosmetic changes” to see them.

  • 10 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 50 to 53. That category is still filling its 30-day observation window: 15 days of observed history at the previous scan, 16 at this one. The score rises as the window fills, whether or not the server changes.

  • 9 Sept 26 0
    • Tool “analytics_get_daily_metrics” rewrote its description, which is the text the model reads security
    • Tool “usage_get_usage” rewrote its description, which is the text the model reads security
    • “analytics_get_analytics” reworded the description of “account_id” cosmetic
    • “analytics_get_best_time_to_post” reworded the description of “account_id” cosmetic
    • “comments_list_inbox_comments” reworded the description of “account_id” cosmetic
    • “mentions_list_inbox_mentions” reworded the description of “account_id” cosmetic
    • “mentions_reply_to_mention” reworded the description of “account_id” cosmetic
  • 8 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 43 to 47. That category is still filling its 30-day observation window: 13 days of observed history at the previous scan, 14 at this one. The score rises as the window fills, whether or not the server changes.

Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 20 Sept 2026 · Probed https://mcp.zernio.com/mcp

TLS valid

Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .

Subject Issuer Valid from Valid until Key Signature Serial
CN=zernio.com CN=YE2,O=Let's Encrypt,C=US 10 Sept 2026 9 Dec 2026 ECDSA 256 ECDSA-SHA384 5ab71dab568a5002a70d846eda43c5ec3b2
SANs: *.zernio.com, zernio.com
CN=YE2,O=Let's Encrypt,C=US (CA) CN=Root YE,O=ISRG,C=US 3 Sept 2025 2 Sept 2028 ECDSA 384 ECDSA-SHA384 4df3b15dd6c0784c507cd37b58e6f115
CN=Root YE,O=ISRG,C=US (CA) CN=ISRG Root X2,O=Internet Security Research Group,C=US 13 May 2026 2 Sept 2032 ECDSA 384 ECDSA-SHA384 872165fc34b6e5fba8add5b3705fb53a
CN=ISRG Root X2,O=Internet Security Research Group,C=US (CA) CN=ISRG Root X1,O=Internet Security Research Group,C=US 13 May 2026 2 Sept 2032 ECDSA 384 SHA256-RSA 6c8f1dc727c7117f7baf853ac980f9cd

Background: What to check on a remote MCP endpoint →

DNSSEC insecure

Validation of mcp.zernio.com. Not signed

Zone DS Keys Algorithms Outcome
. trust_anchor 20326, 38696 8, 8 Verified
com. present 19718 13 Verified
zernio.com. absent Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation
Authentication Enforced and verified

The endpoint asked for a token and published valid RFC 9728 metadata describing how to get one.

Result Enforced and verified
Enforced On connection
HTTP status 401

WWW-Authenticate challenge Bearer resource_metadata="https://mcp.zernio.com/.well-known/oauth-protected-resource/mcp"

Bearer resource_metadata="https://mcp.zernio.com/.well-known/oauth-protected-resource/mcp"
Header Value
www-authenticate Bearer resource_metadata="https://mcp.zernio.com/.well-known/oauth-protected-resource/mcp"

Protected resource metadata

Document https://mcp.zernio.com/.well-known/oauth-protected-resource/mcp
Retrieved Yes
Resource https://mcp.zernio.com/mcp
Authorisation server https://zernio.com/

Background: How OAuth 2.1 works in the 2026 MCP spec →

Transports 2 probes
Transport URL Outcome Status Location
streamable-http https://mcp.zernio.com/mcp Auth required 401
http (plaintext) http://mcp.zernio.com/mcp HTTPS enforced 301 https://mcp.zernio.com/mcp
MCP tools · 52 exposed · ~5,243 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
account_groups_list_account_groups ~14

List groups

Input schema present but exposes no named parameters.

NameTypeReqDescription
resultstringyes

No examples provided.

accounts_get ~59

Get account details for a specific platform. Returns username and ID for the first account matching the platform.

NameTypeReqDescription
platformstringyesPlatform name: twitter, instagram, linkedin, tiktok, bluesky, facebook, youtube, pinterest, threads (required)
NameTypeReqDescription
resultstringyes

No examples provided.

accounts_get_account_health ~29

Check account health

NameTypeReqDescription
account_idstringyesThe account ID to check (required)
NameTypeReqDescription
resultstringyes

No examples provided.

accounts_get_all_accounts_health ~42

Check accounts health

NameTypeReqDescription
platformFilter by platform
profile_idFilter by profile ID
statusFilter by health status
NameTypeReqDescription
resultstringyes

No examples provided.

accounts_get_follower_stats ~94

Get follower stats

NameTypeReqDescription
account_idsComma-separated list of account IDs (optional, defaults to all user's accounts)
from_dateStart date in YYYY-MM-DD format (defaults to 30 days ago)
granularitystringData aggregation level
profile_idFilter by profile ID
to_dateEnd date in YYYY-MM-DD format (defaults to today)
NameTypeReqDescription
resultstringyes

No examples provided.

accounts_list ~40

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.

Input schema present but exposes no named parameters.

NameTypeReqDescription
resultstringyes

No examples provided.

accounts_move_account_to_profile ~57

Move account to another profile

NameTypeReqDescription
account_idstringyes(required)
profile_idstringyesTarget profile ID (must be a valid ObjectId and owned by the same user as the account). (required)
NameTypeReqDescription
resultstringyes

No examples provided.

analytics_get_analytics ~253

Get post analytics

NameTypeReqDescription
account_idFilter by account ID
from_dateInclusive lower bound (YYYY-MM-DD). Defaults to 90 days ago if omitted. Max range is 366 days.
limitintegerPage size (default 50)
orderstringSort order
pageintegerPage number (default 1)
platformFilter by platform (default "all")
post_idReturns analytics for a single post. Accepts both Zernio Post IDs and External Post IDs. Zernio IDs are auto-resolved to External Post analytics.
profile_idFilter by profile ID (default "all")
sort_bystringSort by date, engagement, or a specific metric. Platform-specific metrics (follows, reposts, reels_skip_rate, ig_reels_*, completion_rate, profile_views) sort a null value as 0.
sourcestringFilter by post source: late (posted via Zernio API), external (synced from platform), all (default)
to_dateInclusive upper bound (YYYY-MM-DD). Defaults to today if omitted.
NameTypeReqDescription
resultstringyes

No examples provided.

analytics_get_best_time_to_post ~105

Get best times to post

NameTypeReqDescription
account_idFilter by account ID. Omit for all accounts.
platformFilter by platform (e.g. "instagram", "tiktok"). Omit for all platforms.
profile_idFilter by profile ID. Omit for all profiles.
sourcestringFilter by post origin. "late" for posts published via Zernio, "external" for posts imported from platforms.
NameTypeReqDescription
resultstringyes

No examples provided.

analytics_get_daily_metrics ~246

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.

NameTypeReqDescription
account_id
attributionstring
from_date
platform
profile_id
sourcestring
to_date
NameTypeReqDescription
resultstringyes

No examples provided.

analytics_get_post_timeline ~111

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.

NameTypeReqDescription
from_date
post_idstringyes
to_date
NameTypeReqDescription
resultstringyes

No examples provided.

call_tool ~53

Call a tool by name with the given arguments. Use this to execute tools discovered via search_tools.

NameTypeReqDescription
argumentsArguments to pass to the tool
namestringyesThe name of the tool to call

No output schema declared.

No examples provided.

comments_get_inbox_post_comments ~176

Get post comments

NameTypeReqDescription
account_idstringyes(required)
comment_id(Reddit and TikTok only) Get replies to a specific comment
cursorPagination 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.
limitintegerMaximum number of comments to return
post_idstringyesZernio 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…
subreddit(Reddit only) Subreddit name
NameTypeReqDescription
resultstringyes

No examples provided.

comments_list_inbox_comments ~156

List commented posts

NameTypeReqDescription
account_idFilter by specific account ID
cursor
limitinteger
min_commentsMinimum comment count
platformFilter by platform. `metaads` is a synthetic value meaning the user's ads (boosted/dark posts) only; `facebook`/`instagram` return organic posts only. `tiktok` covers accounts connected through the T…
profile_idFilter by profile ID
sincePosts created after this date
sort_bystringSort field
sort_orderstringSort order
NameTypeReqDescription
resultstringyes

No examples provided.

comments_reply_to_inbox_post ~172

Reply to comment

NameTypeReqDescription
account_idstringyes(required)
attachment_url(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.
comment_idReply to specific comment (optional)
messagestringyes(required)
parent_cid(Bluesky only) Parent content identifier
post_idstringyesZernio post ID or platform-specific post ID. LinkedIn third-party posts accept full activity URN or numeric ID. (required)
root_cid(Bluesky only) Root post CID
root_uri(Bluesky only) Root post URI
NameTypeReqDescription
resultstringyes

No examples provided.

docs_search ~92

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.

NameTypeReqDescription
querystringyesSearch query (e.g., 'webhooks', 'create post', 'authentication') (required)
NameTypeReqDescription
resultstringyes

No examples provided.

media_check_upload_status ~73

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).

NameTypeReqDescription
tokenstringyesThe upload token from media_generate_upload_link (required)
NameTypeReqDescription
resultstringyes

No examples provided.

media_generate_upload_link ~104

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

Input schema present but exposes no named parameters.

NameTypeReqDescription
resultstringyes

No examples provided.

mentions_list_inbox_mentions ~72

List mentions

NameTypeReqDescription
account_idFilter by account ID
cursorCursor for pagination (ID of the last item from the previous page)
limitinteger
profile_idFilter by profile ID
sort_orderstringSort order by publishedAt
NameTypeReqDescription
resultstringyes

No examples provided.

mentions_reply_to_mention ~80

Reply to a mention

NameTypeReqDescription
account_idstringyesThe Instagram account ID (required)
comment_idThe mentioning comment's ID. Omit for a caption mention.
media_idstringyesThe ID of the media the account was mentioned in (required)
messagestringyesThe reply text (required)
NameTypeReqDescription
resultstringyes

No examples provided.

posts_bulk_upload_posts ~29

Bulk upload from CSV Args: dry_run

NameTypeReqDescription
dry_runboolean
NameTypeReqDescription
resultstringyes

No examples provided.

posts_create ~639

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

NameTypeReqDescription
account_idstringSpecific 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 platfo…
contentstringyesThe post text/content (required)
is_draftbooleanSet to True to save as DRAFT (not published, not scheduled). Use when user wants to save without publishing Default: False.
media_urlsstringComma-separated URLs of media files to attach (images, videos) Default: .
platformstringyesTarget platform: twitter, instagram, linkedin, tiktok, bluesky, facebook, youtube, pinterest, threads (required)
profile_idstringScope 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_nowbooleanSet to True to publish IMMEDIATELY. Post goes live right now Default: False.
schedule_minutesintegerMinutes from now to schedule. Only used when is_draft=False AND publish_now=False Default: 60.
titlestringPost title (required for YouTube, recommended for Pinterest) Default: .
NameTypeReqDescription
resultstringyes

No examples provided.

posts_cross_post ~475

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.

NameTypeReqDescription
account_idsstringComma-separated account IDs, parallel to `platforms`. Empty positions fall back to profile/auto-resolution. Required for multi-account users to disambiguate. Default: .
contentstringyesThe post text/content (required)
is_draftbooleanSet to True to save as DRAFT (not published). Use when user wants to save without publishing Default: False.
media_urlsstringComma-separated URLs of media files to attach Default: .
platformsstringyesComma-separated list of platforms (e.g., 'twitter,linkedin,bluesky'). Repeat a platform to target multiple accounts of it: 'twitter,twitter'. (required)
profile_idstringScope auto-resolution to one profile when account_ids is empty. Default: .
publish_nowbooleanSet to True to publish IMMEDIATELY to all platforms Default: False.
NameTypeReqDescription
resultstringyes

No examples provided.

posts_delete ~35

Delete a post by ID. Published posts cannot be deleted.

NameTypeReqDescription
post_idstringyesThe post ID to delete (required)
NameTypeReqDescription
resultstringyes

No examples provided.

posts_edit_post ~86

Edit published post

NameTypeReqDescription
account_idWhich account's copy of the post to edit when the post was published to several accounts on the same platform; defaults to the first.
contentstringyesThe new post text content (required)
platformstringyesThe platform to edit the post on. (required)
post_idstringyes(required)
NameTypeReqDescription
resultstringyes

No examples provided.

posts_get ~39

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

NameTypeReqDescription
post_idstringyesThe post ID to retrieve (required)
NameTypeReqDescription
resultstringyes

No examples provided.

posts_list ~70

List posts with optional filtering by status. Status options: draft, scheduled, published, failed

NameTypeReqDescription
limitintegerMaximum number of posts to return Default: 10.
statusstringFilter by status: draft, scheduled, published, failed. Leave empty for all posts Default: .
NameTypeReqDescription
resultstringyes

No examples provided.

posts_list_failed ~36

List all failed posts that can be retried.

NameTypeReqDescription
limitintegerMaximum number of posts to return Default: 10.
NameTypeReqDescription
resultstringyes

No examples provided.

posts_publish_now ~206

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.

NameTypeReqDescription
account_idstringSpecific account ID. REQUIRED when the user has multiple accounts on this platform. Leave empty only if there is exactly one. Default: .
contentstringyesThe post text/content (required)
media_urlsstringComma-separated URLs of media files to attach Default: .
platformstringyesTarget platform: twitter, instagram, linkedin, tiktok, bluesky, etc. (required)
profile_idstringScope auto-resolution to a single profile when account_id is unknown. Default: .
NameTypeReqDescription
resultstringyes

No examples provided.

posts_retry ~42

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

NameTypeReqDescription
post_idstringyesThe ID of the failed post to retry (required)
NameTypeReqDescription
resultstringyes

No examples provided.

posts_retry_all_failed ~17

Retry all failed posts at once.

Input schema present but exposes no named parameters.

NameTypeReqDescription
resultstringyes

No examples provided.

posts_unpublish_post ~40

Unpublish post

NameTypeReqDescription
platformstringyesThe platform to delete the post from (required)
post_idstringyes(required)
NameTypeReqDescription
resultstringyes

No examples provided.

posts_update ~105

Update an existing post. Only draft, scheduled, and failed posts can be updated. Published posts cannot be modified.

NameTypeReqDescription
contentstringNew content (leave empty to keep current) Default: .
post_idstringyesThe post ID to update (required)
scheduled_forstringNew schedule time as ISO string (leave empty to keep current) Default: .
titlestringNew title (leave empty to keep current) Default: .
NameTypeReqDescription
resultstringyes

No examples provided.

profiles_create ~60

Create a new profile for grouping social accounts.

NameTypeReqDescription
colorstringOptional hex color (e.g., '#4CAF50') Default: .
descriptionstringOptional description Default: .
namestringyesProfile name (required)
NameTypeReqDescription
resultstringyes

No examples provided.

profiles_delete ~35

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

NameTypeReqDescription
profile_idstringyesThe profile ID to delete (required)
NameTypeReqDescription
resultstringyes

No examples provided.

profiles_get ~35

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

NameTypeReqDescription
profile_idstringyesThe profile ID (required)
NameTypeReqDescription
resultstringyes

No examples provided.

profiles_list ~22

List all profiles. Profiles group multiple social accounts together for easier management.

Input schema present but exposes no named parameters.

NameTypeReqDescription
resultstringyes

No examples provided.

profiles_update ~105

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

NameTypeReqDescription
colorstringNew hex color (leave empty to keep current) Default: .
descriptionstringNew description (leave empty to keep current) Default: .
is_defaultbooleanSet as default profile Default: False.
namestringNew name (leave empty to keep current) Default: .
profile_idstringyesThe profile ID to update (required)
NameTypeReqDescription
resultstringyes

No examples provided.

queue_create_queue_slot ~69

Create schedule

NameTypeReqDescription
activeboolean
namestringyesQueue name (e.g., Evening Posts) (required)
profile_idstringyesProfile ID (required)
slotsyes(required)
timezonestringyesIANA timezone (required)
NameTypeReqDescription
resultstringyes

No examples provided.

queue_delete_queue_slot ~43

Delete schedule

NameTypeReqDescription
profile_idstringyes(required)
queue_idQueue ID to delete. Omit to delete all queues for the profile
NameTypeReqDescription
resultstringyes

No examples provided.

queue_get_next_queue_slot ~44

Get next available slot

NameTypeReqDescription
profile_idstringyes(required)
queue_idSpecific queue ID (optional, defaults to profile's default queue)
NameTypeReqDescription
resultstringyes

No examples provided.

queue_list_queue_slots ~59

List schedules

NameTypeReqDescription
allSet to 'true' to list all queues for the profile
profile_idstringyesProfile ID to get queues for (required)
queue_idSpecific queue ID to retrieve (optional)
NameTypeReqDescription
resultstringyes

No examples provided.

queue_preview_queue ~49

Preview upcoming slots

NameTypeReqDescription
countinteger
profile_idstringyes(required)
queue_idFilter by specific queue ID. Omit to use the default queue.
NameTypeReqDescription
resultstringyes

No examples provided.

queue_update_queue_slot ~97

Update schedule

NameTypeReqDescription
activeboolean
nameQueue name
profile_idstringyes(required)
queue_idQueue ID to update (optional)
reshuffle_existingbooleanWhether to reschedule existing queued posts to match new slots
set_as_defaultMake this queue the default
slotsyes(required)
timezonestringyes(required)
NameTypeReqDescription
resultstringyes

No examples provided.

search_tools ~45

Search for tools using natural language. Returns matching tool definitions ranked by relevance, in the same format as list_tools.

NameTypeReqDescription
querystringyesNatural language query to search for tools
NameTypeReqDescription
resultyes

No examples provided.

tracking_tags_get_tracking_tag_stats ~75

Get aggregated event stats

NameTypeReqDescription
account_idstringyes(required)
aggregationstringAggregation dimension. Defaults to `event`.
end_timeUnix seconds upper bound.
start_timeUnix seconds lower bound.
tag_idstringyesPixel id. (required)
NameTypeReqDescription
resultstringyes

No examples provided.

tracking_tags_list_tracking_tags ~75

List tracking tags

NameTypeReqDescription
account_idstringyesAds SocialAccount id (platform `metaads` or `openaiads`). (required)
ad_account_idOptional, Meta only. Scope to one ad account, e.g. `act_123456789`. Ignored for OpenAI Ads.
NameTypeReqDescription
resultstringyes

No examples provided.

usage_get_usage ~436

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.

NameTypeReqDescription
account_id
from_
granularitystring
group_by
profile_id
rangestring
reconcile
to
NameTypeReqDescription
resultstringyes

No examples provided.

validate_media ~26

Validate media URL

NameTypeReqDescription
urlstringyesPublic media URL to validate (required)
NameTypeReqDescription
resultstringyes

No examples provided.

validate_post ~51

Validate post content

NameTypeReqDescription
contentPost text content
media_itemsRoot media items shared across platforms
platformsyesTarget platforms (same format as POST /v1/posts) (required)
NameTypeReqDescription
resultstringyes

No examples provided.

Common questions

What is the Zernio MCP server?

Zernio is an MCP server listed in the public MCP registry as com.zernio/zernio. Schedule, publish, and analyze social media across 15+ platforms, plus inbox, ads, and analytics. This page covers its hosted endpoint (https://mcp.zernio.com/mcp).

Is the Zernio MCP server safe to use?

Zernio scores 36 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the Zernio MCP server expose?

Zernio exposes 52 tools: zernio_overview, accounts_list, accounts_get, profiles_list, profiles_get, and 47 more. Their descriptions and schemas cost roughly 5,243 tokens of context every time the server is loaded.

Does the Zernio MCP server require authentication?

Yes. Zernio asked us for credentials when we connected, so you will need to authorise it in your MCP client before it can do anything.

Is the Zernio MCP server still maintained?

Zernio is still listed as active in the MCP registry. We last reached this channel on 20 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.