Skip to content

Nevent MCP

by nevent-dev · remote · local (npm) · no sign-in to list tools · v1.8.0 · published by GitHub user nevent-dev

Talk to your live-events CRM (campaigns, analytics, paid ads, segments) in Claude and ChatGPT.

Deletes · 7Changes · 18

59 tools: 7 can delete or cancel things, 18 change things and 34 only read.

Scanned Oct 21, 2026

6 checks matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.

claude mcp add --transport http nevent https://mcp.nevent.ai/

Findings

Matches of fixed checks, with the text they matched.

6 warn
  • The server marks "nevent_campaign_report" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

    Matched text

    annotations: {"readOnlyHint":true,"destructiveHint":false,"openWorldHint":false}; The description's first verb is "generate": a word for a change.

    What this check looks for
  • The server marks "nevent_segment_execute" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

    Matched text

    annotations: {"readOnlyHint":true,"destructiveHint":false,"openWorldHint":false}; The name "nevent_segment_execute" says "execute": a word for a change.

    What this check looks for
  • The server marks "nevent_list_segments" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

    Matched text

    annotations: {"readOnlyHint":true,"destructiveHint":false,"openWorldHint":false}; The name "nevent_list_segments" says "list": a word for reading.

    What this check looks for
  • The server marks "nevent_list_campaigns" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

    Matched text

    annotations: {"readOnlyHint":true,"destructiveHint":false,"openWorldHint":false}; The name "nevent_list_campaigns" says "list": a word for reading.

    What this check looks for
  • The server marks "nevent_list_templates" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

    Matched text

    annotations: {"readOnlyHint":true,"destructiveHint":false,"openWorldHint":false}; The name "nevent_list_templates" says "list": a word for reading.

    What this check looks for
  • The server marks "nevent_get_sending_profile" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

    Matched text

    annotations: {"readOnlyHint":true,"destructiveHint":false,"openWorldHint":false}; The name "nevent_get_sending_profile" says "get": a word for reading.

    What this check looks for

Tools

Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.

59 tools

Deletes or cancels 7Claude Code: deny
  • nevent_delete_imagePermanently delete one or more images from the Nevent media library.No findings

    Why it is in this group

    • The name "nevent_delete_image" says "delete": a word for removing or ending something.
    • The description says "Permanently delete".
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    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 mode (NEVENT_OPERATION_MODE=FULL) and ADMIN, SUPERADMIN, or OWNER role.

    Annotations the server declares

    • title: Delete images from media library
    • readOnlyHint: false
    • destructiveHint: true
    • openWorldHint: true
  • nevent_rename_templateRename an email template without modifying its content (lightweight — no re-render triggered).No findings

    Why it is in this group

    • The name "nevent_rename_template" says "rename": a word for a change.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    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 to validate rendering.

    Annotations the server declares

    • title: Rename email template
    • readOnlyHint: false
    • destructiveHint: true
    • openWorldHint: false
  • nevent_schedule_campaignSchedule an existing DRAFT campaign for delivery at a specific ISO-8601 datetime.No findings

    Why it is in this group

    • The name "nevent_schedule_campaign" says "schedule": a word for a change.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    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 verify the draft content and recipient segment. scheduled_time must be in the future (ISO-8601, e.g. 2025-06-01T10:00:00Z). The campaign transitions from DRAFT to SCHEDULED status on success.

    Annotations the server declares

    • title: Schedule campaign for delivery
    • readOnlyHint: false
    • destructiveHint: true
    • openWorldHint: true
  • nevent_send_test_templateSend a test email of the template to one or more email addresses via SES.No findings

    Why it is in this group

    • The name "nevent_send_test_template" says "send": a word for sending, and what is sent cannot be taken back.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    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 the email was sent to, and any error details.

    Annotations the server declares

    • title: Send test email
    • readOnlyHint: false
    • destructiveHint: true
    • openWorldHint: true
  • nevent_update_segmentModify an existing segment's name and/or filter definition.No findings

    Why it is in this group

    • The name "nevent_update_segment" says "update": a word for a change.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    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 campaign.

    Annotations the server declares

    • title: Update segment
    • readOnlyHint: false
    • destructiveHint: true
    • openWorldHint: false
  • nevent_update_short_urlUpdate an existing short URL's configuration.No findings

    Why it is in this group

    • The name "nevent_update_short_url" says "update": a word for a change.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    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 existing), metadata (replaces existing), longUrl (changes redirect destination). Returns the updated ShortUrlDTO. WRITE operation — requires STANDARD or FULL operation mode. In READ_ONLY mode this tool returns an operation_not_permitted error immediately without making any API call.

    Annotations the server declares

    • title: Update short URL
    • readOnlyHint: false
    • destructiveHint: true
    • openWorldHint: true
  • nevent_update_templateUpdate an existing email template: change the name, MJML/HTML content, or tags.No findings

    Why it is in this group

    • The name "nevent_update_template" says "update": a word for a change.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    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 it.

    Annotations the server declares

    • title: Update email template
    • readOnlyHint: false
    • destructiveHint: true
    • openWorldHint: false
