MewCP LogoAStheTech
MCPs
Use Cases

Use cases by category

Productivity & InboxInbox, calendar, and daily flowEngineering & DevOpsShip, debug, and run on-callSales & CRMPipeline, outreach, and dealsMarketing & GrowthCampaigns, SEO, and growthSupport & SuccessTriage tickets, keep customers happyFinance & OpsClose, reconcile, and expensesCreative & ContentGenerate assets and contentPeople & HiringHiring, onboarding, and HRResearch & DataSynthesize data and insights
See all use cases
Resources
BlogsProduct updates and storiesArticlesIntegration guides and code examples
PricingDocsSign in
MewCP Logo

Infrastructure You Can Trust for Agentic Products

X

Categories

  • Productivity & Docs
  • Developer Tools
  • CRM & Sales
  • Finance & Commerce
  • Data & Analytics
  • Marketing & SEO
  • Search & Web
  • Communication
  • View All Servers →

Resources

  • Blog
  • Docs
  • Privacy Policy
  • Terms of Service

Blogs

  • View All Blogs →

Articles

  • View All Articles →
Browse Servers|Pricing|Contact

Browse by Category

Productivity & Docs

  • Gmail
  • Google Drive
  • YouTube
  • Google Calendar
  • Google People
  • Google Classroom
  • Notion
  • ClickUp
  • Figma
  • Google Tasks
  • Cal
  • Monday
  • Luma
  • Notion MCP
  • Mem MCP
  • Linear MCP
  • Calendly MCP
  • Consensus MCP
  • Craft MCP
  • Close MCP
  • Dice MCP
  • Lumin PDF MCP
  • Develop21 MCP
  • Granola MCP
  • Lucid MCP
  • Mermaid Chart MCP
  • Fireflies MCP
  • ClickUp MCP
  • Miro MCP
  • Llamaindex MCP
  • Otter MCP
  • Mobbin MCP
  • Descript MCP
  • ToDoist MCP
  • SlidesGPT MCP

Developer Tools

  • Gemini
  • Veo
  • ClickUp
  • Firecrawl
  • Vercel
  • Apify
  • Github
  • Chef
  • Scientific Calculator
  • Figma
  • HTTP
  • Perplexity
  • Apify MCP
  • Hugging Face Hub MCP
  • Buildkite MCP
  • Cloudflare MCP
  • Context7 MCP
  • Ahrefs MCP
  • Sentry MCP
  • Brevo Docs MCP
  • X Docs MCP
  • Jev
  • Linear MCP
  • Calendly MCP
  • Craft MCP
  • DeepWiki MCP
  • Inspo MCP
  • Kernel MCP
  • Malwarebytes MCP
  • Mermaid Chart MCP
  • Supabase MCP
  • Microsoft Learn MCP
  • Webflow MCP
  • Scalar Docs MCP
  • Oneuptime MCP
  • Redocly MCP
  • Reducto Docs MCP
  • Llamaindex Docs MCP
  • B12 MCP
  • Lucid Docs MCP
  • Airwallex Docs MCP
  • Langfuse Docs MCP
  • Glen Docs MCP
  • AgentMail
  • Gogs Docs MCP
  • Netlify MCP
  • Neon MCP
  • Minlify Admin MCP
  • Mintlify Index MCP
  • Fern Docs MCP
  • Greptile MCP
  • Statssif Docs MCP
  • Scorecard MCP
  • Railway MCP

CRM & Sales

  • Google People
  • OneSignal MCP
  • Brevo Docs MCP
  • Brevo
  • Brevo MCP
  • Carbon Voice MCP
  • Clay MCP
  • Close MCP
  • Attio MCP
  • Clarify MCP
  • Hunter.io
  • Plain MCP
  • Modem MCP
  • Whats MCP

Finance & Commerce

  • Kite
  • Razorpay
  • Polymarket
  • Stripe
  • Binance
  • Upstox
  • Aiwyn MCP
  • Era-Context-MCP
  • Granted MCP
  • XDC AI MCP
  • Agentery MCP
  • Agent Embassy
  • Quick Commerce MCP
  • Longbridge MCP
  • Mercury MCP
  • Blockscout MCP
  • Octagon AI MCP
  • Stripe MCP
  • Taskrabbit MCP
  • SeatGeek MCP
  • Clarity AI MCP

