Nuntior MCP
An official MCP server and REST API enabling AI agents to manage social media, messaging, blogging, and telecom operations across 22 destinations. It provides 16 semantic tools for publishing content, managing inboxes, querying analytics, and handling phone numbers, supporting both OAuth and Bring Your Own Key (BYOK) authentication models.
Endpoint and access
No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.
https://mcp.nuntior.com/mcpWhat you can do with it
- Publish posts to X, LinkedIn, Instagram, and other social platforms
- Manage unified inbox messages and threaded replies
- Query analytics for reach, engagement, and click data
- Provision phone numbers and send SMS or voice calls
Source and maintenance
Protocol and capabilities
- Server
- nuntior-mcp 1.0.0
- MCP protocol
- 2025-06-18
- Tools
- 16 advertised
- Resources
- 2 advertised
- Resource templates
- 0 advertised
- Prompts
- 3 advertised
{
"tools": {
"listChanged": false
},
"prompts": {
"listChanged": false
},
"resources": {
"listChanged": false
}
}Tools
16 advertised
account_register — Register Agent Account & Workspace
Provision a new Nuntior user account, multi-tenant workspace, default brand profile, and live Bearer API key (`ntr_live_...`) in one zero-browser call. Use this tool when an AI agent or developer needs to onboard from scratch without opening a web browser first. Returns the newly created `userId`, `workspaceId`, `defaultProfileId`, live `apiKey`, and a 1-click `claimUrl` so a human owner can optionally claim the workspace in the web console (`https://nuntior.com/app`). If the email already exists, returns a fresh session key for that workspace.
{
"type": "object",
"required": [],
"properties": {
"name": {
"type": "string",
"description": "Display name for the human owner or autonomous agent operator (e.g. 'Alex Rivera' or 'Growth Agent')."
},
"email": {
"type": "string",
"description": "Owner or developer email address used to identify the Nuntior account and receive workspace claim notifications (e.g. 'founder@company.com')."
},
"agentHarness": {
"type": "string",
"default": "grok-bot",
"description": "Identifier of the calling AI agent harness or MCP client (e.g. 'grok-bot', 'cursor', 'claude-code', 'n8n', 'openclaw', 'windsurf') for telemetry attribution."
},
"organizationName": {
"type": "string",
"description": "Organization, agency, or workspace name used to label the multi-tenant workspace and default brand profile."
}
},
"additionalProperties": false
}{
"title": "Register Agent Account & Workspace",
"readOnlyHint": false,
"openWorldHint": true,
"idempotentHint": false,
"destructiveHint": false
}account_status — Inspect Account Status & Plan Quotas
Inspect the authenticated workspace's subscription tier (`free`, `starter`, `builder`, `scale`), active social account connections versus plan quota limits (3, 12, 35, or 100), monthly posts published, API key prefix, Stripe billing status, and connected brand profiles. Use this read-only diagnostic tool before connecting new social accounts or publishing high-volume campaigns to verify quota availability and account readiness. Returns a structured summary object containing `workspace`, `planLimits`, `usage`, `billing`, `profiles`, and `connectedAccounts`.
{
"type": "object",
"required": [],
"properties": {
"apiKey": {
"type": "string",
"description": "Optional Nuntior Bearer API key (`ntr_live_...`) override when not supplied via the HTTP `Authorization` header."
},
"workspaceId": {
"type": "string",
"description": "Optional workspace identifier (`ws_...`) to inspect a specific tenant workspace when managing multiple workspaces."
}
},
"additionalProperties": false
}{
"title": "Inspect Account Status & Plan Quotas",
"readOnlyHint": true,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": false
}billing_upgrade — Generate Stripe Plan Upgrade or Portal Link
Generate a live 1-click Stripe Checkout session URL or Stripe Customer Billing Portal link to upgrade a Nuntior workspace subscription. Supports upgrading to `starter` ($19/mo, 12 social connections, 1,500 posts/mo), `builder` ($35/mo, 35 social connections, 10,000 posts/mo), or `scale` ($79/mo, 100 social connections, 50,000 posts/mo + $0.50 per extra connection), plus optional `dedicated_phone` ($1.50/mo E.164 number for SMS, WhatsApp, and SIP Voice AI). Returns `checkoutUrl` (or `portalUrl`), target plan metadata, connection quotas, and user instructions.
{
"type": "object",
"required": [],
"properties": {
"plan": {
"enum": [
"starter",
"builder",
"scale"
],
"type": "string",
"default": "starter",
"description": "Target subscription tier: 'starter' ($19/mo, 12 connections), 'builder' ($35/mo, 35 connections), or 'scale' ($79/mo, 100 connections)."
},
"action": {
"enum": [
"checkout",
"portal"
],
"type": "string",
"default": "checkout",
"description": "Billing operation: 'checkout' creates a new Stripe Checkout upgrade session URL; 'portal' generates a Stripe Customer Portal link to manage existing payment methods and invoices."
},
"apiKey": {
"type": "string",
"description": "Optional Nuntior Bearer API key (`ntr_live_...`) override when not provided in the HTTP `Authorization` header."
},
"dedicated_phone": {
"type": "boolean",
"default": false,
"description": "When true, attaches a dedicated E.164 telecom phone number add-on ($1.50/mo) for transactional SMS, WhatsApp Business Cloud, and SIP Voice AI agents."
}
},
"additionalProperties": false
}{
"title": "Generate Stripe Plan Upgrade or Portal Link",
"readOnlyHint": false,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": false
}profiles_manage — Manage Multi-Tenant Brand Profiles
Create, list, update, or delete isolated multi-tenant brand or client profiles within a Nuntior workspace, including default timezone, X Smart Link optimization strategy, and automatic media aspect-ratio fitting rules. Use this tool to segment social accounts by brand, business unit, or agency client so credentials and posts never mix across profiles. Returns the list of profiles or the newly created/updated/deleted `Profile` record persisted in Nuntior Cloud.
{
"type": "object",
"required": [
"action"
],
"properties": {
"name": {
"type": "string",
"description": "Human-readable brand, executive, or client display name for the profile (e.g. 'Allometrik Official' or 'Acme Corp')."
},
"action": {
"enum": [
"list",
"create",
"update",
"delete"
],
"type": "string",
"description": "Profile lifecycle operation to perform: 'list' all profiles in the workspace, 'create' a new isolated brand profile, 'update' an existing profile's settings, or 'delete' a profile by ID."
},
"timezone": {
"type": "string",
"default": "Europe/Madrid",
"description": "IANA timezone identifier (e.g. 'Europe/Madrid', 'America/New_York', 'Asia/Dubai') used for queue scheduling and best-time-to-post analytics."
},
"profileId": {
"type": "string",
"description": "Target profile identifier (e.g. 'prof_allometrik'). Required for 'update' and 'delete' actions; optional custom ID when creating a profile."
},
"handleSlug": {
"type": "string",
"description": "URL-friendly canonical handle slug (e.g. 'allometrik') used to verify social handle consistency across connected platforms."
},
"autoAdjustMedia": {
"type": "boolean",
"default": true,
"description": "When true, automatically reframes and transcodes uploaded images and videos to match each destination social network's required aspect ratio (9:16, 16:9, 1:1, 4:5)."
},
"defaultXLinkStrategy": {
"enum": [
"inline",
"first_reply",
"bio"
],
"type": "string",
"default": "first_reply",
"description": "Default X (Twitter) link placement policy for this profile: 'first_reply' moves external URLs to an automatic 1st reply (saving 85% in X API link fees and avoiding reach penalties), 'inline' keeps links in the main post, and 'bio' references the profile bio link."
}
},
"additionalProperties": false
}{
"title": "Manage Multi-Tenant Brand Profiles",
"readOnlyHint": false,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": false
}accounts_manage — Manage Social OAuth & BYOK Accounts
List connected social accounts, initiate 1-click Managed OAuth 2.0 flows (`connect_oauth`), vault custom Bring-Your-Own-Keys (`connect_byok`) with zero markup and AES-256-GCM encryption, run live upstream API token health checks (`account_health`), or disconnect accounts across 18+ platforms. Use this tool whenever you need to link a new social network, verify OAuth token validity and latency, or inspect which platforms are ready for publishing. Returns account metadata, 1-click `authorizationUrl` links, or live latency/health diagnostics; if the workspace connection quota is full, returns a structured `PLAN_CONNECTION_LIMIT_REACHED` upgrade prompt.
{
"type": "object",
"required": [
"action"
],
"properties": {
"action": {
"enum": [
"list",
"connect_oauth",
"connect_byok",
"health_check",
"account_health",
"disconnect"
],
"type": "string",
"description": "Account operation: 'list' connected accounts, 'connect_oauth' to get a 1-click OAuth 2.0 authorization URL, 'connect_byok' to store custom API keys/tokens encrypted with AES-256-GCM ($0 markup), 'account_health'/'health_check' to verify live upstream token validity, or 'disconnect' to remove an account."
},
"platform": {
"enum": [
"x",
"linkedin",
"bluesky",
"instagram",
"facebook",
"threads",
"tiktok",
"youtube",
"reddit",
"pinterest",
"mastodon",
"telegram",
"discord",
"google_business",
"ghost",
"wordpress",
"webflow",
"whatsapp"
],
"type": "string",
"description": "Target social, blog, or messaging platform slug (e.g. 'x', 'linkedin', 'bluesky', 'instagram', 'threads', 'youtube', 'tiktok', 'reddit'). Required for 'connect_oauth' and 'connect_byok'."
},
"returnTo": {
"type": "string",
"description": "connect_oauth: where to send the user after connecting (relative path, agent deep link like cursor://, or an https origin registered in your OAuth client redirect_uris)."
},
"username": {
"type": "string",
"description": "Account handle, username, Bluesky ATProto handle (e.g. 'brand.bsky.social'), or Mastodon instance handle associated with the social account."
},
"accountId": {
"type": "string",
"description": "Connected social account identifier (e.g. 'acc_x_byok_01'). Required when `action` is 'disconnect' and optional filter for 'account_health'."
},
"profileId": {
"type": "string",
"description": "Brand profile identifier (e.g. 'prof_allometrik') that owns or filters the social account connections."
},
"accessToken": {
"type": "string",
"description": "BYOK OAuth 2.0 Bearer access token, OAuth 1.0a access token, Telegram Bot token, or Discord Webhook URL encrypted at rest."
},
"refreshToken": {
"type": "string",
"description": "Optional OAuth 2.0 refresh token or OAuth 1.0a access token secret used for automatic token rotation and health recovery."
},
"customClientId": {
"type": "string",
"description": "BYOK OAuth App Client ID, API Key, Bot ID, or Bluesky identifier encrypted at rest with AES-256-GCM in the Nuntior Vault (0% platform markup)."
},
"returnClientId": {
"type": "string",
"description": "connect_oauth: your DCR OAuth client_id, used to allowlist an https returnTo."
},
"customClientSecret": {
"type": "string",
"description": "BYOK OAuth App Client Secret, API Key Secret, or Bluesky App Password encrypted at rest with AES-256-GCM in the Nuntior Vault."
}
},
"additionalProperties": false
}{
"title": "Manage Social OAuth & BYOK Accounts",
"readOnlyHint": false,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": false
}posts_publish — Publish & Cross-Post Across 18 Social Networks
Publish immediately (`publish_now`), schedule for a future ISO-8601 timestamp (`schedule`), enqueue into the profile slot queue (`queue`), or simultaneously cross-post (`cross_post`) content and media across 18+ social networks. Includes the built-in X Smart Link Optimizer (`xLinkStrategy: 'first_reply'`), which automatically strips external links from the main X post and publishes them in an immediate 1st reply—cutting X API link costs by 85% ($0.03 vs $0.20) while avoiding main-feed link reach penalties. Returns the persisted `postId`, per-platform delivery receipts (`platformResults`), total API cost (`totalCostUsd`), and exact dollar savings (`totalSavedViaSmartLinkUsd`).
{
"type": "object",
"required": [
"action",
"platforms"
],
"properties": {
"tags": {
"type": "array",
"items": {
"type": "string"
},
"description": "Optional tags or keywords for YouTube, TikTok, or CMS posts."
},
"title": {
"type": "string",
"description": "Optional headline, YouTube/TikTok video title, LinkedIn PDF carousel title, or Reddit/Pinterest post title."
},
"action": {
"enum": [
"publish_now",
"schedule",
"queue",
"cross_post"
],
"type": "string",
"description": "Publishing mode: 'publish_now' dispatches immediately, 'cross_post' syndicates tailored variants across multiple networks at once, 'schedule' holds until `scheduledFor`, and 'queue' places the post in the next best engagement slot."
},
"format": {
"enum": [
"post",
"story"
],
"type": "string",
"default": "post",
"description": "Publication format. 'post' (default) is a regular feed post. 'story' publishes an Instagram Story: requires platforms=['instagram'], action='publish_now', exactly ONE media item (one entry in `mediaUrls` or `mediaAssetIds`; image .jpg/.png or video .mp4/.mov, ideally 9:16, video 3-60s) and NO caption (omit `content` or pass an empty string). Videos are processed by Instagram before going live."
},
"content": {
"type": "string",
"description": "Primary post body text, caption, or thread hook. May include hashtags, mentions, and URLs (external URLs on X are automatically handled according to `xLinkStrategy`)."
},
"accountId": {
"type": "string",
"description": "Optional connected account id (`acc_...`) to publish with. When set, that exact account (and its token) is used for its platform instead of auto-selecting one."
},
"mediaUrls": {
"type": "array",
"items": {
"type": "string"
},
"description": "Optional direct URLs to images (.png, .jpg, .webp), videos (.mp4, .mov), or documents (.pdf, .pptx, .docx for LinkedIn Document Carousels)."
},
"platforms": {
"type": "array",
"items": {
"enum": [
"x",
"linkedin",
"bluesky",
"instagram",
"facebook",
"threads",
"tiktok",
"youtube",
"reddit",
"pinterest",
"mastodon",
"telegram",
"discord",
"google_business",
"ghost",
"wordpress",
"webflow",
"whatsapp"
],
"type": "string"
},
"description": "Non-empty array of destination social network slugs to publish or cross-post to (e.g. `['x', 'linkedin', 'bluesky', 'threads']`)."
},
"profileId": {
"type": "string",
"default": "prof_allometrik",
"description": "Brand profile identifier (`prof_...`) whose connected social accounts will publish the post."
},
"visibility": {
"enum": [
"public",
"unlisted",
"private",
"connections"
],
"type": "string",
"description": "Optional visibility setting (e.g. 'public' or 'connections' on LinkedIn; 'public', 'unlisted', or 'private' on YouTube/TikTok)."
},
"webhookUrl": {
"type": "string",
"description": "Optional https URL that receives a JSON post.published / post.failed / post.partial event when an Instagram/Threads post that returned status 'processing' (media container still being processed by Meta) is finished by the background job."
},
"firstComment": {
"type": "string",
"description": "Optional first comment or reply to publish immediately under the main post."
},
"scheduledFor": {
"type": "string",
"description": "Optional ISO-8601 UTC or offset timestamp (e.g. '2026-10-27T08:30:00+01:00') specifying when a scheduled post should go live."
},
"mediaAssetIds": {
"type": "array",
"items": {
"type": "string"
},
"description": "Optional list of Nuntior media asset IDs (`med_...`) from `media_pipeline` or `/v1/media/upload` to attach as images, PDF document carousels, or videos."
},
"xLinkStrategy": {
"enum": [
"inline",
"first_reply",
"bio"
],
"type": "string",
"default": "first_reply",
"description": "X (Twitter) link optimization mode: 'first_reply' moves any URL to an automated 1st reply to save $0.17/post (85% X API cost reduction) and maximize organic impressions; 'inline' leaves the URL in the main tweet; 'bio' replaces the URL with a bio pointer."
},
"autoAdjustMedia": {
"type": "boolean",
"default": true,
"description": "When true, automatically selects the matching aspect-ratio variant (9:16 for Reels/TikTok/Shorts, 16:9 or 1:1 for X/LinkedIn) for each target platform."
},
"authModeOverride": {
"enum": [
"managed",
"byok"
],
"type": "string",
"description": "Optional authentication override forcing delivery through 'managed' Nuntior OAuth credentials or 'byok' customer-supplied keys."
}
},
"additionalProperties": false
}{
"title": "Publish & Cross-Post Across 18 Social Networks",
"readOnlyHint": false,
"openWorldHint": true,
"idempotentHint": false,
"destructiveHint": false
}posts_manage — Manage Scheduled & Published Social Posts
List, inspect, update, mutate, delete, or retry scheduled, queued, and published social media posts stored in Nuntior Cloud — including live real-time YouTube video/Short title and hashtag/tag updates via YouTube Data API v3 (`PUT /youtube/v3/videos?part=snippet`) while keeping the existing description 100% intact unless `content` is explicitly changed. Also tracks 72h hook iteration metadata (`rewriteCount`, `hookHistory`, `lastViewCount`, `iterationStatus`, `lessonsLearned`).
{
"type": "object",
"required": [
"action"
],
"properties": {
"tags": {
"type": "array",
"items": {
"type": "string"
},
"description": "Updated hashtags/tags for the post or video."
},
"title": {
"type": "string",
"description": "Updated video/post title (e.g., for YouTube Shorts title & hook iteration while keeping the description intact)."
},
"action": {
"enum": [
"list",
"get",
"update",
"mutate",
"reschedule",
"delete",
"cancel",
"retry_failed",
"process_due"
],
"type": "string",
"description": "Post management operation: 'list' posts (optionally filtered by status), 'get' a single post by `postId` or `externalPostId` (with live YouTube view/like/comment counts and age in hours), 'update' / 'mutate' post content, YouTube title/tags, or schedule time, 'delete' a post, or 'retry_failed' to re-dispatch failed deliveries."
},
"lesson": {
"type": "string",
"description": "Optional performance lesson note saved on the post when closing an iteration loop."
},
"postId": {
"type": "string",
"description": "Unique post identifier (`post_...`). Required when `action` is 'get', 'update', 'mutate', or 'delete' unless `externalPostId` is provided."
},
"content": {
"type": "string",
"description": "Updated post text content or video description when executing `action: 'update'` or `'mutate'` (omit to keep the existing YouTube description 100% intact)."
},
"hookStyle": {
"type": "string",
"description": "Optional hook rotation label ('opinion', 'data', 'question') tracked in `hookHistory` (with `rewriteCount` incremented automatically)."
},
"profileId": {
"type": "string",
"default": "prof_allometrik",
"description": "Brand profile identifier (`prof_...`) used to scope the post query or mutation."
},
"scheduledFor": {
"type": "string",
"description": "Updated ISO-8601 publication timestamp when rescheduling a post via `action: 'update'`."
},
"statusFilter": {
"type": "string",
"description": "Optional status filter when listing posts (e.g. 'published', 'scheduled', 'queued', 'failed', 'draft')."
},
"externalPostId": {
"type": "string",
"description": "Optional native platform video/post ID (e.g. YouTube `videoId`) to inspect or update directly on the platform even if originally uploaded outside Nuntior."
},
"iterationStatus": {
"enum": [
"active",
"thriving",
"closed"
],
"type": "string",
"description": "Optional iteration loop status ('active', 'thriving', 'closed')."
},
"preserveDescription": {
"type": "boolean",
"default": true,
"description": "Keep the original description untouched when updating a published video's title/tags (default `true` when `title` is provided without `content`)."
}
},
"additionalProperties": false
}{
"title": "Manage Scheduled & Published Social Posts",
"readOnlyHint": false,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": false
}media_pipeline — Media Upload, Auto-Fit Video & Clip Pipeline
Execute media ingestion, zero-egress storage uploads, automatic multi-aspect-ratio video reframing (`9:16`, `16:9`, `1:1`, `4:5`), viral short clip extraction with burned-in captions, and AI visual asset generation (`media_generate`). Use this tool before `posts_publish` whenever a campaign requires uploading video/image files or converting a single landscape video into vertical Reels, TikToks, and YouTube Shorts. Returns presigned PUT upload URLs, zero-egress CDN URLs, transcoded aspect-ratio variant maps, or extracted clip URLs.
{
"type": "object",
"required": [
"action"
],
"properties": {
"action": {
"enum": [
"presign_upload",
"upload_base64",
"auto_fit_video",
"extract_clips",
"media_generate",
"check_status"
],
"type": "string",
"description": "Media pipeline operation: 'presign_upload' creates a signed direct PUT upload URL (no Authorization header needed, single use, 15 min), 'upload_base64' uploads a file inline (fileName, mimeType/contentType, dataBase64; max 20 MB), 'auto_fit_video' reframes video into target aspect ratios with -14 LUFS audio normalization, 'extract_clips' cuts viral vertical highlights, 'media_generate' renders social visuals from a prompt, and 'check_status' polls transcode progress."
},
"prompt": {
"type": "string",
"description": "Creative prompt or visual template instructions when running `action: 'media_generate'` (e.g. 'Minimalist B2B architecture diagram for MCP server launch')."
},
"fileName": {
"type": "string",
"description": "Original file name with extension (e.g. 'keynote-demo.mp4' or 'launch-carousel.png') when requesting a presigned upload URL."
},
"mimeType": {
"type": "string",
"default": "video/mp4",
"description": "MIME type of the media asset being uploaded or generated (e.g. 'video/mp4', 'image/png', 'image/jpeg', 'image/svg+xml')."
},
"clipCount": {
"type": "number",
"default": 3,
"description": "Number of short highlight clips (1 to 10) to extract from a long-form source video when `action` is 'extract_clips'."
},
"profileId": {
"type": "string",
"default": "prof_allometrik",
"description": "Brand profile identifier (`prof_...`) that owns the media asset."
},
"sizeBytes": {
"type": "number",
"default": 10485760,
"description": "File size in bytes used to validate upload quotas and allocate storage buffers."
},
"dataBase64": {
"type": "string",
"description": "Base64-encoded file bytes for 'upload_base64' (max 20 MB decoded)."
},
"contentType": {
"type": "string",
"description": "MIME type for 'upload_base64' (alias of mimeType), e.g. 'image/jpeg'."
},
"mediaAssetId": {
"type": "string",
"description": "Existing media asset identifier (`med_...`) to reframe, extract clips from, or inspect status."
},
"targetAspectRatios": {
"type": "array",
"items": {
"enum": [
"9:16",
"16:9",
"1:1",
"4:5"
],
"type": "string"
},
"default": [
"9:16",
"16:9"
],
"description": "Target aspect ratios for automatic video/image reframing: '9:16' (Reels/TikTok/Shorts), '16:9' (X/LinkedIn/YouTube), '1:1' (Square), '4:5' (Portrait Feed)."
}
},
"additionalProperties": false
}{
"title": "Media Upload, Auto-Fit Video & Clip Pipeline",
"readOnlyHint": false,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": false
}inbox_messages — Unified Social & Messaging Inbox
Manage the unified cross-network social and messaging inbox across LinkedIn, X DMs, Instagram, Threads, Telegram, and WhatsApp. Supports listing conversation threads (`list_threads`), reading full message history in a thread (`read_thread`), dispatching outbound replies (`reply`), and marking threads as read (`mark_read`). Returns normalized conversation objects with sender handles, timestamps, direction (`inbound`/`outbound`), and delivery confirmation.
{
"type": "object",
"required": [
"action"
],
"properties": {
"name": {
"type": "string",
"description": "Workflow name when `action` is 'create_workflow'."
},
"edges": {
"type": "array",
"items": {
"type": "object"
},
"description": "Graph directed edges (`{ from, to, condition }`) connecting workflow nodes."
},
"nodes": {
"type": "array",
"items": {
"type": "object"
},
"description": "Graph nodes array (`trigger`, `send_message`, `wait_for_reply`, `condition`, `hubspot_upsert_contact`, `handoff`, `end`) when creating an inbox workflow."
},
"action": {
"enum": [
"list_threads",
"read_thread",
"reply",
"mark_read",
"create_workflow",
"list_workflows",
"get_workflow",
"activate_workflow",
"pause_workflow",
"trigger_workflow",
"delete_workflow"
],
"type": "string",
"description": "Inbox operation: 'list_threads' returns recent DM conversations, 'read_thread' fetches all messages in `threadId`, 'reply' sends a direct message response, and 'mark_read' clears unread flags."
},
"platform": {
"enum": [
"x",
"linkedin",
"bluesky",
"instagram",
"facebook",
"threads",
"tiktok",
"youtube",
"reddit",
"pinterest",
"mastodon",
"telegram",
"discord",
"google_business",
"ghost",
"wordpress",
"webflow",
"whatsapp"
],
"type": "string",
"description": "Optional social or messaging platform filter (e.g. 'linkedin', 'x', 'instagram', 'telegram', 'whatsapp')."
},
"threadId": {
"type": "string",
"description": "Conversation thread identifier (`thr_...`). Required when `action` is 'reply' and optional target for 'read_thread' or 'mark_read'."
},
"profileId": {
"type": "string",
"default": "prof_allometrik",
"description": "Brand profile identifier (`prof_...`) whose unified inbox should be queried or replied from."
},
"replyBody": {
"type": "string",
"description": "Text body of the outbound direct message reply when `action` is 'reply'. Required for 'reply'."
},
"unreadOnly": {
"type": "boolean",
"default": false,
"description": "When true, filters `list_threads` to return only unread inbound conversations requiring agent or human attention."
},
"workflowId": {
"type": "string",
"description": "Workflow identifier (`wf_...`) when getting, activating, pausing, triggering, or deleting an inbox automation workflow graph."
},
"cooldownHours": {
"type": "number",
"default": 24,
"description": "Per-contact cooldown window in hours before re-triggering the workflow."
},
"triggerPayload": {
"type": "object",
"description": "Simulated or live event payload (`{ contact, message, replyText, event }`) when `action` is 'trigger_workflow'."
}
},
"additionalProperties": false
}{
"title": "Unified Social & Messaging Inbox",
"readOnlyHint": false,
"openWorldHint": true,
"idempotentHint": false,
"destructiveHint": false
}comments_moderate — Moderate Comments & Viral Auto-Plug
List, reply to, hide, or delete public comments on published Instagram posts and Threads replies (live Meta Graph API), or configure an automated viral Auto-Plug reply (`auto_plug`) that triggers when a post crosses a specified like threshold. Use this tool to engage commenters, remove spam on X/LinkedIn/Instagram/YouTube, or automatically plug a newsletter or product URL underneath high-performing posts. Returns moderation execution status or the active Auto-Plug rule configuration.
{
"type": "object",
"required": [
"action"
],
"properties": {
"action": {
"enum": [
"list",
"list_posts",
"reply",
"hide",
"unhide",
"delete",
"auto_plug"
],
"type": "string",
"description": "Comment moderation action on the connected Instagram (comments) or Threads (replies) account: 'list_posts' recent posts, 'list' comments on a post, 'reply' publicly to a comment, 'hide'/'unhide', 'delete' (Instagram only), or 'auto_plug' to attach an automatic threshold-triggered reply."
},
"postId": {
"type": "string",
"description": "Target social post identifier (`post_...`) whose comments are being listed, moderated, or configured for Auto-Plug."
},
"platform": {
"enum": [
"instagram",
"threads"
],
"type": "string",
"description": "Network whose comments to moderate (default 'instagram')."
},
"accountId": {
"type": "string",
"description": "Connected account id (`acc_...`); defaults to the first live account of `platform`."
},
"commentId": {
"type": "string",
"description": "Specific comment identifier (`cmt_...`) when replying to, hiding, or deleting an individual comment."
},
"profileId": {
"type": "string",
"default": "prof_allometrik",
"description": "Brand profile identifier (`prof_...`) that owns the social post and comments."
},
"replyText": {
"type": "string",
"description": "Public reply message text when `action` is 'reply'."
},
"externalPostId": {
"type": "string",
"description": "Platform media id (Instagram media id / Threads post id). Alternative to a Nuntior `postId`."
},
"autoPlugMessage": {
"type": "string",
"description": "Call-to-action comment text (e.g. link to docs, newsletter, or product page) automatically posted once the post reaches `autoPlugTriggerLikes`."
},
"autoPlugTriggerLikes": {
"type": "number",
"default": 25,
"description": "Like count threshold (e.g. 25 or 50 likes) that triggers Nuntior to automatically publish `autoPlugMessage` as a follow-up comment."
}
},
"additionalProperties": false
}{
"title": "Moderate Comments & Viral Auto-Plug",
"readOnlyHint": false,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": false
}analytics_query — Cross-Network Analytics & Live Social Listening
Query cross-network engagement analytics (`account_overview`, `post_metrics`, `audience_growth`), compute AI-recommended optimal posting windows (`best_times`), or execute live real-time social listening (`social_listen`) across Bluesky, Hacker News, Dev.to, Reddit, and X. Use `social_listen` to discover live community threads, competitor mentions, and high-intent buyer questions matching any keyword query. Returns aggregated engagement metrics, X Smart Link cost savings, optimal CET/UTC posting slots, or live upstream social signals with direct thread URLs and author handles.
{
"type": "object",
"required": [
"action"
],
"properties": {
"query": {
"type": "string",
"description": "Search keyword, brand name, competitor handle, or buyer-intent phrase when running live `action: 'social_listen'` (e.g. 'MCP server social media API' or 'n8n AI agent workflow')."
},
"action": {
"enum": [
"account_overview",
"post_metrics",
"post_detail",
"audience_growth",
"best_times",
"social_listen"
],
"type": "string",
"description": "Analytics or listening mode: 'account_overview' for cross-network KPIs, 'post_metrics' or 'post_detail' for individual post performance (including live YouTube viewCount, likeCount, commentCount, and publishedAt age in hours), 'audience_growth' for follower velocity, 'best_times' for highest-lift publishing windows, or 'social_listen' for live keyword/intent discovery."
},
"postId": {
"type": "string",
"description": "Optional post identifier (`post_...`) when inspecting granular metrics via `action: 'post_metrics'` or `'post_detail'`."
},
"platform": {
"enum": [
"x",
"linkedin",
"bluesky",
"instagram",
"facebook",
"threads",
"tiktok",
"youtube",
"reddit",
"pinterest",
"mastodon",
"telegram",
"discord",
"google_business",
"ghost",
"wordpress",
"webflow",
"whatsapp"
],
"type": "string",
"description": "Optional social network filter to scope metrics or listening to a single platform."
},
"accountId": {
"type": "string",
"description": "Connected account id (`acc_...`). For Instagram/Facebook/Threads, returns live account insights plus recent posts with per-post insights."
},
"postLimit": {
"type": "number",
"default": 10,
"description": "Max recent posts (1-25) with per-post insights for Instagram/Facebook/Threads overviews."
},
"profileId": {
"type": "string",
"default": "prof_allometrik",
"description": "Brand profile identifier (`prof_...`) to aggregate analytics for."
},
"periodDays": {
"type": "number",
"default": 30,
"description": "Lookback window in days (e.g. 7, 30, 90) for aggregating impressions, engagements, and follower growth."
},
"externalPostId": {
"type": "string",
"description": "Optional native platform video/post ID (e.g. YouTube `videoId`) to fetch live `viewCount`, `likeCount`, `commentCount`, and `publishedAt` age in hours."
}
},
"additionalProperties": false
}{
"title": "Cross-Network Analytics & Live Social Listening",
"readOnlyHint": true,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": false
}ads_campaigns — Paid Social Ad Campaigns & Post Boosting
Create, list, pause, resume, inspect metrics, or boost organic posts into paid social ad campaigns across LinkedIn Ads, X Ads, Meta (Facebook/Instagram) Ads, and TikTok Spark Ads with 0% Nuntior ad-spend commission. Use this tool when an organic post performs strongly and should be amplified to a targeted B2B or consumer audience with a controlled daily budget. Returns campaign configuration, status, targeting parameters, and real-time spend/conversion snapshots.
{
"type": "object",
"required": [
"action"
],
"properties": {
"name": {
"type": "string",
"description": "Human-readable campaign name (e.g. 'Q4 AI Agent Launch — LinkedIn Sponsored Update')."
},
"action": {
"enum": [
"list",
"create",
"pause",
"resume",
"boost_post",
"metrics"
],
"type": "string",
"description": "Paid ads operation: 'list' campaigns, 'create' a new campaign, 'boost_post' to turn an existing organic post into a paid ad, 'pause' or 'resume' delivery, or fetch 'metrics'."
},
"platform": {
"enum": [
"x",
"linkedin",
"bluesky",
"instagram",
"facebook",
"threads",
"tiktok",
"youtube",
"reddit",
"pinterest",
"mastodon",
"telegram",
"discord",
"google_business",
"ghost",
"wordpress",
"webflow",
"whatsapp"
],
"type": "string",
"default": "linkedin",
"description": "Target ad network platform (e.g. 'linkedin', 'x', 'facebook', 'instagram', 'tiktok')."
},
"objective": {
"enum": [
"engagement",
"traffic",
"leads",
"awareness"
],
"type": "string",
"default": "leads",
"description": "Campaign optimization objective: 'leads' (lead gen forms/signups), 'traffic' (website clicks), 'engagement' (likes/replies), or 'awareness' (reach/impressions)."
},
"profileId": {
"type": "string",
"default": "prof_allometrik",
"description": "Brand profile identifier (`prof_...`) linked to the ad account."
},
"targeting": {
"type": "object",
"description": "Structured audience targeting criteria such as countries, job titles, industries, or interest keywords (e.g. `{ \"countries\": [\"US\", \"AE\", \"ES\"], \"titles\": [\"CTO\", \"Founder\"] }`)."
},
"campaignId": {
"type": "string",
"description": "Ad campaign identifier (`camp_...`). Required when pausing, resuming, or querying a specific campaign."
},
"postIdToBoost": {
"type": "string",
"description": "Existing Nuntior organic post ID (`post_...`) to promote when `action` is 'boost_post'."
},
"dailyBudgetUsd": {
"type": "number",
"default": 25,
"description": "Daily ad spend cap in USD (e.g. 25 for $25/day). Nuntior charges 0% markup on ad spend."
}
},
"additionalProperties": false
}{
"title": "Paid Social Ad Campaigns & Post Boosting",
"readOnlyHint": false,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": false
}blogs_publish — Publish Canonical Blog Articles & Syndication
Publish or update long-form Markdown SEO articles directly to the hosted Nuntior Live Reader (`https://nuntior.com/p/:slug`), Ghost CMS, WordPress, Webflow, Dev.to, Medium, or Hashnode. Use this tool for canonical content-first workflows: publish the full technical article first to get a live canonical URL, then pass that URL into `posts_publish` with `xLinkStrategy: 'first_reply'` to share it across every connected social network. Returns the live `articleId`, `slug`, public `url`, `blogMirrorUrl`, and publication timestamp.
{
"type": "object",
"required": [
"action"
],
"properties": {
"slug": {
"type": "string",
"description": "Custom URL slug (e.g. 'agent-first-social-mcp-architecture'). Auto-generated from `title` if omitted."
},
"tags": {
"type": "array",
"items": {
"type": "string"
},
"description": "Array of topic tags or categories attached to the article for SEO discovery (e.g. `['AI Agents', 'MCP', 'Automation']`)."
},
"title": {
"type": "string",
"description": "Full headline title of the blog article (used for H1, OpenGraph tags, and automatic slug generation)."
},
"action": {
"enum": [
"list_sites",
"publish_article",
"update_article"
],
"type": "string",
"description": "CMS blog operation: 'list_sites' returns connected blog publications and existing articles, 'publish_article' publishes a new Markdown article, and 'update_article' edits an existing article by slug or ID."
},
"platform": {
"enum": [
"ghost",
"wordpress",
"webflow",
"nuntior",
"devto",
"medium",
"hashnode"
],
"type": "string",
"default": "nuntior",
"description": "Destination blog or CMS engine: 'nuntior' (instant hosted reader at nuntior.com/p/:slug), 'ghost', 'wordpress', 'webflow', 'devto', 'medium', or 'hashnode'."
},
"articleId": {
"type": "string",
"description": "Existing article identifier (`art_...`) when updating an article via `action: 'update_article'`."
},
"profileId": {
"type": "string",
"default": "prof_allometrik",
"description": "Brand profile identifier (`prof_...`) credited as the publication author."
},
"canonicalUrl": {
"type": "string",
"description": "Optional canonical URL (`<link rel=\"canonical\">`) when cross-syndicating an existing blog post to Dev.to, Medium, or Hashnode."
},
"markdownBody": {
"type": "string",
"description": "Complete long-form article body formatted in standard Markdown (supports headings, code blocks, tables, and links)."
},
"publishStatus": {
"enum": [
"draft",
"published"
],
"type": "string",
"default": "published",
"description": "Publication visibility state: 'published' makes the article immediately live; 'draft' stages it for review."
}
},
"additionalProperties": false
}{
"title": "Publish Canonical Blog Articles & Syndication",
"readOnlyHint": false,
"openWorldHint": true,
"idempotentHint": false,
"destructiveHint": false
}telecom_numbers — Provision Dedicated Telecom & Voice AI Numbers
Search available E.164 phone numbers, provision dedicated telecom numbers ($1.50/mo vs $59/mo legacy bundles), list active numbers, or bind a number to a SIP/WebRTC Voice AI Agent trunk. Use this tool when an AI agent needs a dedicated SMS, WhatsApp Business Cloud, or inbound/outbound voice phone number in the US, Spain, UAE, UK, or EU. Returns available or provisioned `TelecomNumber` records with capabilities (`sms`, `voice`, `whatsapp`) and SIP trunk URIs.
{
"type": "object",
"required": [
"action"
],
"properties": {
"action": {
"enum": [
"search_available",
"provision",
"configure_sip_voice_agent",
"list"
],
"type": "string",
"description": "Telecom number operation: 'search_available' lists purchasable E.164 numbers by country, 'provision' activates a dedicated number ($1.50/mo), 'configure_sip_voice_agent' attaches a SIP URI and voice prompt, and 'list' returns active workspace numbers."
},
"numberId": {
"type": "string",
"description": "Internal telecom number identifier (`num_...`) when configuring SIP routing via `configure_sip_voice_agent`."
},
"profileId": {
"type": "string",
"default": "prof_allometrik",
"description": "Brand profile identifier (`prof_...`) that owns the telecom number."
},
"countryCode": {
"type": "string",
"default": "ES",
"description": "Two-letter ISO-3166 alpha-2 country code for number search or provisioning (e.g. 'ES' for Spain +34, 'US' for United States +1, 'AE' for UAE +971, 'GB' for UK +44)."
},
"phoneNumber": {
"type": "string",
"description": "Specific E.164 phone number (e.g. '+34919021101' or '+14158904321') to provision when `action` is 'provision'."
},
"sipTrunkUri": {
"type": "string",
"description": "Destination SIP or WebRTC trunk URI (e.g. 'sip:voice-agent@sip.nuntior.com') for routing live inbound/outbound AI voice calls."
},
"voiceAgentPrompt": {
"type": "string",
"description": "System instructions and persona prompt for the realtime AI Voice Agent answering or placing calls on this number."
}
},
"additionalProperties": false
}{
"title": "Provision Dedicated Telecom & Voice AI Numbers",
"readOnlyHint": false,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": false
}telecom_messaging — Send SMS, WhatsApp Templates & AI Voice Calls
Send transactional SMS messages ($0.004/msg), dispatch pre-approved WhatsApp Business Cloud template messages (`send_whatsapp_template`), initiate outbound AI Voice calls (`place_call`), or audit the telecom usage ledger (`logs`). Use this tool for instant out-of-band customer notifications, executive alerts, appointment reminders, or autonomous voice follow-ups. Returns dispatch confirmation, `messageId`, E.164 sender/recipient numbers, and exact per-message cost in USD.
{
"type": "object",
"required": [
"action"
],
"properties": {
"body": {
"type": "string",
"description": "UTF-8 message body for SMS or parameter payload for WhatsApp messages."
},
"action": {
"enum": [
"send_sms",
"send_whatsapp_template",
"place_call",
"logs"
],
"type": "string",
"description": "Telecom dispatch action: 'send_sms' sends an E.164 text message, 'send_whatsapp_template' sends a WhatsApp Business message, 'place_call' initiates an outbound AI voice call, and 'logs' retrieves the telecom billing ledger."
},
"toNumber": {
"type": "string",
"description": "Recipient E.164 phone number including country prefix (e.g. '+971500000000' or '+14155550199'). Required for 'send_sms', 'send_whatsapp_template', and 'place_call'."
},
"profileId": {
"type": "string",
"default": "prof_allometrik",
"description": "Brand profile identifier (`prof_...`) associated with the sender number."
},
"fromNumber": {
"type": "string",
"default": "+34919019988",
"description": "Sender E.164 phone number provisioned in the workspace (e.g. '+34919019988')."
},
"templateName": {
"type": "string",
"description": "Approved WhatsApp Business Cloud template identifier (e.g. 'executive_briefing_confirm' or 'order_status_update') when `action` is 'send_whatsapp_template'."
},
"voiceScriptOrAgentId": {
"type": "string",
"description": "Spoken script text or Voice AI Agent ID to execute when placing an outbound call via `action: 'place_call'`."
}
},
"additionalProperties": false
}{
"title": "Send SMS, WhatsApp Templates & AI Voice Calls",
"readOnlyHint": false,
"openWorldHint": true,
"idempotentHint": false,
"destructiveHint": false
}traffic_analytics — Real-Time Traffic & MCP Attribution Telemetry
Query real-time web and API traffic telemetry, acquisition channel attribution (Smithery, Glama, PulseMCP, Official MCP Registry, Cursor, Claude Code, Grok Bot, n8n, Direct, X, LinkedIn, GitHub), MCP tool call volume, OAuth conversion funnel metrics, geographic distribution, and the live request stream. Use this read-only observability tool to monitor how developers and AI agents discover and invoke Nuntior in production. Returns aggregated counters, channel breakdowns, latency percentiles, and recent event logs.
{
"type": "object",
"required": [],
"properties": {
"limit": {
"type": "number",
"default": 50,
"description": "Maximum number of recent live traffic events to return in the event stream (default: 50, max: 200)."
},
"eventType": {
"enum": [
"page_view",
"mcp_call",
"api_call",
"oauth_start",
"oauth_callback",
"signup",
"checkout"
],
"type": "string",
"description": "Optional filter to restrict recent events to a specific telemetry event type (e.g. 'mcp_call', 'signup', 'checkout')."
},
"windowHours": {
"type": "number",
"default": 168,
"description": "Lookback aggregation time window in hours (default: 168 hours = 7 days; use 24 for last 24 hours)."
},
"sourceChannel": {
"type": "string",
"description": "Optional filter by acquisition source channel slug (e.g. 'glama', 'smithery', 'pulsemcp', 'mcp-registry', 'n8n', 'grok-bot', 'cursor', 'direct')."
}
},
"additionalProperties": false
}{
"title": "Real-Time Traffic & MCP Attribution Telemetry",
"readOnlyHint": true,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": false
}Prompts
3 advertised
cross_post_launch — Cross-Post Product Launch Across 18 Socials
Publish a canonical announcement and cross-post tailored hooks to X (with Smart Link first-reply 85% cost saver), LinkedIn, Bluesky, Instagram, and Threads.
- headline
- Launch headline or product announcement summary (required)
- canonicalUrl
- Canonical URL to include (moved to 1st reply on X via Smart Link Optimizer)
- platforms
- Comma-separated target platforms (default: x,linkedin,bluesky,threads)
weekly_social_digest — Weekly Cross-Network Social & Listening Digest
Query live social listening across Bluesky, Hacker News, Dev.to, Reddit, and X alongside account performance metrics to compile an actionable executive growth digest.
- topic
- Brand name, competitor, or keyword to monitor via analytics_query(action=social_listen) (required)
- periodDays
- Analytics lookback window in days (default: 7)
inbox_triage_reply — Unified Social Inbox Triage & Lead Reply
List unread DMs and comments across LinkedIn, X, Instagram, Telegram, and WhatsApp, prioritize high-intent buyer leads, and dispatch replies.
- platform
- Optional platform filter (e.g. linkedin, x, instagram, telegram, whatsapp)
- tone
- Preferred response tone (e.g. executive, consultative, concise)
Resources
2 advertised
Nuntior Supported Social, Blog, Ads & Telecom Platforms
Complete matrix of all 18+ social networks, CMS blog engines (Nuntior Reader, Ghost, WordPress, Webflow, Dev.to, Medium, Hashnode), paid ad networks, and telecom channels.
nuntior://platforms/supportedNuntior Pricing Tiers, Quotas & X Smart Link Cost Savings
Subscription plans ($0 Free Sandbox, $19 Starter, $35 Builder, $79 Scale), 0% BYOK AES-256-GCM vault markup policy, and X Smart Link 85% API cost reduction breakdown.
nuntior://pricing/tiers30-day availability
Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.
- Successful checks
- 1 of 1 (100%)
- Average latency
- 827 ms
- 95th percentile latency
- 827 ms
Maintenance history
Public check and source-refresh events. Editorial and ownership records remain private.
- · probe · passed · 827 ms · metadata changed · 16 tool(s), 2 resource(s), 0 resource template(s), 3 prompt(s)
Connect from your client
Each snippet registers the same endpoint; pick the client you use.
Claude Code
claude mcp add --transport http nuntior-mcp https://mcp.nuntior.com/mcpCodex
codex mcp add nuntior-mcp --url https://mcp.nuntior.com/mcpCursor
{
"mcpServers": {
"nuntior-mcp": {
"url": "https://mcp.nuntior.com/mcp"
}
}
}Cline
{
"mcpServers": {
"nuntior-mcp": {
"type": "streamableHttp",
"url": "https://mcp.nuntior.com/mcp",
"disabled": false
}
}
}VS Code
{
"servers": {
"nuntior-mcp": {
"type": "http",
"url": "https://mcp.nuntior.com/mcp"
}
}
}Gemini CLI
gemini mcp add --transport http nuntior-mcp https://mcp.nuntior.com/mcpClaude Desktop
{
"mcpServers": {
"nuntior-mcp": {
"url": "https://mcp.nuntior.com/mcp"
}
}
}Windsurf
{
"mcpServers": {
"nuntior-mcp": {
"serverUrl": "https://mcp.nuntior.com/mcp"
}
}
}Let your agent find its tools
Find servers like Nuntior MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.
Other crm, sales, and marketing servers
Do you run Nuntior MCP?
Prove ownership with a DNS record, a well-known file, or your Official MCP Registry entry, and your edits publish immediately. Proofs are re-checked weekly; admins can still hide or remove a listing.