Changes things 18Claude Code: ask
  • nevent_analytics_capabilitiesDiscover available analytics tables and their summary metadata.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • title: Discover analytics capabilities
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: false
  • nevent_campaign_reportGenerate the monthly campaign report of the current brand for a calendar month (year + month).1 finding

    Why it is in this group

    • The description's first verb is "generate": a word for a change.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    Findings

    • Warn

      The server marks "nevent_campaign_report" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

      Matched text

      annotations: {"readOnlyHint":true,"destructiveHint":false,"openWorldHint":false}; The description's first verb is "generate": a word for a change.

      What this check looks for
    Description, as the server wrote it
    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, segments and industry benchmarks. For a single campaign use nevent_get_campaign_insights.

    Annotations the server declares

    • title: Generate campaign analytics report
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: false
  • nevent_clone_templateClone an existing email template to create a duplicate as a starting point for a new campaign.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    Description, as the server wrote it
    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_update_template to customize the clone.

    Annotations the server declares

    • title: Clone email template
    • readOnlyHint: false
    • destructiveHint: false
    • openWorldHint: false
  • nevent_create_bulk_user_short_urlsGenerate per-user short URL variants for an existing parent short URL.No findings

    Why it is in this group

    • The name "nevent_create_bulk_user_short_urls" says "create": a word for a change.
    Description, as the server wrote it
    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 exist (create it first with nevent_create_short_url). Requires: parentShortCode (from nevent_list_short_urls) and userIds (list of user IDs). Returns: parentShortCode, totalRequested, totalCreated, createdLinks (array of ShortUrlDTO with userId, shortCode, shortUrl per user). Use nevent_get_short_url_campaign_metrics afterwards to track aggregate CTR. WRITE operation — requires STANDARD or FULL operation mode. In READ_ONLY mode this tool returns an operation_not_permitted error immediately without making any API call. Note: parentShortCode is sent in both the URL path and request body — they must match (validated server-side).

    Annotations the server declares

    • title: Create bulk user short URLs
    • readOnlyHint: false
    • destructiveHint: false
    • openWorldHint: true
  • nevent_create_campaignCreate a new campaign draft (email, SMS, WhatsApp, push, or multi-channel).No findings

    Why it is in this group

    • The name "nevent_create_campaign" says "create": a word for a change.
    Description, as the server wrote it
    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_schedule_campaign to schedule delivery. For EMAIL_ONLY (and email multi-channel): email_subject is required. For SMS_ONLY/WHATSAPP_ONLY/PUSH_ONLY and multi-channel involving those: message is required. Optional fields: from_name, preview_text, template_id, segment_ids, utm_source/medium/campaign/content/term/custom_params, reply_to (email address for reply routing — useful when replies should go to a different mailbox than the From address). Always confirm the segment audience count with the user before scheduling.

    Annotations the server declares

    • title: Create campaign draft
    • readOnlyHint: false
    • destructiveHint: false
    • openWorldHint: false
  • nevent_create_segmentCreate and persist a new audience segment from a filter definition.No findings

    Why it is in this group

    • The name "nevent_create_segment" says "create": a word for a change.
    Description, as the server wrote it
    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, put both in the same stanza. PREREQUISITE: call nevent_segmentation_criteria first to discover valid criterion_ids and operators. MANDATORY RULES: (1) ENTITY operators (is/is_not) accept a single string OR an array of strings — e.g. value: "EVENT_ID" or value: ["E1","E2"]. (2) Omit modifiers unless the user explicitly requests frequency/recency filtering; if included, time_range.value MUST be > 0. (3) Criteria fields: only criterion_id, operator, value — omit id, timeframe, type. (4) KNOWN LIMITATION: do NOT mix attendance criteria (attended_event, ticket_type) with spending criteria (total_spent, ticket_spent, cashless_recharge_amount) in the same stanza — put them in separate stanzas. Separate stanzas are AND-combined, so a fan must match both. After creation, call nevent_segment_preview to count the audience, then nevent_create_campaign to send to this segment.

    Annotations the server declares

    • title: Create segment
    • readOnlyHint: false
    • destructiveHint: false
    • openWorldHint: false
  • nevent_create_short_urlCreate a new short URL that redirects to the specified destination.No findings

    Why it is in this group

    • The name "nevent_create_short_url" says "create": a word for a change.
    Description, as the server wrote it
    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), longUrl, title, tags, isActive. Use the returned shortCode with nevent_create_bulk_user_short_urls to generate per-user variants. WRITE operation — requires STANDARD or FULL operation mode. In READ_ONLY mode this tool returns an operation_not_permitted error immediately without making any API call.

    Annotations the server declares

    • title: Create short URL
    • readOnlyHint: false
    • destructiveHint: false
    • openWorldHint: true
  • nevent_create_templateCreate and persist a new email template with MJML or raw HTML content.No findings

    Why it is in this group

    • The name "nevent_create_template" says "create": a word for a change.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • title: Create email template
    • readOnlyHint: false
    • destructiveHint: false
    • openWorldHint: false
  • nevent_dimension_valuesAutocomplete values for a segmentation criterion.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Autocomplete values for a segmentation criterion. Useful for discovering valid values when building segment definitions.

    Annotations the server declares

    • title: Get dimension values
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: false
  • nevent_get_sending_profileCall this before creating a campaign to verify the tenant is ready to send email.1 finding

    Why it is in this group

    • The name "nevent_get_sending_profile" says "get": a word for reading.
    • The description's first verb is "call": a word for a change.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    Findings

    • Warn

      The server marks "nevent_get_sending_profile" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

      Matched text

      annotations: {"readOnlyHint":true,"destructiveHint":false,"openWorldHint":false}; The name "nevent_get_sending_profile" says "get": a word for reading.

      What this check looks for
    Description, as the server wrote it
    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 scheduling a large campaign. Combine with nevent_get_suppressions_summary for a full deliverability health check.

    Annotations the server declares

    • title: Get sending profile
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: false
  • nevent_list_campaignsCall this to discover existing campaigns before reporting on performance or scheduling new sends.1 finding

    Why it is in this group

    • The name "nevent_list_campaigns" says "list": a word for reading.
    • The description's first verb is "call": a word for a change.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    Findings

    • Warn

      The server marks "nevent_list_campaigns" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

      Matched text

      annotations: {"readOnlyHint":true,"destructiveHint":false,"openWorldHint":false}; The name "nevent_list_campaigns" says "list": a word for reading.

      What this check looks for
    Description, as the server wrote it
    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/SMS), or date range. Use the returned campaign id to call nevent_get_campaign (full content + metrics) or nevent_get_campaign_insights (AI analysis).

    Annotations the server declares

    • title: List campaigns
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: false
  • nevent_list_segmentsCall this FIRST when you need to build or target an audience.1 finding

    Why it is in this group

    • The name "nevent_list_segments" says "list": a word for reading.
    • The description's first verb is "call": a word for a change.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    Findings

    • Warn

      The server marks "nevent_list_segments" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

      Matched text

      annotations: {"readOnlyHint":true,"destructiveHint":false,"openWorldHint":false}; The name "nevent_list_segments" says "list": a word for reading.

      What this check looks for
    Description, as the server wrote it
    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 audience), or nevent_create_campaign (to send a campaign to that segment).

    Annotations the server declares

    • title: List segments
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: false
  • nevent_list_templatesCall this to discover available email templates before creating a campaign.1 finding

    Why it is in this group

    • The name "nevent_list_templates" says "list": a word for reading.
    • The description's first verb is "call": a word for a change.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    Findings

    • Warn

      The server marks "nevent_list_templates" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

      Matched text

      annotations: {"readOnlyHint":true,"destructiveHint":false,"openWorldHint":false}; The name "nevent_list_templates" says "list": a word for reading.

      What this check looks for
    Description, as the server wrote it
    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 template.

    Annotations the server declares

    • title: List email templates
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: false
  • nevent_quote_campaignEstimate the credit cost and eligible audience of a campaign BEFORE sending it.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    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 cannot afford fails at send time with a 402. Returns cost (credits required), available (credits in the pool), missing (shortfall), recipientCount, affordable (boolean — the gate to check), blocked, unlimited, and an audience block with uniqueAudience, estimatedEligible per channel, eligibleAnyChannel and emailExclusions (no_email / invalid_email / opt_out / unknown). The audience block is null when the estimate could not be computed: any channel mix touching WhatsApp, more than 20 segments, or a data-api timeout — cost and recipientCount are still valid in that case. Use segment_ids from nevent_list_segments; omit them to quote the full addressable audience. Set transactional=true only for genuinely transactional sends (order confirmations, ticket delivery) — it estimates against the TRANSACTIONAL consent mode, which reaches recipients who opted out of marketing.

    Annotations the server declares

    • title: Quote campaign cost and audience
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: false
  • nevent_reset_tenantRestore the original tenant context set at session start.No findings

    Why it is in this group

    • The name "nevent_reset_tenant" says "reset": a word for a change.
    Description, as the server wrote it
    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. For OWNER/ADMIN/STAFF users, this resets to the session's home tenant. No parameters needed.

    Annotations the server declares

    • title: Reset to home tenant
    • readOnlyHint: false
    • destructiveHint: false
    • openWorldHint: false
  • nevent_segment_executeExecute a segment definition and retrieve matching contacts with pagination.1 finding

    Why it is in this group

    • The name "nevent_segment_execute" says "execute": a word for a change.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    Findings

    • Warn

      The server marks "nevent_segment_execute" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

      Matched text

      annotations: {"readOnlyHint":true,"destructiveHint":false,"openWorldHint":false}; The name "nevent_segment_execute" says "execute": a word for a change.

      What this check looks for
    Description, as the server wrote it
    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 accept A OR B, put both in the same stanza.

    Annotations the server declares

    • title: Execute segment and get contacts
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: false
  • nevent_switch_tenantSwitch the active tenant for this session.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    Description, as the server wrote it
    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 avoid leaving your account pointing at another tenant. OWNER/ADMIN/STAFF: session-scoped only; you can only switch to tenants in your hierarchy subtree (max 3 levels deep). Use nevent_list_tenants to discover available tenant IDs.

    Annotations the server declares

    • title: Switch active tenant
    • readOnlyHint: false
    • destructiveHint: false
    • openWorldHint: false
  • nevent_upload_imageUpload an image to the Nevent media library and get a CDN URL.No findings

    Why it is in this group

    • The name "nevent_upload_image" says "upload": a word for a change.
    Description, as the server wrote it
    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 <img src="..."> inside email template HTML. Maximum decoded size: 5 MB. Upload the image, then reference the returned destinationUrl in nevent_update_template or nevent_create_template HTML content.

    Annotations the server declares

    • title: Upload image to media library
    • readOnlyHint: false
    • destructiveHint: false
    • openWorldHint: true