Data & Analytics

  • Apify MCP
  • Cloudflare MCP
  • Ahrefs MCP
  • Candid MCP
  • Consensus MCP
  • Contentsquare MCP
  • Era-Context-MCP
  • Instinct MCP
  • legal Data Hunter MCP
  • Marcopolo MCP
  • Mixpanel MCP
  • MOSPI MCP
  • Hex MCP
  • OpenRevenue MCP
  • Statsig MCP
  • Synthesize Bio MCP
  • PostHog MCP
  • PopHIVE MCP

Marketing & SEO

  • YouTube
  • Google Business
  • Mailchimp
  • Google Search Console
  • OneSignal MCP
  • Cloudflare MCP
  • Brevo Docs MCP
  • Brevo
  • Brevo MCP
  • AirOps MCP
  • Clay MCP
  • Contentsquare MCP
  • Reelsmith MCP
  • GoDaddy MCP
  • Metricool MCP
  • Webflow MCP
  • Windsor MCP
  • Commonroom MCP
  • B12 MCP
  • Hunter.io
  • Get MCP Ads
  • Minlify Admin MCP
  • Zernio MCP

Search & Web

  • Web Scrapper
  • Firecrawl
  • Apify
  • Perplexity
  • Context.dev
  • Exa
  • Brave Search
  • Apify MCP
  • Ahrefs MCP
  • DeepWiki MCP
  • Dice MCP
  • GoDaddy MCP
  • Granted MCP
  • Microsoft Learn MCP
  • Viator MCp
  • Scholargateway MCP
  • Parallel MCP
  • Mintlify Index MCP
  • OpenWeather MCP
  • Simplescraper MCP
  • SearchApi MCP

Communication

  • Gmail
  • Google Meet
  • Google Calendar
  • Mailchimp
  • WhatsApp
  • Slack
  • OneSignal MCP
  • Brevo Docs MCP
  • Carbon Voice MCP
  • Hunter.io
  • Outlook
  • Nylas MCP
  • Resend MCP
  • Read AI MCP
  • Whats MCP

© 2026 MewCP. All rights reserved.

  1. Home
  2. MCPs
  3. Zernio MCP
Zernio MCP

Zernio MCP Integration for AI Agents

Zernio connects AI agents to social media platforms for cross-platform publishing, post scheduling, media management, audience engagement, advertising campaign management, and performance analytics.

v3.4.452 toolsOAuth
Open in ChatGPTChatGPT
Open in ClaudeClaude
Playground
VS CodeVS Code
Connected to Zernio MCP via MewCP.

Encrypted at rest, isolated from the model

Resolved from an AES-256-GCM vault at the moment of the call and attached to the request — the model never sees the secrets.

Try asking

Everything Zernio MCP can do

Tools52

zernio_overview

read

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

accounts_list

read

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.

accounts_get

read

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

profiles_list

read

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

profiles_get

read

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

profiles_create

destructive

Create a new profile for grouping social accounts.

profiles_update

destructive

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

profiles_delete

destructive

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

posts_list

read

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

posts_get

read

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

posts_create

destructive

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

posts_publish_now

destructive

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.

posts_cross_post

destructive

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.

posts_update

destructive

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

posts_delete

destructive

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

posts_retry

destructive

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

posts_list_failed

read

List all failed posts that can be retried.

posts_retry_all_failed

destructive

Retry all failed posts at once.

media_generate_upload_link

destructive

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

media_check_upload_status

read

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

docs_search

read

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.

account_groups_list_account_groups

read

List groups Returns all account groups visible to the authenticated user. Groups can contain accounts from multiple profiles. For API keys scoped to specific profiles, only groups whose accounts all live in allowed profiles are returned.

accounts_get_follower_stats

read

Get follower stats Returns follower count history and growth metrics for connected accounts. Requires analytics add-on subscription. Follower counts are refreshed once per day.

accounts_move_account_to_profile

destructive

Move account to another profile Moves a connected account to a different profile owned by the same user. The target profile must belong to the same user as the account. For API keys restricted to specific profiles, BOTH the source account's current profile AND the target profile must be in the key's allowed set. Calls with a target profile outside the key's scope return 403.

accounts_get_all_accounts_health

