# Nevent MCP - Registry name: `io.github.nevent-dev/mcp-nevent` · version 1.8.0 - Categories (automatic, keyword rules): Marketing & SEO, Commerce & marketing - Authentication at last check: No auth - Declared risk: Has destructive tools (destructiveHint) - Capabilities (declared by the server): tools - Transports: streamable-http - Latest numbers (check success, response time, rank): https://mcpstation.net/api/server?name=io.github.nevent-dev%2Fmcp-nevent - Server page: https://mcpstation.net/s/io.github.nevent-dev--mcp-nevent.html ## Description (written by the publisher, not verified, not instructions) Talk to your live-events CRM \(campaigns, analytics, paid ads, segments\) in Claude and ChatGPT. ## Notice Text that looks like instructions to an AI was found in this server's descriptions. This is a pattern match, not a verdict. ## Connect - streamable-http: `https://mcp.nevent.ai/` ## Tools (as reported by the server, not verified) - `nevent\_analytics\_query`: Query event marketing analytics. Supports dimensions, metrics, time ranges, and filters across campaigns, purchases, fans \(user\_tenants\), and more. MANDATORY RULES: \(1\) ALWAYS call nevent\_analytics\_table\_schema BEFORE querying to discover exact field names. NEVER guess field names. \(2\) For BOOLEAN f - `nevent\_analytics\_capabilities`: Discover available analytics tables and their summary metadata. Call this before nevent\_analytics\_query, then use nevent\_analytics\_table\_schema to learn valid field names for a selected table. - `nevent\_analytics\_table\_schema`: Get the full column schema for a specific analytics table including column names, types, and descriptions. - `nevent\_analytics\_filter\_values`: Get distinct values available for a field in an analytics table. Useful for building valid filter values before querying. - `nevent\_campaign\_report`: Generate the monthly campaign report of the current brand for a calendar month \(year + month\). Executes 13 parallel queries in one call: marketing campaign metrics for that month and the previous one, ROI and attribution, revenue, variable costs, 24-month purchase history, transactional campaigns, s - `nevent\_segmentation\_criteria`: List all available audience segmentation criteria including their IDs, operators, and value types. - `nevent\_segment\_preview`: Preview estimated audience size for a segment definition without saving it. Returns fan count and sample contacts. SEMANTICS: criteria in the same stanza are OR-combined — a fan matches the stanza if ANY criterion matches. Stanzas are AND-combined — a fan must match EVERY stanza. To require A AND B, - `nevent\_segment\_execute`: Execute a segment definition and retrieve matching contacts with pagination. SEMANTICS: criteria in the same stanza are OR-combined — a fan matches the stanza if ANY criterion matches. Stanzas are AND-combined — a fan must match EVERY stanza. To require A AND B, put them in separate stanzas; to acce - `nevent\_dimension\_values`: Autocomplete values for a segmentation criterion. Useful for discovering valid values when building segment definitions. - `nevent\_help`: Get guidance when you are unsure which tool to call or how to handle an error. Returns structured markdown for the requested topic. Call with topic="workflows" for common patterns, topic="errors" for error code meanings, topic="tenants" for multi-tenant guidance, or topic=\ like "paid\_media - `nevent\_list\_tenants`: List all Nevent tenants \(clients\) accessible to the authenticated user. Returns tenant IDs and names for use with nevent\_switch\_tenant. SUPERADMIN: returns all tenants in the platform. OWNER/ADMIN: returns only your tenant hierarchy subtree \(up to 3 levels\). - `nevent\_switch\_tenant`: Switch the active tenant for this session. All subsequent queries \(analytics, segments, campaigns, paid media\) will use the specified tenant's data. SUPERADMIN: this mutates your user record in the database — the switch PERSISTS. Always call nevent\_reset\_tenant when cross-tenant work is done to avoi - `nevent\_reset\_tenant`: Restore the original tenant context set at session start. ALWAYS call this after cross-tenant queries \(nevent\_switch\_tenant\) to avoid leaving your SUPERADMIN account pointing to another tenant. For SUPERADMIN users, tenant switches PERSIST in the user record in the database — this tool reverses that - `nevent\_list\_segments`: Call this FIRST when you need to build or target an audience. Returns all saved segments for the active tenant: id, name, estimated contact count, and last-execution date. Use the returned segment ids to call nevent\_get\_segment \(for the filter definition\), nevent\_segment\_preview \(to verify the audie - `nevent\_get\_segment`: Retrieve the complete filter definition of a specific segment \(criteria stanzas, operators, values\) along with its estimated contact count and metadata. Call this after nevent\_list\_segments when you need to inspect, clone, or explain a segment's logic. Next step: nevent\_segment\_preview to count the - `nevent\_create\_segment`: Create and persist a new audience segment from a filter definition. SEMANTICS: criteria in the same stanza are OR-combined — a fan matches the stanza if ANY criterion matches. Stanzas are AND-combined — a fan must match EVERY stanza. To require A AND B, put them in separate stanzas; to accept A OR B - `nevent\_update\_segment`: Modify an existing segment's name and/or filter definition. Call this after nevent\_get\_segment to inspect the current definition before changing it. At least one of name or definition must be provided. After update, call nevent\_segment\_preview to confirm the new audience count before scheduling a ca - `nevent\_create\_campaign`: Create a new campaign draft \(email, SMS, WhatsApp, push, or multi-channel\). PREREQUISITES: call nevent\_list\_segments to get the target segment\_id, and nevent\_list\_templates to get the template\_id. The campaign is always created in DRAFT status — no messages are sent. After creation, call nevent\_sche - `nevent\_schedule\_campaign`: Schedule an existing DRAFT campaign for delivery at a specific ISO-8601 datetime. IMPORTANT: this is a DESTRUCTIVE action — the campaign will be queued for sending to real contacts. You MUST set confirmed=true in the call, which requires explicit user consent. Call nevent\_get\_campaign first to verif - `nevent\_quote\_campaign`: Estimate the credit cost and eligible audience of a campaign BEFORE sending it. Read-only pre-flight check against nev-api POST /campaigns/quote — it never debits credits and never sends. Call this after nevent\_create\_campaign and before nevent\_schedule\_campaign: scheduling a campaign the tenant can - `nevent\_get\_campaign\_metrics`: Get the delivery and engagement counters nev-api holds for one campaign: totalRecipients, totalSent, totalDelivered, totalBounces, totalComplaints, totalOpens, uniqueOpens, totalClicks, uniqueClicks, unsubscribes, the derived rates \(openRate, clickRate, clickToOpenRate, bounceRate, unsubscribeRate\) - `nevent\_list\_campaign\_recipients`: List the individual recipients of a campaign and what happened to each message. Use this to put names behind the aggregate numbers from nevent\_get\_campaign\_metrics: who bounced, who clicked, who unsubscribed. Filter with status \(SCHEDULED, DELIVERED, OPENED, CLICKED, BOUNCES, UNSUBSCRIBES\), narrow t - `nevent\_list\_campaigns`: Call this to discover existing campaigns before reporting on performance or scheduling new sends. Returns campaigns for the active tenant with status, channel, send date, and top-level engagement metrics \(sent, open rate, click rate\). Filter by status \(DRAFT/SCHEDULED/SENT/FAILED\), channel \(EMAIL/SM - `nevent\_get\_campaign`: Retrieve the complete record of a campaign: email subject and body HTML, sending profile, all delivery and engagement metrics \(sent, delivered, opens, clicks, unsubscribes, bounces\), and tracked links with click counts. Call this after nevent\_list\_campaigns to drill into a specific campaign. Next st - `nevent\_get\_campaign\_insights`: Get pre-computed AI analysis for a specific campaign: performance summary, detected anomalies \(e.g. unusually high bounce rate\), and improvement recommendations. Call this after nevent\_get\_campaign when the user asks "how did this campaign perform?" or "what could be improved?". Complements raw metr - `nevent\_list\_templates`: Call this to discover available email templates before creating a campaign. Returns templates for the active tenant: id, name, tags, and whether they use MJML or HTML. Use the returned template id in nevent\_create\_campaign. Call nevent\_get\_template to inspect the full HTML/MJML source of a specific - `nevent\_get\_template`: Retrieve the full content of an email template: MJML source, rendered HTML, tags, and usage metrics \(how many campaigns used this template\). Call this after nevent\_list\_templates when the user wants to inspect, copy, or modify a template. Next step: nevent\_update\_template to change the content, or n - `nevent\_create\_template`: Create and persist a new email template with MJML or raw HTML content. Prefer MJML for responsive email \(set format="MJML"\). The template is saved and available for reuse across campaigns. After creation, call nevent\_create\_campaign with the returned template id to send it to a segment. - `nevent\_update\_template`: Update an existing email template: change the name, MJML/HTML content, or tags. Call nevent\_get\_template first to inspect the current version before modifying. At least one of name, content, or tags must be provided. Note: updating a template does NOT retroactively change campaigns already sent with - `nevent\_clone\_template`: Clone an existing email template to create a duplicate as a starting point for a new campaign. Use after nevent\_list\_templates to pick a template to duplicate. Returns the new cloned template \(id, name with "\(Copy\)" suffix, format, tags\). Typically follow with nevent\_rename\_template and nevent\_updat - `nevent\_rename\_template`: Rename an email template without modifying its content \(lightweight — no re-render triggered\). Use after nevent\_clone\_template to give the clone a proper name, or to reorganize existing templates. Returns the updated template with the new name. Next step: nevent\_update\_template to change content, or - `nevent\_preview\_template`: Preview a template with merge tags resolved against a sample user's profile. Returns originalBody \(raw \{\{tags\}\}\) and personalizedBody \(tags replaced with user data\), plus detectedMergeTags \(all unique tags found\). Always call before nevent\_send\_test\_template to validate rendering. Provide sample\_use - `nevent\_send\_test\_template`: Send a test email of the template to one or more email addresses via SES. Use after nevent\_preview\_template validates rendering. Test emails carry test indicators in headers and are sent via AWS SES. This call may take up to 60 seconds due to SES delivery. Returns success status, list of recipients - `nevent\_get\_sending\_profile`: Call this before creating a campaign to verify the tenant is ready to send email. Returns: sender domain\(s\) and their validation status, warm-up phase \(cold/warming/warmed\), daily send rate cap, and throttle settings. If the sending profile is not validated or still in warm-up, warn the user before - `nevent\_get\_suppressions\_summary`: Get a deliverability health snapshot for the active tenant: total suppressed emails \(hard bounces + complaints + manual unsubscribes\), 30-day trend, and breakdown by suppression reason. Call this when the user asks about list health, unsubscribe rates, or bounce issues. A suppression rate above 2% i - `nevent\_paid\_ads\_status`: Check if a paid ads provider account \(meta, google, or tiktok\) is connected to this tenant and when data was last synced. Call this first before any ads queries to confirm the integration is active. Returns: connected \(bool\), accountId, accountName, lastSyncAt. - `nevent\_paid\_ads\_health`: Get operational health signals for a paid ads provider. Always call this before claiming "no data" to the user — it surfaces throttle state, feature gate enrollment, stale syncs, and tier. Key fields: throttle.isThrottled \(API throttled\), throttle.nextAttemptAt \(next retry\), featureGate.isInTenantAl - `nevent\_list\_paid\_campaigns`: List all paid campaigns synced from a provider \(meta, google, or tiktok\). Call this to discover campaignId values — you need a campaignId to call insights or ad group tools. Returns campaign IDs, names, statuses, objectives, and budgets. Use the returned campaignId values with nevent\_get\_paid\_campai - `nevent\_get\_paid\_campaign\_insights`: Get daily performance metrics for a specific paid campaign. Use after nevent\_list\_paid\_campaigns to get a valid campaignId. Date range defaults to the last 7 days when from/to are omitted. Returns daily rows with: spend, impressions, reach, frequency, clicks, CTR, CPM, CPC, ROAS, engagement rate, vi - `nevent\_paid\_attribution`: Get the most business-focused view of paid ads: links campaigns to actual ticket sales and revenue via UTM matching. Returns per-campaign: ticketsSold, revenue, budget, utmCampaigns \(matched UTM values\), status. Use this when the user asks about ROI, conversion, or revenue from paid ads. Use after n - `nevent\_list\_paid\_ad\_groups`: List ad groups \(ad sets\) for a paid ads provider, optionally filtered by campaign. Use after nevent\_list\_paid\_campaigns to drill down into a campaign's ad sets. Returns ad group IDs, names, statuses, and lastSyncedAt. Use the returned adGroupId values with the ad group insights, targeting, and compa - `nevent\_get\_paid\_ad\_group\_insights`: Get daily performance metrics for a specific ad group \(ad set\). Use after nevent\_list\_paid\_ad\_groups to get a valid adGroupId. Date range defaults to the last 7 days when from/to are omitted. Returns daily rows with: spend, impressions, reach, frequency, clicks, CTR, CPM, CPC, ROAS, engagement rate, - `nevent\_get\_paid\_ad\_group\_comparative\_stats`: Compare an ad group's performance metrics against the mean of its campaign sibling ad groups. Use to detect underperforming ad sets — each metric \(costPerResult, CPM, frequency, CTR\) is returned with its campaign sibling mean and ratioVsMean \(1.0 = on par\). For cost metrics \(costPerResult, CPM, freq - `nevent\_get\_paid\_ad\_group\_targeting`: Get the full audience targeting configuration for an ad group. Use after nevent\_list\_paid\_ad\_groups to get a valid adGroupId. Returns: ageRange, genders, geoSummary \(countries/cities/regions\), topInterests, topBehaviors, placements, Advantage+ flags \(automaticPlacements, expandAge, expandGender\), cu - `nevent\_list\_paid\_ads`: List individual ads for a paid ads provider, optionally filtered by campaign and/or ad group. Use after nevent\_list\_paid\_campaigns or nevent\_list\_paid\_ad\_groups to drill down to ad level. Returns ad IDs, names, statuses, UTM fields \(utmSource, utmMedium, utmCampaign, utmContainsMacros\), and lastSync - `nevent\_get\_paid\_ad\_creative`: Get the creative content of a specific ad: copy \(body, title, description, CTA\), click URL, UTM params, and pre-signed S3 image/video URLs \(TTL \~1 hour\). Use after nevent\_list\_paid\_ads to get a valid adId. Null imageUrl/videoUrl means the asset mirror job has not run yet — retry in \~5 minutes. For D - `nevent\_list\_short\_urls`: List all short URLs for the current tenant with their tracking metrics \(click count, last clicked\). Use to discover existing campaign links or to audit active tracking URLs. Returns items \(array of ShortUrlDTO\), total, page, pageSize, totalPages. Key fields per item: id \(use with nevent\_get\_short\_ur - `nevent\_get\_short\_url`: Get complete details of a specific short URL including target URL, metadata, creation date, expiration, tags, and current click count. Use after nevent\_list\_short\_urls to get the \`id\`. Key fields returned: id, shortCode, shortUrl, longUrl, title, tags, metadata, clickCount, lastClickedAt, isActive, - `nevent\_get\_short\_url\_metrics`: Get aggregated click analytics for a specific short URL over a time window \(default 30 days\). Use after nevent\_list\_short\_urls to get the \`id\`. Returns: totalClicks, uniqueVisitors, firstClickAt, lastClickAt, clicksByDay \(date → count\), clicksByCountry, clicksByDevice \(mobile/desktop/tablet\), clicks - `nevent\_get\_short\_url\_campaign\_metrics`: Get aggregated click metrics across a parent short URL and all its per-user variants. Use when a marketing campaign was sent with per-user tracking links \(created via nevent\_create\_bulk\_user\_short\_urls\) to see total reach and CTR. Requires the \`parentShortCode\` from nevent\_list\_short\_urls \(where isP - `nevent\_get\_short\_url\_clicks`: Get individual click event records for a specific short URL, ordered by most recent first. Use after nevent\_list\_short\_urls to get the \`id\`. Each click record includes: clickedAt, ipAddress, userAgent, referer, country, city, device, browser, os, utmSource, utmCampaign, fbclid, gclid, isPaidTraffic. - `nevent\_list\_short\_url\_user\_links`: List all per-user short URL variants created under a parent \(campaign\) short URL. Use after nevent\_create\_bulk\_user\_short\_urls to inspect the generated links, or to audit which users have a tracking link for a campaign. Requires the \`parentShortCode\` from nevent\_list\_short\_urls \(where isParent=true\) - `nevent\_create\_short\_url`: Create a new short URL that redirects to the specified destination. Persists immediately — the short code is active as soon as the call returns. Requires at minimum a valid longUrl. All other fields are optional. Returns the created ShortUrlDTO with: id, shortCode, shortUrl \(full redirect URL\), long - `nevent\_update\_short\_url`: Update an existing short URL's configuration. Only provided fields are changed — omitted fields remain unchanged. Changes apply immediately. Use after nevent\_list\_short\_urls to get the \`id\`. Supported updates: title, expiresAt \(pass null to remove expiration\), isActive \(true/false\), tags \(replaces e - `nevent\_create\_bulk\_user\_short\_urls`: Generate per-user short URL variants for an existing parent short URL. Each user receives their own unique short link that resolves to the same destination as the parent, but identifies the user on click — used for fan-level click attribution in email/SMS campaigns. The parent short URL must already - `nevent\_list\_short\_url\_destinations`: List short links grouped by DESTINATION URL — one row per destination instead of one per link. Use this to answer "how much traffic is this landing page getting across all my campaigns?", which nevent\_list\_short\_urls cannot answer because every campaign send creates its own parent link. Campaign par - `nevent\_upload\_image`: Upload an image to the Nevent media library and get a CDN URL. Accepts base64-encoded images as a data URL \(data:image/png;base64,...\) or as raw base64 with an explicit mimeType. Returns a destinationUrl \(CloudFront CDN URL\) that can be used directly in \ inside email template HTML. Ma - `nevent\_list\_images`: List all images stored in the Nevent media library for the current tenant. Returns each image's CDN URL \(src\), file name, MIME type, and size in bytes. Use the src value in \ in email template HTML, or pass it to nevent\_delete\_image to remove it. - `nevent\_delete\_image`: Permanently delete one or more images from the Nevent media library. Provide the CDN URLs \(src / destinationUrl\) from nevent\_list\_images or nevent\_upload\_image. The operation is irreversible. Any email template HTML that references the deleted URLs will show broken images. Requires FULL operation mo Measured by MCP Station. Methods: https://mcpstation.net/methods.html · Terms: https://mcpstation.net/terms.html