Only reads 34Claude Code: allow
  • nevent_analytics_filter_valuesGet distinct values available for a field in an analytics table.No findings

    Why it is in this group

    • The description's first verb is "get": a word for reading.
    Description, as the server wrote it
    Get distinct values available for a field in an analytics table. Useful for building valid filter values before querying.

    Annotations the server declares

    • title: Get analytics filter values
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: false
  • nevent_analytics_queryQuery event marketing analytics.No findings

    Why it is in this group

    • The name "nevent_analytics_query" says "query": a word for reading.
    Description, as the server wrote it
    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 fields, use operator "eq" (or "neq") with the boolean value true or false; "is_true"/"is_false" are segmentation operators and analytics rejects them. (3) For enum fields (state, status), check the field description for valid values. Common values: purchases.state = SUCCEEDED|COMPLETE|PENDING|FAILED; campaigns.status = EXECUTED|DRAFT|PAUSED|STOPPED.

    Annotations the server declares

    • title: Query analytics data
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: false
  • nevent_analytics_table_schemaGet the full column schema for a specific analytics table including column names, types, and descriptions.No findings

    Why it is in this group

    • The description's first verb is "get": a word for reading.
    Description, as the server wrote it
    Get the full column schema for a specific analytics table including column names, types, and descriptions.

    Annotations the server declares

    • title: Get analytics table schema
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: false
  • nevent_get_campaignRetrieve the complete record of a campaign: email subject and body HTML, sending profile, all delivery and engagement metrics (sent, delivered, opens, clicks, unsubscribes, bounces…No findings

    Why it is in this group

    • The name "nevent_get_campaign" says "get": a word for reading.
    Description, as the server wrote it
    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 step: nevent_get_campaign_insights for AI-generated recommendations, or nevent_campaign_report for a full analytics query.

    Annotations the server declares

    • title: Get campaign details
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: false
  • nevent_get_campaign_insightsGet pre-computed AI analysis for a specific campaign: performance summary, detected anomalies (e.g.No findings

    Why it is in this group

    • The name "nevent_get_campaign_insights" says "get": a word for reading.
    Description, as the server wrote it
    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 metrics from nevent_get_campaign with narrative insights.

    Annotations the server declares

    • title: Get campaign AI insights
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: false
  • nevent_get_campaign_metricsGet the delivery and engagement counters nev-api holds for one campaign: totalRecipients, totalSent, totalDelivered, totalBounces, totalComplaints, totalOpens, uniqueOpens, totalCl…No findings

    Why it is in this group

    • The name "nevent_get_campaign_metrics" says "get": a word for reading.
    Description, as the server wrote it
    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) and the conversion counters (carts, purchases, revenue). This is the OPERATIONAL source of truth, read straight from nev-api — use it right after a send, and prefer it over nevent_campaign_report when the two disagree, because the report reads the analytics warehouse and lags behind by the data pipeline. Use nevent_campaign_report instead when you need to compare many campaigns, slice by dimension, or join against other analytics. Get campaign_id from nevent_list_campaigns. Follow up with nevent_list_campaign_recipients to see who is behind a number (for example which recipients bounced).

    Annotations the server declares

    • title: Get campaign metrics
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: false
  • nevent_get_paid_ad_creativeGet 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).No findings

    Why it is in this group

    • The name "nevent_get_paid_ad_creative" says "get": a word for reading.
    Description, as the server wrote it
    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 Dynamic Creative Ads (hasDca: true), the dca field contains multiple creative variants. A 404 may mean this tenant is not enrolled in the insights pilot — call nevent_paid_ads_health to confirm.

    Annotations the server declares

    • title: Get paid ad creative
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: false
  • nevent_get_paid_ad_group_comparative_statsCompare an ad group's performance metrics against the mean of its campaign sibling ad groups.No findings

    Why it is in this group

    • The name "nevent_get_paid_ad_group_comparative_stats" says "get": a word for reading.
    Description, as the server wrote it
    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, frequency): ratio > 1.0 means WORSE than siblings (higher cost). For CTR: ratio > 1.0 means BETTER than siblings (higher CTR is better). Use after nevent_list_paid_ad_groups to get a valid adGroupId. A 404 may mean this tenant is not enrolled in the insights pilot — call nevent_paid_ads_health to confirm.

    Annotations the server declares

    • title: Get paid ad group comparative stats
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: false
  • nevent_get_paid_ad_group_insightsGet daily performance metrics for a specific ad group (ad set).No findings

    Why it is in this group

    • The name "nevent_get_paid_ad_group_insights" says "get": a word for reading.
    Description, as the server wrote it
    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, video metrics. Each row.date is an ISO 8601 UTC timestamp (e.g. "2026-05-10T00:00:00Z"). A 404 may mean this tenant is not enrolled in the insights pilot — call nevent_paid_ads_health to confirm.

    Annotations the server declares

    • title: Get paid ad group insights
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: false
  • nevent_get_paid_ad_group_targetingGet the full audience targeting configuration for an ad group.No findings

    Why it is in this group

    • The name "nevent_get_paid_ad_group_targeting" says "get": a word for reading.
    Description, as the server wrote it
    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), custom and excluded audiences, bidStrategy, promotedObject. A 404 may mean this tenant is not enrolled in the insights pilot — call nevent_paid_ads_health to confirm.

    Annotations the server declares

    • title: Get paid ad group targeting
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: false
  • nevent_get_paid_campaign_insightsGet daily performance metrics for a specific paid campaign.No findings

    Why it is in this group

    • The name "nevent_get_paid_campaign_insights" says "get": a word for reading.
    Description, as the server wrote it
    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, video metrics. Each row.date is an ISO 8601 UTC timestamp (e.g. "2026-05-10T00:00:00Z"). A 404 may mean this tenant is not enrolled in the insights pilot — call nevent_paid_ads_health to confirm.

    Annotations the server declares

    • title: Get paid campaign insights
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: false
  • nevent_get_segmentRetrieve the complete filter definition of a specific segment (criteria stanzas, operators, values) along with its estimated contact count and metadata.No findings

    Why it is in this group

    • The name "nevent_get_segment" says "get": a word for reading.
    Description, as the server wrote it
    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 audience, or nevent_update_segment to modify the definition.

    Annotations the server declares

    • title: Get segment details
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: false
  • nevent_get_short_urlGet complete details of a specific short URL including target URL, metadata, creation date, expiration, tags, and current click count.No findings

    Why it is in this group

    • The name "nevent_get_short_url" says "get": a word for reading.
    Description, as the server wrote it
    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, isExpired, isParent, parentShortCode, userId, userLinksCount. Use the returned id with nevent_get_short_url_metrics for time-series analytics.

    Annotations the server declares

    • title: Get short URL details
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: false
  • nevent_get_short_url_campaign_metricsGet aggregated click metrics across a parent short URL and all its per-user variants.No findings

    Why it is in this group

    • The name "nevent_get_short_url_campaign_metrics" says "get": a word for reading.
    Description, as the server wrote it
    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 isParent=true). Returns: totalChildUrls, totalClicks, urlsWithClicks, avgClicksPerUrl, clickThroughRate (%), topUsersByClicks (userId, shortCode, clickCount, lastClickedAt), clicksByDay, clicksByDevice, clicksByBrowser, clicksByCountry. This tool aggregates across ALL child user links — use nevent_get_short_url_metrics(id) when you need per-link breakdown for a single URL.

    Annotations the server declares

    • title: Get short URL campaign metrics
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: false
  • nevent_get_short_url_clicksGet individual click event records for a specific short URL, ordered by most recent first.No findings

    Why it is in this group

    • The name "nevent_get_short_url_clicks" says "get": a word for reading.
    Description, as the server wrote it
    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. Use for detailed click attribution, fraud detection, or per-user behavior analysis. Default returns 100 most recent clicks; use limit to adjust.

    Annotations the server declares

    • title: Get short URL click events
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: false
  • nevent_get_short_url_metricsGet aggregated click analytics for a specific short URL over a time window (default 30 days).No findings

    Why it is in this group

    • The name "nevent_get_short_url_metrics" says "get": a word for reading.
    Description, as the server wrote it
    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), clicksByBrowser, clicksByOs, topReferers. Use for performance analysis of individual tracking links. For campaign-wide aggregation across all user links, use nevent_get_short_url_campaign_metrics instead.

    Annotations the server declares

    • title: Get short URL metrics
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: false
  • nevent_get_suppressions_summaryGet a deliverability health snapshot for the active tenant: total suppressed emails (hard bounces + complaints + manual unsubscribes), 30-day trend, and breakdown by suppression re…No findings

    Why it is in this group

    • The name "nevent_get_suppressions_summary" says "get": a word for reading.
    Description, as the server wrote it
    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% indicates deliverability risk — surface this as a warning before scheduling a large campaign.

    Annotations the server declares

    • title: Get suppressions summary
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: false
  • nevent_get_templateRetrieve the full content of an email template: MJML source, rendered HTML, tags, and usage metrics (how many campaigns used this template).No findings

    Why it is in this group

    • The name "nevent_get_template" says "get": a word for reading.
    Description, as the server wrote it
    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 nevent_create_campaign to use this template in a new campaign.

    Annotations the server declares

    • title: Get email template
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: false
  • nevent_helpGet guidance when you are unsure which tool to call or how to handle an error.No findings

    Why it is in this group

    • The description's first verb is "get": a word for reading.
    Description, as the server wrote it
    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=<category> like "paid_media" / "analytics" / "segments". Omit topic to get an index of all available topics.

    Annotations the server declares

    • title: Get Nevent MCP help
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: false
  • nevent_list_campaign_recipientsList the individual recipients of a campaign and what happened to each message.No findings

    Why it is in this group

    • The name "nevent_list_campaign_recipients" says "list": a word for reading.
    Description, as the server wrote it
    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 to one audience with segment_id when the campaign targeted several segments, or find one person with search (matches name and email). Returns a paginated envelope — content (the recipient rows), page, size, totalElements, totalPages. Rows contain personal data: request the smallest page that answers the question, filter rather than paginate through everything, and do not dump full recipient lists into a summary.

    Annotations the server declares

    • title: List campaign recipients
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: false
  • nevent_list_imagesList all images stored in the Nevent media library for the current tenant.No findings

    Why it is in this group

    • The name "nevent_list_images" says "list": a word for reading.
    Description, as the server wrote it
    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 <img src="..."> in email template HTML, or pass it to nevent_delete_image to remove it.

    Annotations the server declares

    • title: List media library images
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: false
  • nevent_list_paid_ad_groupsList ad groups (ad sets) for a paid ads provider, optionally filtered by campaign.No findings

    Why it is in this group

    • The name "nevent_list_paid_ad_groups" says "list": a word for reading.
    Description, as the server wrote it
    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 comparative stats tools.

    Annotations the server declares

    • title: List paid ad groups
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: false
  • nevent_list_paid_adsList individual ads for a paid ads provider, optionally filtered by campaign and/or ad group.No findings

    Why it is in this group

    • The name "nevent_list_paid_ads" says "list": a word for reading.
    Description, as the server wrote it
    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 lastSyncedAt. Use the returned adId values with nevent_get_paid_ad_creative.

    Annotations the server declares

    • title: List paid ads
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: false
  • nevent_list_paid_campaignsList all paid campaigns synced from a provider (meta, google, or tiktok).No findings

    Why it is in this group

    • The name "nevent_list_paid_campaigns" says "list": a word for reading.
    Description, as the server wrote it
    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_campaign_insights and nevent_list_paid_ad_groups.

    Annotations the server declares

    • title: List paid campaigns
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: false
  • nevent_list_short_url_destinationsList short links grouped by DESTINATION URL — one row per destination instead of one per link.No findings

    Why it is in this group

    • The name "nevent_list_short_url_destinations" says "list": a word for reading.
    Description, as the server wrote it
    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 parents pointing at the same canonical destination collapse into a single row with aggregated totalClicks, linksCount (how many links form the group) and campaignsCount (how many distinct campaigns used it). Unlike nevent_list_short_urls, this INCLUDES system-managed assistant links (the ones the chatbot pushes), flagged readOnly=true — never try to edit or delete those. Filter with origin: MANUAL (human-created), CAMPAIGN (generated by sends), ASSISTANT (chatbot), or ALL (default). Each row carries canonicalId and members[] (id + shortCode) — pass those ids to nevent_get_short_url or nevent_get_short_url_metrics to drill into a specific link. Pagination is over GROUPS, not documents.

    Annotations the server declares

    • title: List short URLs by destination
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: false
  • nevent_list_short_urlsList all short URLs for the current tenant with their tracking metrics (click count, last clicked).No findings

    Why it is in this group

    • The name "nevent_list_short_urls" says "list": a word for reading.
    Description, as the server wrote it
    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_url_metrics or nevent_get_short_url_clicks), shortCode (use with nevent_get_short_url_campaign_metrics or nevent_list_short_url_user_links), shortUrl, longUrl, title, tags, clickCount, isActive, isParent. Filter by isActive=true for active links only. Use search to filter by title or URL.

    Annotations the server declares

    • title: List short URLs
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: false
  • nevent_list_tenantsList all Nevent tenants (clients) accessible to the authenticated user.No findings

    Why it is in this group

    • The name "nevent_list_tenants" says "list": a word for reading.
    Description, as the server wrote it
    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).

    Annotations the server declares

    • title: List accessible tenants
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: false
  • nevent_paid_ads_healthGet operational health signals for a paid ads provider.No findings

    Why it is in this group

    • The description's first verb is "get": a word for reading.
    Description, as the server wrote it
    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.isInTenantAllowlist (pilot access), lastSuccessfulSyncAt, lastSuccessfulInsightsAt, backfillEnabled. A 404 here means this tenant is not enrolled in the insights pilot for this provider.

    Annotations the server declares

    • title: Get paid ads health signals
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: false
  • nevent_paid_ads_statusCheck if a paid ads provider account (meta, google, or tiktok) is connected to this tenant and when data was last synced.No findings

    Why it is in this group

    • The name "nevent_paid_ads_status" says "status": a word for reading.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • title: Check paid ads connection status
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: false
  • nevent_paid_attributionGet the most business-focused view of paid ads: links campaigns to actual ticket sales and revenue via UTM matching.No findings

    Why it is in this group

    • The description's first verb is "get": a word for reading.
    Description, as the server wrote it
    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 nevent_list_paid_campaigns to cross-reference campaign IDs.

    Annotations the server declares

    • title: Get paid ads attribution
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: false
  • nevent_preview_templatePreview a template with merge tags resolved against a sample user's profile.No findings

    Why it is in this group

    • The name "nevent_preview_template" says "preview": a word for reading.
    Description, as the server wrote it
    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_user_id or sample_user_email to see real personalization; omit both to see raw tags only.

    Annotations the server declares

    • title: Preview template rendering
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: false
  • nevent_segment_previewPreview estimated audience size for a segment definition without saving it.No findings

    Why it is in this group

    • The name "nevent_segment_preview" says "preview": a word for reading.
    Description, as the server wrote it
    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, put them in separate stanzas; to accept A OR B, put both in the same stanza. MANDATORY RULES: (1) ENTITY operators (is/is_not) accept a single string OR an array of strings (e.g. value: "EVENT_ID" or value: ["EVENT_1","EVENT_2"]). (2) Do NOT include modifiers unless specifically asked for frequency or recency filtering. If included, time_range.value MUST be > 0. KNOWN LIMITATION: Do NOT combine attendance criteria (attended_event, ticket_type) with spending criteria (total_spent, ticket_spent, cashless_recharge_amount) in the SAME stanza. Put them in SEPARATE stanzas. Example — attended EVENT_ID AND spent >= 200, because a fan must match EVERY stanza: { stanzas: [{ criteria: [{ criterion_id: "attended_event", operator: "is", value: "EVENT_ID" }] }, { criteria: [{ criterion_id: "total_spent", operator: "gte", value: 200 }] }] }.

    Annotations the server declares

    • title: Preview segment audience
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: false
  • nevent_segmentation_criteriaList all available audience segmentation criteria including their IDs, operators, and value types.No findings

    Why it is in this group

    • The description's first verb is "list": a word for reading.
    Description, as the server wrote it
    List all available audience segmentation criteria including their IDs, operators, and value types.

    Annotations the server declares

    • title: List segmentation criteria
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: false