read

Check accounts health Returns health status of all connected accounts including token validity, permissions, and issues needing attention.

accounts_get_account_health

read

Check account health Returns detailed health info for a specific account including token status, permissions, and recommendations. For WhatsApp accounts the response also includes `platformConnection`, a live probe of the Meta link behind the channel (the same read as `GET /v1/whatsapp/number-info`). The OAuth token can be perfectly valid while Meta refuses to serve the phone-number object (for example after a phone-side coexistence disconnect), so `tokenStatus` alone is not a liveness signal for WhatsApp. When the Meta link is dead, `platformConnection.status` is `disconnected` and the overall `status` is `error`. When Meta reports that the number's inbound message webhook does not reach Zernio, `platformConnection.inboundWebhookSubscribed` is `false`, an entry is added to `issues`, and the overall `status` is at least `warning`.

analytics_get_analytics

read

Get post analytics Returns analytics for posts. With postId, returns a single post. Without it, returns a paginated list with overview stats. Accepts both Zernio Post IDs and External Post IDs (auto-resolved). fromDate defaults to 90 days ago if omitted, max range 366 days. Single post lookups may return 202 (sync pending) or 424 (all platforms failed). For follower stats, use /v1/accounts/follower-stats. LinkedIn personal accounts: Analytics are only available for posts published through Zernio. LinkedIn's API only returns metrics for posts authored by the authenticated user. Organization/company page analytics work for all posts. Facebook Page stories: stories on a connected Page, published through Zernio or natively, are collected while they are live and returned like any other post (platformPostUrl points to the story). Their lifetime metrics refresh about hourly, with a final reading shortly before the story expires at 24 hours; after that the values stay at that last reading. Mapping: ...

analytics_get_daily_metrics

read

Get daily aggregated metrics Returns daily aggregated analytics metrics and a per-platform breakdown. Each day includes post count, platform distribution, and summed metrics (impressions, reach, likes, comments, shares, saves, clicks, views). Defaults to the last 180 days. Requires the Analytics add-on. 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.

analytics_get_best_time_to_post

read

Get best times to post Returns the best times to post based on historical engagement data. Groups all published posts by day of week and hour (UTC), calculating average engagement per slot. Use this to auto-schedule posts at optimal times. Requires the Analytics add-on.

analytics_get_post_timeline

read

Get post analytics timeline Returns a daily timeline of analytics metrics for a specific post, showing how impressions, likes, and other metrics evolved day-by-day since publishing. Each row represents one day of data per platform. For multi-platform Zernio posts, returns separate rows for each platform. Requires the Analytics add-on. 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.

comments_list_inbox_comments

read

List commented posts Returns posts with comment counts from all connected accounts. Aggregates data across multiple accounts. Responses are cached for up to 10 minutes, so the feed may lag new comments by that window. Do not poll this endpoint for real-time updates: subscribe to the `comment.received` webhook, which fires for every new comment across your posts and carries the post reference needed to keep this list current. For users with the Ads add-on (accounts on usage-based billing always qualify), the user's Meta ads (boosted/dark posts) are included too. There's one row per (ad, placement-with-comments): an ad that runs on both Facebook feed and Instagram feed produces up to two rows (the Page dark post and the IG media have separate comment threads), each flagged `isAd: true` with `adId` and `placement` (`id` is `{adId}:{placement}`). Use `?platform=metaads` to return *only* ad rows; passing `facebook`/`instagram` returns *organic* posts only (no ads); omitting `platform` returns both. Fetch a ...

comments_get_inbox_post_comments

read

Get post comments Fetch comments for a specific post. Requires accountId query parameter. Pass `commentId` (Facebook, Instagram, Reddit, TikTok) to fetch replies to a specific comment instead of the post's top-level comments. Facebook, Instagram and TikTok return the comment's replies, paged by `limit`/`cursor`; Reddit returns the focused comment thread instead. On Facebook and Instagram the requested comment itself comes back in the top-level `comment` field. On Facebook, passing a COMMENT id as `postId` (instead of using `commentId`) is also supported for backwards compatibility and returns that comment's replies the same way. Prefer `commentId` for new integrations; it also works on Instagram, which rejects a comment id passed as `postId`. YouTube does not support either form, `postId` must be a video id. Responses are cached for up to 10 minutes, so a page may lag new comments by that window. Do not poll this endpoint for real-time updates: subscribe to the `comment.received` webhook, which ...

