PostHog MCP Server
Official PostHog MCP Server for product analytics, feature flags, experiments, and more.
Talk to your live-events CRM (campaigns, analytics, paid ads, segments) in Claude and ChatGPT.
쓰고 있는 AI 앱을 고른 다음 설정을 복사하세요.
검사 5/5 통과 · 내가 묻는 내용은 제작자 서버(mcp.nevent.ai)를 거쳐요
먼저: 어떤 AI를 쓰시나요?
쓰는 앱을 고르면 아래에 단계가 나옵니다.
Claude에 연결할 수 있어요 · 약 2분
키 필요 없음, 설치 필요 없음 · claude.ai나 데스크톱 앱에서 한 번 설정하면 채팅에서 쓸 수 있어요 · 무료 계정은 1개까지 · Team/Enterprise는 소유자(Owner)가 추가
CustomizeConnectors
여기서 복사해 Claude의 같은 이름 칸에 붙여 넣고 Continue를 누르세요
Nevent MCPhttps://mcp.nevent.ai/Authentication은 Claude가 찾은 그대로 두고 Add를 누르세요
+ConnectorsNevent MCP
Nevent MCP을 써서 나에게 무엇을 해 줄 수 있는지 알려 주고, 하나 해 봐✓ Claude가 Nevent MCP을 쓰고 있다고 하거나 답에 Nevent MCP 도구 이름이 나오면 연결된 거예요
메뉴 이름은 2026년 11월 11일에 Anthropic 도움말에서 확인 · 앱 버전에 따라 화면이 조금 다를 수 있어요
ChatGPT는 기업용 요금제에서만 연결돼요
웹의 ChatGPT Business, Enterprise, Edu에서 워크스페이스 관리자나 소유자가 추가해요 · Free, Plus, Pro를 쓰면: 내 ChatGPT 요금제로는 아직 MCP를 직접 연결할 수 없어요
Plugins+Add custom MCP server
이름을 넣고 Connection에 주소를 붙여 넣은 뒤 경고에 체크하고 Create as a plugin을 누르세요
Nevent MCPhttps://mcp.nevent.ai/새 채팅을 열고 입력 전에 플러그인 목록에서 Nevent MCP을 고르세요
Nevent MCP을 써서 나에게 무엇을 해 줄 수 있는지 알려 주고, 하나 해 봐✓ ChatGPT가 Nevent MCP을 쓰고 있다고 하거나 답에 Nevent MCP 도구 이름이 나오면 연결된 거예요
메뉴 이름은 2026년 11월 11일에 OpenAI 도움말에서 확인 · 앱 버전에 따라 화면이 조금 다를 수 있어요
Claude Code에 연결할 수 있어요 · 약 2분
키 필요 없음, 설치 필요 없음
Mac: Command+스페이스를 누르고 Terminal 입력 · Windows: PowerShell 열기
claude mcp add --transport http --scope user nevent https://mcp.nevent.ai/Nevent MCP이 목록에 있고 연결됨으로 보이면 돼요
Nevent MCP을 써서 나에게 무엇을 해 줄 수 있는지 알려 주고, 하나 해 봐✓ Claude Code가 Nevent MCP을 쓰고 있다고 하거나 답에 Nevent MCP 도구 이름이 나오면 연결된 거예요
메뉴 이름은 2026년 11월 11일에 Anthropic 도움말에서 확인 · 앱 버전에 따라 화면이 조금 다를 수 있어요
Cursor에 연결할 수 있어요 · 약 2분
키 필요 없음, 설치 필요 없음
Nevent MCP을 써서 나에게 무엇을 해 줄 수 있는지 알려 주고, 하나 해 봐✓ Cursor가 Nevent MCP을 쓰고 있다고 하거나 답에 Nevent MCP 도구 이름이 나오면 연결된 거예요
메뉴 이름은 2026년 11월 11일에 Cursor 도움말에서 확인 · 앱 버전에 따라 화면이 조금 다를 수 있어요
VS Code에 연결할 수 있어요 · 약 2분
키 필요 없음, 설치 필요 없음
Nevent MCP을 써서 나에게 무엇을 해 줄 수 있는지 알려 주고, 하나 해 봐✓ VS Code가 Nevent MCP을 쓰고 있다고 하거나 답에 Nevent MCP 도구 이름이 나오면 연결된 거예요
메뉴 이름은 2026년 11월 11일에 VS Code 도움말에서 확인 · 앱 버전에 따라 화면이 조금 다를 수 있어요
Windsurf, Zed, Gemini CLI 같은 다른 MCP 앱은 추가 방법이 저마다 달라요. 앱 목록에서 확인하세요
웹으로 연결하는 앱용 주소
https://mcp.nevent.ai/JSON 설정은 아래 “개발자용”에 있어요
Claude Code
claude mcp add --transport http --scope user nevent https://mcp.nevent.ai/Cursor (~/.cursor/mcp.json)
{
"mcpServers": {
"nevent": {
"url": "https://mcp.nevent.ai/"
}
}
}VS Code (mcp.json)
{
"servers": {
"nevent": {
"type": "http",
"url": "https://mcp.nevent.ai/"
}
}
}Claude Code
claude mcp add --scope user nevent --env NEVENT_JWT_TOKEN=your-value --env NEVENT_OPERATION_MODE=your-value -- npx -y mcp-neventClaude Desktop (claude_desktop_config.json)
{
"mcpServers": {
"nevent": {
"command": "npx",
"args": [
"-y",
"mcp-nevent"
],
"env": {
"NEVENT_JWT_TOKEN": "your-value",
"NEVENT_OPERATION_MODE": "your-value"
}
}
}
}Cursor (~/.cursor/mcp.json)
{
"mcpServers": {
"nevent": {
"command": "npx",
"args": [
"-y",
"mcp-nevent"
],
"env": {
"NEVENT_JWT_TOKEN": "your-value",
"NEVENT_OPERATION_MODE": "your-value"
}
}
}
}VS Code (mcp.json)
{
"servers": {
"nevent": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"mcp-nevent"
],
"env": {
"NEVENT_JWT_TOKEN": "your-value",
"NEVENT_OPERATION_MODE": "your-value"
}
}
}
}NEVENT_JWT_TOKEN 비밀 필수 envNEVENT_OPERATION_MODE env이 설정은 제작자의 레지스트리 정보로 만들었어요. README와 다르면 README를 따르세요.
이 서버의 연결 방식과 각 앱의 공식 문서를 바탕으로 했어요. 2026년 11월 10일 확인.
인터넷으로 연결하는 앱
ClaudeChatGPTGooseLM StudioMsty StudioCherry StudioCursorVS Code + GitHub CopilotVisual StudioWindsurf (Devin Desktop)ZedKiroClineContinueJetBrains AI AssistantClaude CodeCodex CLIGemini CLIOpenCodenodecodeWarpLibreChatOpen WebUIRaycast
내 컴퓨터에서 실행하는 앱
ClaudeGooseLM StudioMsty StudioCherry StudioCursorVS Code + GitHub CopilotVisual StudioWindsurf (Devin Desktop)ZedKiroClineContinueJetBrains AI AssistantClaude CodeCodex CLIGemini CLIOpenCodenodecodeWarpLibreChatRaycast
도구 이름과 설명은 서버가 2026년 11월 10일에 알려 준 그대로예요. 우리가 아니라 제작자가 쓴 글이고, 일반 텍스트로만 보여 드려요.
nevent_analytics_queryQuery 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 name
nevent_analytics_capabilitiesDiscover 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_schemaGet the full column schema for a specific analytics table including column names, types, and descriptions.
nevent_analytics_filter_valuesGet distinct values available for a field in an analytics table. Useful for building valid filter values before querying.
nevent_campaign_reportGenerate 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, transa
nevent_segmentation_criteriaList all available audience segmentation criteria including their IDs, operators, and value types.
nevent_segment_previewPreview 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.
nevent_segment_executeExecute 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 separ
nevent_dimension_valuesAutocomplete values for a segmentation criterion. Useful for discovering valid values when building segment definitions.
nevent_helpGet 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 "
nevent_list_tenantsList 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_tenantSwitch 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
nevent_reset_tenantRestore 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 — thi
nevent_get_regional_settingsGet the regional settings of the organization you are working in: reporting currency, time zone, operating country and communication language, each with where it comes from (own, inherited, market or platform default). Use them to show amounts and dates the way the organization w
nevent_list_segmentsCall 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
nevent_get_segmentRetrieve 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_p
nevent_create_segmentCreate 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 stanz
nevent_update_segmentModify 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 be
nevent_create_campaignCreate 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 creati
nevent_schedule_campaignSchedule 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_cam
nevent_quote_campaignEstimate 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 cam
nevent_get_campaign_metricsGet 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, bounceRat
nevent_list_campaign_recipientsList 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, UNS
nevent_list_eventsList the events of the active tenant, one page at a time (nev-api GET /events). Use it to find an event ID before reading its sales with nevent_event_sales_provenance, or to look an event up by name. By default it returns upcoming events ordered by start date; pass future=false f
nevent_event_sales_provenanceWhere the ticket sales of ONE event come from (nev-data-api, analytics warehouse). Pick the event with nevent_list_events (TICKETED events), then choose a view. summary (default): sales grouped by dimension — provider, distribution channel, purchase channel, promo code or marketi
nevent_get_campaign_deliverabilityEmail deliverability of ONE campaign (nev-api, the "Entregabilidad" tab of the campaign). view=summary (default): sent, delivered, soft bounces, hard bounces and complaints, plus a warning when something is off. view=bounce_reasons: why messages bounced, grouped by SES bounce sub
nevent_get_campaign_unsubscribesUnsubscribes and spam complaints of ONE campaign (nev-api). view=summary (default): number of unsubscribes, unsubscribe rate, spam complaints and complaint rate. view=reasons: the reasons people gave when unsubscribing, grouped into canonical buckets. view=segment_breakdown: unsu
nevent_list_campaignsCall 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
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), and tracked links with click counts. Call this after nevent_list_campaigns to drill into a specif
nevent_get_campaign_insightsGet 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?".
nevent_list_templatesCall 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 s
nevent_get_templateRetrieve 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 chan
nevent_create_templateCreate 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 s
nevent_update_templateUpdate 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 campaig
nevent_clone_templateClone 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_templ
nevent_rename_templateRename 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 t
nevent_preview_templatePreview 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
nevent_send_test_templateSend 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,
nevent_get_sending_profileCall 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, throttle settings, and senders: the senders an email campaign can be sent with (ident
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 reason. Call this when the user asks about list health, unsubscribe rates, or bounce issues. A suppres
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. Call this first before any ads queries to confirm the integration is active. Returns: connected (bool), accountId, accountName, lastSyncAt.
nevent_paid_ads_healthGet 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), feat
nevent_list_paid_campaignsList 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 ne
nevent_get_paid_campaign_insightsGet 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,
nevent_paid_attributionGet 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 p
nevent_list_paid_ad_groupsList 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,
nevent_get_paid_ad_group_insightsGet 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, RO
nevent_get_paid_ad_group_comparative_statsCompare 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 (cost
nevent_get_paid_ad_group_targetingGet 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, expandAg
nevent_list_paid_adsList 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, utmContainsM
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). Use after nevent_list_paid_ads to get a valid adId. Null imageUrl/videoUrl means the asset mirror job has not run yet — retry
nevent_list_short_urlsList 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_urlGet 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, lastC
nevent_get_short_url_metricsGet 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/des
nevent_get_short_url_campaign_metricsGet 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_s
nevent_get_short_url_clicksGet 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, g
nevent_list_short_url_user_linksList 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 (
nevent_create_short_urlCreate 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
nevent_update_short_urlUpdate 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/fals
nevent_create_bulk_user_short_urlsGenerate 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 sh
누구나 볼 수 있는 정보를 점검했고, 코드는 읽지 않았어요. 해당하지 않는 항목은 개수에서 뺐어요. · 2026년 11월 12일 점검
질문하고, 팁을 나누고, 안 되는 점을 알려 주세요. "도움이 됨"이 많은 순서예요.
아직 리뷰가 없어요
레지스트리에서 이 카테고리의 활성 서버 전체와 비교했어요. 스타는 게시자가 저장소를 소유한 경우에만 세요.
해당하는 기본 점검 5개 중 5개를 통과했어요. 코드는 읽지 않았어요. 키나 토큰을 넣기 전에 서버가 어떤 권한을 요구하는지 확인하고, 꼭 필요한 권한만 있는 키를 쓰세요.
입력해야 할 값: NEVENT_JWT_TOKEN
둘 다 가능해요. 내 컴퓨터에 설치해도 되고, 클라우드 버전에 연결해도 돼요.
GitHub 저장소는 마지막으로 7일 전 변경됐고, 최신 버전(1.8.0)은 3개월 전 레지스트리에 올라왔어요.
Claude Desktop, Claude Code, Cursor, VS Code처럼 MCP를 지원하는 앱에서 쓸 수 있어요. URL로 연결되므로 원격 MCP를 지원하는 앱에서도 쓸 수 있어요. 예: ChatGPT Business 이상.
같은 카테고리에는: PostHog MCP Server, Openshorts, Google Ads + Meta Ads + SEO/GEO MCP
같은 카테고리에서 다른 제작자가 만든 서버예요. 스타 순으로 정렬했어요.
카드 보는 법:↓ 주간 다운로드i★ GitHub 스타i세 기둥: 리뷰 · 점검 · 사용 정도i업데이트 = 최신 버전을 레지스트리에 공개한 날i
Official PostHog MCP Server for product analytics, feature flags, experiments, and more.
Turn long videos into viral vertical shorts and publish them to TikTok, Instagram and YouTube.
Google Ads, Meta Ads, Google Analytics (GA4) & Search Console MCP server by Ryze AI
제작자의 저장소에서 쓰인 그대로 가져왔어요. PopNx MCP가 검토하거나 보증한 내용이 아니에요. HTML, 이미지, 스크립트는 제거했어요. 링크를 누르면 이 사이트를 벗어나요.
Talk to your live-events CRM (campaigns, analytics, paid ads, segments, short URLs) in Claude and ChatGPT.
Official MCP server for Nevent — the marketing platform for live event promoters. 63 tools across 10 groups (analytics, segmentation, campaigns, templates, deliverability, paid media, short URLs, media library, multi-tenant, and help/discovery) over OAuth 2.1 (hosted) or stdio (local).
📚 Full documentation: [https://help.nevent.ai/en/nevent-ai/](https://help.nevent.ai/en/nevent-ai/)
Add https://mcp.nevent.ai/ as a remote MCP server in your client. Works with Claude.ai, ChatGPT, Cursor, Cline, Continue and any compatible MCP client.
→ Step-by-step with screenshots: Connect with Claude · Connect with ChatGPT
npx mcp-nevent
Required env: NEVENT_JWT_TOKEN. Optional: NEVENT_OPERATION_MODE (READ_ONLY | STANDARD | FULL).
→ Full local setup: Local installation
Settings → Integrations / Connectors → Add custom MCP → URL https://mcp.nevent.ai/. Authorize with your Nevent admin account.
# Hosted (OAuth)
claude mcp add --transport http nevent https://mcp.nevent.ai/
claude mcp add nevent -- node /path/to/mcp-nevent/dist/index.js export NEVENT_JWT_TOKEN=your_token
→ Full guide: Claude Code
Add to claude_desktop_config.json (macOS: ~/Library/Application Support/Claude/, Windows: %APPDATA%\Claude\):
{
"mcpServers": { "nevent": { "command": "node", "args": ["/path/to/mcp-nevent/dist/index.js"], "env": { "NEVENT_JWT_TOKEN": "your_nevent_jwt_token" } } } }
→ Full guide: Claude Desktop
→ Per-client setup: Cursor, Cline, Continue, VS Code
"Show me registrations for EventX broken down by ticket type"
"Which campaigns sent last month had an open rate above 30%?"
"Create a segment of attendees who bought a VIP ticket in 2025 but haven't opened any email in the last 90 days"
"Schedule the 'Summer Gala' campaign for next Monday at 10:00 CET"
"Compare ROAS across our Meta ad campaigns for March"
"Create per-user tracking links for the Summer Gala campaign and show me which users clicked"
→ More patterns: Ready-to-use prompts · Use cases
| Topic | Link |
|---|---|
| What Nevent AI is and how it works | https://help.nevent.ai/en/nevent-ai/ |
| Capabilities by area (analytics, campaigns, audience, paid media…) | https://help.nevent.ai/en/nevent-ai/what-you-can-do/ |
| End-to-end use cases | https://help.nevent.ai/en/nevent-ai/use-cases/ |
| Permissions and security | https://help.nevent.ai/en/nevent-ai/permissions-and-security/ |
| FAQ | https://help.nevent.ai/en/nevent-ai/faq/ |
| Topic | Link |
|---|---|
| Overview, transports and architecture | https://help.nevent.ai/en/nevent-ai/developers/ |
| Local installation and env vars | https://help.nevent.ai/en/nevent-ai/developers/local-installation/ |
| Multi-tenant model | https://help.nevent.ai/en/nevent-ai/developers/multi-tenant/ |
| Reference of all 63 tools | https://help.nevent.ai/en/nevent-ai/developers/tools/ |
| Troubleshooting and error codes | https://help.nevent.ai/en/nevent-ai/developers/troubleshooting/ |
LLM (Claude / ChatGPT / Cursor / …)
| | MCP (Streamable HTTP or stdio) v ┌─────────────────┐ │ Nevent MCP │ mcp.nevent.ai (hosted) or local └─────────────────┘ | | REST + JWT v Nevent APIs (analytics, campaigns, segments, paid media, short URLs)
Hosted mode uses OAuth 2.1: the MCP server issues short-lived JWT tokens after validating your Nevent credentials. Each session is isolated — no shared service accounts.
Optional environment variables for the HTTP server:
| Variable | Default | Purpose |
|---|---|---|
MCP_READONLY_REDIRECT_PREFIXES | unset | Comma-separated redirect_uri prefixes. A client that registered a matching redirect URI only gets read-only tools. Every prefix must end with `/`, for example https://support.nevent.ai/helpbot/. |
MCP_READONLY_CLIENT_IDS | unset | Comma-separated client_id values restricted the same way. |
MCP_REFRESH_REVALIDATE | restricted | restricted, all or off: which clients are revalidated against nev-api (GET /auth/me) when they refresh a token. |
MCP_REFRESH_MAX_LIFETIME_DAYS | 90 | Maximum total lifetime of a refresh-token chain, counted from the original login. |
See CHANGELOG.md for the exact behaviour.
MCP_AUTH_MODE=bearer-passthrough is a second HTTP auth mode for trusted clients that already hold a per-user nev-api JWT and want to call MCP tools on that user's behalf — for example nev-helpbot, the Chatwoot support bot, answering as the promoter currently chatting.
MCP_AUTH_MODE=bearer-passthrough \
MCP_BEARER_PASSTHROUGH_SERVICE_KEY=$(openssl rand -hex 32) \ node dist/index.js --transport=http --port=3000
Every request must carry BOTH the client's service key and the calling user's own nev-api JWT:
X-Nevent-Service-Key: <pre-shared service key>
Authorization: Bearer
MCP_BEARER_PASSTHROUGH_SERVICE_KEY (at least 32 characters) is required: the server refuses to start without it. It is compared in constant time (crypto.timingSafeEqual over SHA-256 digests) and checked before the token is introspected, so outsiders cannot make this server call nev-api. A missing or wrong key gets a bare 401 (Unauthorized.) with no hint of which check failed. For rotation, set MCP_BEARER_PASSTHROUGH_SERVICE_KEY_PREVIOUS to the old key while the client moves to the new one, then remove it. Keep it in a secret store, never in the repository. Requests are also capped per IP (600/min, applied before body parsing) and per token (300/min). GET /health is unauthenticated for load balancers and returns only {status, version, commitSha}.MCP_BEARER_PASSTHROUGH_WRITES=human additionally exposes, to sessions of a person (principalType HUMAN verified in /auth/me), 12 write tools: nevent_create_segment, nevent_update_segment, nevent_create_template, nevent_update_template, nevent_clone_template, nevent_rename_template, nevent_send_test_template, nevent_create_campaign, nevent_schedule_campaign, nevent_create_short_url, nevent_update_short_url, nevent_create_bulk_user_short_urls. SERVICE sessions never get writes. upload_image, delete_image, reset_tenant, switch_tenant and list_tenants are never exposed, and an unclassified tool is denied. The policy is fixed per session at initialize. Writes are not safe to enable yet: the real barrier is the signed single-use write grant (NEV-1855), so the server refuses to start with human until that exists (override for non-production only: MCP_BEARER_PASSTHROUGH_WRITES_UNSAFE_NO_GRANT=true). Each tenant+user is limited to MCP_BEARER_PASSTHROUGH_WRITES_PER_HOUR writes per hour (default 30; over it, a write_rate_limit_exceeded tool error and nothing is executed; READ is never limited). Every tool call is logged with user_id, principal_type and the verified tenant (no email or token). Calls also need NEVENT_OPERATION_MODE=STANDARD for writes and FULL for nevent_schedule_campaign (classified DELETE because it sends for real); startup refuses human with READ_ONLY. The hourly limit is per process (in memory, each instance has its own budget, a restart resets it), counts only calls that actually execute (not invalid arguments, not calls the operation-mode guard rejects; a handler that fails does count) and accepts 1-1000. The no-grant override is rejected when NODE_ENV=production.MONGODB_URI stays optional: set it to also enable the Mongo-backed read tools (campaigns/templates/deliverability), each still scoped by the caller's own JWT tenant.initialize, tools/list, tools/call, not only at session start — this server calls GET {NEVENT_API_URL}/auth/me with the forwarded token. A 200 confirms the session is live and the request proceeds; 401, 403, a network error, or a timeout are all treated the same way — the MCP request is rejected with 401 and no tool, no `tools/list`, and no session is ever created or advanced from it. There is no permissive fallback: if nev-api cannot be reached to confirm the token, the request is refused, it is never let through anyway./auth/me on every message, but the cache never serves an entry past the token's own expiry.stdio mode's shared NEVENT_JWT_TOKEN.GET /auth/me also reports principalType (HUMAN or SERVICE), effectiveTenantId and serviceSession. Technical service sessions minted by POST /auth/service-token (unattended agents) are accepted like a human token only with `TENANT` scope (PLATFORM, i.e. global SUPERADMIN, is refused). The session is locked to effectiveTenantId, which comes only from this answer (never from the JWT payload; also correct for hierarchical admins navigating a child tenant). Fail-closed: an unknown principalType, a SERVICE response without effectiveTenantId, or any response with no tenant at all is refused. A SERVICE verification is cached for 10 s instead of 60 s so a disabled account or revoked session stops working almost immediately.