This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.

Install

Pinned to version 1.8.0. Values in angle brackets are yours to fill in.

claude mcp add --transport http nevent https://mcp.nevent.ai/

Run in a terminal.

Claude Code permissions

Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.

.claude/settings.json
{
  "permissions": {
    "allow": [
      "mcp__nevent__nevent_analytics_query",
      "mcp__nevent__nevent_analytics_table_schema",
      "mcp__nevent__nevent_analytics_filter_values",
      "mcp__nevent__nevent_segmentation_criteria",
      "mcp__nevent__nevent_segment_preview",
      "mcp__nevent__nevent_help",
      "mcp__nevent__nevent_list_tenants",
      "mcp__nevent__nevent_get_segment",
      "mcp__nevent__nevent_get_campaign_metrics",
      "mcp__nevent__nevent_list_campaign_recipients",
      "mcp__nevent__nevent_get_campaign",
      "mcp__nevent__nevent_get_campaign_insights",
      "mcp__nevent__nevent_get_template",
      "mcp__nevent__nevent_preview_template",
      "mcp__nevent__nevent_get_suppressions_summary",
      "mcp__nevent__nevent_paid_ads_status",
      "mcp__nevent__nevent_paid_ads_health",
      "mcp__nevent__nevent_list_paid_campaigns",
      "mcp__nevent__nevent_get_paid_campaign_insights",
      "mcp__nevent__nevent_paid_attribution",
      "mcp__nevent__nevent_list_paid_ad_groups",
      "mcp__nevent__nevent_get_paid_ad_group_insights",
      "mcp__nevent__nevent_get_paid_ad_group_comparative_stats",
      "mcp__nevent__nevent_get_paid_ad_group_targeting",
      "mcp__nevent__nevent_list_paid_ads",
      "mcp__nevent__nevent_get_paid_ad_creative",
      "mcp__nevent__nevent_list_short_urls",
      "mcp__nevent__nevent_get_short_url",
      "mcp__nevent__nevent_get_short_url_metrics",
      "mcp__nevent__nevent_get_short_url_campaign_metrics",
      "mcp__nevent__nevent_get_short_url_clicks",
      "mcp__nevent__nevent_list_short_url_user_links",
      "mcp__nevent__nevent_list_short_url_destinations",
      "mcp__nevent__nevent_list_images"
    ],
    "ask": [
      "mcp__nevent__nevent_analytics_capabilities",
      "mcp__nevent__nevent_campaign_report",
      "mcp__nevent__nevent_segment_execute",
      "mcp__nevent__nevent_dimension_values",
      "mcp__nevent__nevent_switch_tenant",
      "mcp__nevent__nevent_reset_tenant",
      "mcp__nevent__nevent_list_segments",
      "mcp__nevent__nevent_create_segment",
      "mcp__nevent__nevent_create_campaign",
      "mcp__nevent__nevent_quote_campaign",
      "mcp__nevent__nevent_list_campaigns",
      "mcp__nevent__nevent_list_templates",
      "mcp__nevent__nevent_create_template",
      "mcp__nevent__nevent_clone_template",
      "mcp__nevent__nevent_get_sending_profile",
      "mcp__nevent__nevent_create_short_url",
      "mcp__nevent__nevent_create_bulk_user_short_urls",
      "mcp__nevent__nevent_upload_image"
    ],
    "deny": [
      "mcp__nevent__nevent_update_segment",
      "mcp__nevent__nevent_schedule_campaign",
      "mcp__nevent__nevent_update_template",
      "mcp__nevent__nevent_rename_template",
      "mcp__nevent__nevent_send_test_template",
      "mcp__nevent__nevent_update_short_url",
      "mcp__nevent__nevent_delete_image"
    ]
  }
}

Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as nevent. Review it before you use it.