comments_reply_to_inbox_post

destructive

Reply to comment Post a reply to a post or specific comment. Requires accountId in request body. **Idempotency:** send an `Idempotency-Key` header to make retries safe (e.g. after a client-side timeout where delivery is unknown): same key + same body replays the original response (with `Idempotent-Replayed: true`) instead of posting the comment a second time; same key + different body returns 422; a key still in flight returns 409. Keys are retained for 24 hours and are scoped to the credential and to this exact path, so reusing a key against a different postId returns 422 rather than replaying the other post's response. Only successful (2xx) responses are stored for replay. If the request throws or returns a non-2xx status the key is released, so the header protects the "request succeeded but the response was lost" case. After an ambiguous failure (a 5xx or a network timeout) list the post's comments before retrying with the same key, and treat an empty result as inconclusive rather than as proof ...

mentions_list_inbox_mentions

read

List mentions Returns mentions of your connected organization accounts, delivered via platform webhooks. Currently supports LinkedIn organization mentions. Requires Inbox addon.

mentions_reply_to_mention

destructive

Reply to a mention Reply to a mention of the connected account. Supported on Instagram only. Two shapes, selected by whether `commentId` is present: - **Comment mention** (someone @mentioned the account inside a comment): pass both `mediaId` and `commentId`. Instagram posts a reply under that comment. - **Caption mention** (someone @mentioned the account in their media caption, so no comment exists): pass `mediaId` only. Instagram posts a comment on their media. Story mentions are not supported by Instagram's API. `GET /v1/inbox/mentions` currently returns LinkedIn mentions only and does not surface Instagram mentions. Source `mediaId` and `commentId` from Instagram's `comments` webhook, which is where mention notifications are delivered for accounts connected through Instagram Login.

posts_bulk_upload_posts

destructive

Bulk upload from CSV Create multiple posts by uploading a CSV file. Use dryRun=true to validate without creating posts. CSV columns: - Required: `platforms`, `profiles`, and a schedule (one of `schedule_time`, a `schedule_time_<platform>` override, `publish_now=true`, `use_queue=true`, or `is_draft=true`). - Content: at least one of `post_content`, `title`, or `media_urls` is required. - Aliases: a handful of columns accept the JSON field name from POST /v1/posts, since integrators infer the CSV shape from that endpoint's body. When both are present the real CSV column wins, unless it is blank for that row, in which case the alias value is used. - `content` aliases `post_content` - `timezone` aliases `tz` - `scheduledFor` aliases `schedule_time` - `mediaUrls` aliases `media_urls` - Per-platform overrides use three dynamic column prefixes, one column per platform (e.g. `schedule_time_instagram`, `custom_content_tiktok`, `custom_media_youtube`): `schedule_time_<platform>`, ... Args: dry_run

posts_unpublish_post

destructive

Unpublish post Deletes a published post from the specified platform. The post record in Zernio is kept but its status is updated to cancelled. Not supported on Instagram, TikTok, or Snapchat. Threaded posts delete all items. YouTube deletion is permanent.

posts_edit_post

destructive

Edit published post Edit the text of an already-published post. Supported on X, Discord, Facebook, Reddit, LinkedIn, Telegram, Pinterest, Google Business Profile, YouTube, and Slack. When a post was published to several accounts on the same platform, pass `accountId` to pick which account's copy to edit (without it the request returns 409). Each platform enforces its own rules: **X** - Connected X account must have an active X Premium subscription - Must be within 1 hour of original publish time - Maximum 5 edits per tweet (enforced by X) - Threads cannot be edited, only single tweets - X assigns a NEW post ID on edit, returned as `id` **Discord** - No time limit and no premium requirement - The message ID is unchanged after the edit **Facebook** - Graph only permits editing a post that the same app created, so this works on posts published through Zernio and is rejected for posts created in Meta Business Suite / Composer or by another tool - Media cannot be swapped, only the message text - ...

queue_list_queue_slots

read

List schedules Returns queue schedules for a profile. Use all=true for all queues, or queueId for a specific one. Defaults to the default queue.

queue_create_queue_slot

destructive

Create schedule Create an additional queue for a profile. The first queue created becomes the default. Subsequent queues are non-default unless explicitly set.

queue_update_queue_slot

destructive

Update schedule Create a new queue or update an existing one. Without queueId, creates/updates the default queue. With queueId, updates a specific queue. With setAsDefault=true, makes this queue the default for the profile.

queue_delete_queue_slot

destructive

Delete schedule Delete a queue from a profile. Pass queueId to delete a specific queue; omit it to delete all queues for the profile. If deleting the default queue, another queue will be promoted to default.

queue_preview_queue

read

Preview upcoming slots Returns the next N upcoming queue slot times for a profile as ISO datetime strings.

queue_get_next_queue_slot

read

Get next available slot Returns the next available queue slot for preview purposes. To create a queue post, use POST /v1/posts with queuedFromProfile instead of scheduledFor.

tracking_tags_list_tracking_tags

read

List tracking tags Returns the tracking tags (Meta Pixels, or OpenAI Ads pixels) the connected ads account can see. Pass `?adAccountId=act_...` (Meta only) to scope the list to a single ad account; omit it to list every pixel reachable by the token (the name is then suffixed with the ad account it was discovered on, for disambiguation). The list view omits `code`. Call `getTrackingTag` for the install snippet and full detail. Meta (platform `metaads`) and OpenAI Ads (platform `openaiads`); other platforms return 501. The `accountId` must be the ads SocialAccount created by the Ads add-on connect flow (Meta) or the OpenAI Ads connect flow, not a Facebook/Instagram posting account. Get your Meta `act_...` ids from `GET /v1/ads/accounts`; `adAccountId` is ignored for OpenAI Ads (one API key maps to exactly one ad account). LinkedIn (`linkedinads`): lists the Insight Tag of each ad account (LinkedIn allows one per ad account; a tag shared with several accounts appears once). `adAccountId` is the numeric ... Platforms: meta, tiktok, google, x, openai, linkedin, pinterest

tracking_tags_get_tracking_tag_stats

read

Get aggregated event stats Returns event counts / health for the tag, where the platform exposes them. Meta: aggregated counts (`GET /{pixel_id}/stats`), rows passed through as-is; their shape depends on the `aggregation` requested. Platforms without a stats API answer 501. OpenAI Ads: the recent-events stream (`GET /conversions/events`), the latest (at most 50) events received in the last 15 minutes, one row per event (`event_type`, `api_channel`, `event_timestamp_ms`, `received_at_ms`, ...). Both sources appear: `api_channel` is `pixel_sdk` for the on-site Pixel (including its `openai::sdk_init` load event) and `server_to_server` for Conversions API events. It is a fixed window: `startTime`/`endTime` answer 400. Use it to confirm an install fires; attributed totals come from ads analytics. Accounts not enabled for the stream answer 422 `feature_not_available`. LinkedIn (`linkedinads`): health rows rather than counts, since LinkedIn exposes no per- event fire counts: one row per site domain the tag has seen ... Platforms: meta, tiktok, google, x, openai, linkedin, pinterest

usage_get_usage

read

Usage snapshot (default) or billed-spend metering (with params) Dual-mode endpoint, selected by query params, and fully backward compatible: **Without metering params (the default):** the plan / quota / usage snapshot: plan name, billing period, limits, usage counts, access state. Identical to `GET /v1/usage-stats`. Existing integrations keep working unchanged. **With `range`, `granularity`, `from`, or `to`:** usage METERING: billed spend (USD) by product family (`accounts`, `numbers`, `imessage`, `calls`, `sms`, `messages`, `verify`, `dlc`, `xApi`, `ads`, `credits`, `other`) over the window, at `day` / `month` / `total` granularity, from the usage-based invoice breakdown (the CHARGE view, which always reconciles with what gets billed). Also served at `GET /v1/usage/daily`. Usage-based accounts only: legacy Stripe accounts get `{ "supported": false, "days": [] }`. **Attribution (metering mode):** `groupBy=profile|account` adds an `attribution` breakdown of the window's spend per profile or account, assembled from your own records and pro-rated ... 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.

validate_post_length

destructive

Validate character count Check weighted character count per platform and whether the text is within each platform's limit. X uses weighted counting (URLs = 23 chars via t.co, emojis = 2 chars). All other platforms use plain character length. Returns counts and limits for all 15 supported platform variants. X returns two rows and this endpoint cannot tell you which one applies to you: it takes only `text`, so it never resolves an account. `twitter` (280) is the free tier limit. `twitterPremium` (25000) applies only when the target X account has a paid X subscription, and publishing enforces 280 instead for any post carrying a poll (this endpoint has no poll input, so the `twitterPremium` row always shows 25000). A free account trusting the `twitterPremium` row can pass validation here and still fail at publish time, where the account's real limit is enforced. To validate against the per-account limit, use `POST /v1/tools/validate/post` instead: it accepts an `accountId` per platform entry, resolves X ...

validate_post

destructive

Validate post content Dry-run the full post validation pipeline without publishing. Catches issues like missing media for Instagram/TikTok/YouTube, hashtag limits, invalid thread formats, Facebook Reel requirements, and character limit violations. Accepts the same body as POST /v1/posts. Does NOT validate accounts, process media, or track usage. Account lookups are limit-only: a twitter accountId is resolved, scoped to the caller, only to pick the 280 vs 25000 character limit. Missing, foreign, or invalid ids fall back to 280 and never error. Returns errors for failures and warnings for near-limit content (>90% of character limit).

validate_media

destructive

Validate media URL Check if a media URL is accessible and return metadata (content type, file size) plus per-platform size limit comparisons. Performs a HEAD request (with GET fallback) to detect content type and size. Rejects private/localhost URLs for SSRF protection. Platform limits are sourced from each platform's actual upload constraints.

search_tools

read

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

call_tool

destructive

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

Connect Zernio MCP to your agent

One endpoint, the same key, whichever client you use.

Apps

SDKs

Claude Desktop

Claude Desktop

~/Library/Application Support/Claude/claude_desktop_config.json (Mac) · %APPDATA%\Claude\claude_desktop_config.json (Windows)

JSON
{
  "mcpServers": {
    "mewcp": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-remote@latest",
        "https://gateway.mewcp.com/personal/mcp",
        "--header",
        "Authorization: Bearer API_KEY"
      ]
    }
  }
}

Replace API_KEY with your own key.

Already have an "mcpServers" section in your config? Just add the server entry inside it.

  1. 01Open Claude Desktop → Settings → Developer → "Edit Config"
  2. 02Paste the snippet inside the outer { } of the config file (merge with your existing "mcpServers" section if you have one)
  3. 03Save the file and restart Claude Desktop
  4. 04Start a new conversation — your tool will be available

One endpoint. Every service.

VS CodeAny agent
One Gateway

Google Business

OAuth

YouTube

OAuth

Hunter.io

OAuth

Zernio MCP

OAuth

Discovery, routing, credentials, tool scoping and execution logs all happen at the gateway→connections stay ACTIVE with no work from you

Separate connections░░░░░░░░░░░░░░░░░░░░░░░░░░░░188 tool definitions ~34k tokensWith MewCP░░░░░░░░░░░░░░░░░░░░░░░░░░░░4 meta-tools ~2.6k tokens

Built for AI agents

Zernio MCP runs through a gateway that holds the credentials, scopes the access and records every call.

Managed authentication

  • OAuth to Zernio MCP handled end to end, with tokens refreshed before they expire.
  • One credential per end user, not one shared key across your users.
  • Reconnect an account without touching your agent's config.

Credentials stay out of context

  • Zernio MCP credentials are resolved at the gateway and attached to the outbound call.

Ready to connect Zernio MCP?

Managed auth, hosted MCP servers, and every Gmail tool your agent needs.

Free to start.

  • The agent sees tool results, never a token.
  • Revoke an account and the next call stops working — no redeploy.
  • Scoped access, fully logged

    • Choose exactly which Zernio MCP tools an agent is allowed to call.
    • Every call is logged with its outcome, latency and which account it ran as.
    • Catalog changes are reviewed before they ship, so tool descriptions cannot shift under you.

    One endpoint for every server

    • Reach Zernio MCP through the same MCP endpoint as the rest of your toolset.
    • Tools are discovered on demand, so 52 tools do not fill the context window.
    • Stateless: no sessions to keep alive and no reconnect logic.