etix-mcp
etix-mcp turns Etix event discovery into natural-language MCP tools, routed through your own signed-in etix.com browser tab via the ContextMint Bridge extension.
etix_search— keyword search across events, venues, and performers; returns top matches per category with ids and canonical etix.com URLs.etix_get_event— full event/performance record byevent_id: name, date/time, venue (address + coordinates), organizer, price range, and individual priced offer levels.etix_get_venue— venue byvenue_id: name, organizer, full address, plus upcoming events (event_id, name, start time, ticket URL).etix_find_location— resolve a city name or postal code to coordinates and normalized city/state for location-based browsing.etix_healthcheck— end-to-end bridge check that pinpoints which hop failed (bridge down, extension not connected, DataDome challenge).All tools are read-only, idempotent, and require no Etix account; every request acts on behalf of your existing browser session.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@etix-mcpsearch for upcoming comedy shows in Chicago"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
etix-mcp
Etix event discovery as an MCP server for Claude — search events, venues, and performers and pull full event/venue details via natural language.
⚠️ Etix does not publish a public consumer API, and its consumer site sits behind a DataDome bot-wall. This server reads the same
/ticket/api/online/...endpoints and server-rendered pages that etix.com itself uses, routed through your own signed-in browser tab via the ContextMint Bridge browser extension. Every request acts on behalf of your existing session — your cookies, your TLS, your JS context — exactly as if you'd browsed it yourself. No Etix account is required; this is public discovery data. Use at your own discretion.
Tools
Tool | Purpose |
| Search events, venues, and performers by keyword. Returns a few top matches per category, each with its id and canonical etix.com URL. |
| Full record for an event/performance by |
| A venue by |
| Resolve a city name or postal code to coordinates plus normalized city/state — a building block for location-based event browsing. |
| End-to-end bridge check — round-trips |
Related MCP server: Ticketmaster Discovery MCP Server
How it works
Etix fronts its consumer site with a DataDome interstitial that a server-side fetch can't clear, so etix-mcp routes every request through your signed-in, already-cleared etix.com tab via the shared fetchproxy bridge (WebSocket on 127.0.0.1:37149). etix_search reads the clean search/suggest JSON endpoint; etix_get_event and etix_get_venue parse the server-rendered performance/venue pages (schema.org JSON-LD + microdata). See docs/ETIX-API.md for the verified endpoint shapes.
Setup
See skills/etix/SKILL.md for full install steps: add the server to your MCP config, install the shared ContextMint Bridge extension, open etix.com, and approve the one-time pairing. Then run etix_healthcheck.
Where the extension comes from. ContextMint Bridge is the fetchproxy browser extension under its new name, from the same maintainer — fetchproxy's own README (chrischall/fetchproxy#extension) points to it. Its source is public at nullnet-app/contextmint-bridge: build it yourself (
npm run build), or check a release zip against the.sha256file published beside it (shasum -a 256 -c contextmint-bridge-chrome-<version>.zip.sha256).
Development
npm ci
npm run build # tsc --noEmit + esbuild bundle → dist/bundle.js
npm test # vitestAcknowledgement of Terms
By using this MCP server, you acknowledge that it uses your own etix.com session via the ContextMint Bridge extension, that Etix offers no public consumer API (so the underlying endpoints may change at any time), and that this is an unofficial, AI-developed project with no affiliation to Etix. Use at your own discretion, consistent with Etix's Terms of Use.
License
MIT — developed and maintained by AI (Claude Code).
Available Tools
5 toolsetix_find_locationResolve a city or postal code to coordinatesARead-onlyIdempotent
Resolve a city name or postal code to coordinates (latitude/longitude) plus the normalized city/state, using Etix's geolocation lookup. Useful as a building block for location-based event browsing. Read-only, no Etix account required.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | A city (optionally "City, ST") or a postal code, e.g. "Charlotte, NC" or "28202". | |
| country | No | Country code/name to scope the lookup. Defaults to "USA". |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, and openWorld hints, so the bar for additional disclosure is lower. The description adds useful auth context ('no Etix account required') and clarifies the output includes normalized city/state, going beyond what annotations provide. It does not mention failure modes or rate limits, but these are less critical for a simple read-only geocode lookup.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short, purposeful sentences: the first states what the tool does, the second explains its intended use, and the third covers access traits. No filler or redundancy, and the most important information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description adequately covers return values (coordinates and normalized city/state) at a practical level. The main gap is the lack of a concrete response shape or error behavior, but for a simple geocoding lookup the description gives an agent enough to call it correctly and understand its result.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with both 'query' and 'country' already documented with examples and defaults. The description essentially restates the same parameter semantics (city/postal code, coordinates) without adding new meaning, so a baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Resolve'), a precise resource ('a city name or postal code'), and a concrete output (coordinates plus normalized city/state). It clearly distinguishes itself from siblings like etix_search and etix_get_event by framing this as a geolocation building block rather than an event or venue lookup.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear usage context: it is useful as a building block for location-based event browsing. It does not name explicit alternatives or exclusion criteria, but the 'building block' framing tells an agent when this tool fits in a multi-step workflow.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
etix_get_eventGet an Etix event/performance by idARead-onlyIdempotent
Fetch a single Etix event (performance) by its numeric event_id — name, date/time, venue (with address + coordinates), organizer, ticket price range and the individual priced offer levels. Get the event_id from etix_search. Read-only, no Etix account required.
| Name | Required | Description | Default |
|---|---|---|---|
| event_id | Yes | Etix event/performance id (e.g. 39004863). From etix_search. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, and idempotentHint. The description adds value by stating 'Read-only, no Etix account required,' which is not covered by annotations, and by detailing the exact data returned. With no output schema, this description fully carries the burden of telling the agent what to expect.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, information-dense sentence that leads with the core purpose and then enumerates the return payload. Every clause contributes to agent understanding; there is no fluff or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter, read-only tool with no output schema, the description is complete: it specifies the input, the source of that input, the full set of returned data, and the access prerequisites (no account). An agent has everything needed to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and the event_id parameter is fully described in the schema (type, example, and source 'From etix_search'). The description reinforces this by calling it 'numeric event_id' and reiterating the source, but adds no new information beyond what the schema already provides. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Fetch') and resource ('single Etix event/performance') by its numeric event_id, and enumerates the returned fields (name, date/time, venue, organizer, price range, offer levels). This clearly differentiates it from sibling etix_search (search) and etix_get_venue (venue lookup).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly tells the agent to get the event_id from etix_search, establishing a clear workflow dependency. It also notes that it is read-only and requires no Etix account, which guides when to use it. However, it does not explicitly state when not to use it or name alternative tools for other use cases, leaving some inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
etix_get_venueGet an Etix venue and its upcoming events by idARead-onlyIdempotent
Fetch a single Etix venue by its numeric venue_id — name, organizer, full address, and the list of upcoming events at that venue (each with event_id, name, start time, and ticket URL). Get the venue_id from etix_search. Follow up with etix_get_event for any listed event. Read-only, no Etix account required.
| Name | Required | Description | Default |
|---|---|---|---|
| venue_id | Yes | Etix venue id (e.g. 17987). From etix_search. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover readOnlyHint and idempotentHint, so the safety profile is established. The description adds useful context beyond those flags: no Etix account required, the expected response contents, and that only upcoming events are returned. It does not mention rate limits or freshness, but openWorldHint and the simple read-only nature make those less critical.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences: the first establishes the operation and output, the second gives the source and follow-up workflow, and the third states auth and safety. Every sentence adds value and the most important information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With one required parameter, no output schema, annotations covering read-only/idempotent behavior, and a description that specifies the return payload and workflow, the definition fully equips an agent to call this tool correctly. No critical information is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents venue_id, its integer type, range, example, and source (etix_search). The description reinforces 'numeric' and the source, but adds no meaningful parameter meaning beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Fetch a single Etix venue by its numeric venue_id.' It enumerates the returned data (name, organizer, address, upcoming events with event_id, name, start time, ticket URL) and explicitly distinguishes its role from etix_search and etix_get_event.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives an explicit workflow: obtain venue_id from etix_search, use this tool to fetch the venue and its events, then follow up with etix_get_event for any listed event. This clearly communicates when to use this tool and how it relates to its siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
etix_healthcheckVerify the ContextMint Bridge connection end-to-endARead-onlyIdempotent
Round-trips a small public www.etix.com URL (/robots.txt) through ContextMint Bridge (your signed-in browser tab) and returns diagnostics: the bridge's role (host/peer/null), port, version, the extension link (linked / pair pending / not attached / never answered), the elapsed round-trip time, and a plain-English hint distinguishing 'bridge never came up' from 'extension not connected' from 'this browser can't serve a capability' from 'real www.etix.com-side problem'. Read-only, no auth required. Call this when a real tool fails and you want to know which hop broke.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint and idempotentHint, and the description adds meaningful context on top: it specifies the exact probe (public /robots.txt), states 'no auth required', and discloses the diagnostic surface (bridge role, port, version, extension link state, elapsed time, plain-English hint). It even distinguishes failure classes the agent can map to.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core action is front-loaded ('Round-trips a small public www.etix.com URL'), and the trailing clause is a dense but purposeful enumeration of return fields and failure hints. It is somewhat list-heavy in a single run-on sentence, but every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description carries the return-value burden by naming the diagnostic fields and the plain-English hints, and it covers auth (none) and safety (read-only). Nothing an agent needs to invoke or interpret this healthcheck is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there is nothing for the description to disambiguate; the schema coverage is 100% over an empty object. Baseline 4 applies since no parameter semantics exist to document.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Round-trips ... through ContextMint Bridge ... returns diagnostics') and enumerates exactly what comes back. It is unmistakably distinct from the data-retrieval siblings (etix_search, etix_get_event, etix_get_venue, etix_find_location), which fetch Etix content rather than probing the bridge.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives an explicit trigger condition: 'Call this when a real tool fails and you want to know which hop broke.' Combined with the enumerated failure-mode hints, an agent knows both when to reach for it and what question it answers, rather than guessing among sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
etix_searchSearch Etix events, venues, and performersARead-onlyIdempotent
Search Etix by keyword and get matching events (performances), venues, and performers — each with its id and canonical etix.com URL. Follow up with etix_get_event (event_id) or etix_get_venue (venue_id) for full details. Backs onto Etix's public suggest endpoint; returns a few top matches per category, not an exhaustive list. Read-only, no Etix account required.
| Name | Required | Description | Default |
|---|---|---|---|
| keywords | Yes | Search text — an artist, event, or venue name (e.g. "jazz", "Marion Meadows"). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, and idempotentHint, and the description aligns with these. It adds valuable context beyond annotations by revealing the underlying endpoint (public suggest) and the non-exhaustive nature of results, giving the agent an accurate expectation of behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, with the core purpose and output first, followed by follow-up guidance and a behavioral note. Every clause earns its place; there is no redundant or filler text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one parameter, no nested objects) and the presence of annotations, the description fully covers what an agent needs: what it returns (ids and URLs), how to proceed for full details, and limitations. No output schema is provided, but the description clarifies the return content sufficiently.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single parameter 'keywords' is fully described in the schema with a clear example, so schema coverage is 100%. The tool description does not add parameter-specific details, but it doesn't need to; the schema already conveys the meaning. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: search by keyword and return matching events, venues, and performers with IDs and canonical URLs. It also distinguishes itself from sibling tools by explicitly mentioning follow-up calls to etix_get_event and etix_get_venue, making its role in the workflow unmistakable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance on when to use this tool versus the siblings: it is the initial search step, and full details are obtained via follow-up tools. It also notes the limitation that it returns only a few top matches, not an exhaustive list, and states it is read-only with no account required, all of which inform appropriate usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
5 tool updates
v1.0.0- Changed
etix_find_location1 field changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
- Changed
etix_get_event1 field changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
- Changed
etix_get_venue1 field changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
- Changed
etix_healthcheck1 field changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
- Changed
etix_search1 field changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
5 tool updates
v0.2.0- First observed
etix_find_location - First observed
etix_get_event - First observed
etix_get_venue - First observed
etix_healthcheck - First observed
etix_search
TDQS
Scored across 5 tools
Each tool has a clearly distinct purpose: healthcheck diagnoses connectivity, find_location geocodes, search finds entities by keyword, get_event and get_venue fetch details by id. No overlap or ambiguity between tools.
All tools share a consistent etix_ prefix and snake_case formatting, which is highly predictable. Minor deviations: etix_healthcheck is a noun rather than verb_noun, and etix_search lacks an object noun, but the pattern remains readable.
Five tools is well-scoped for a read-only public event discovery API. Each tool earns its place: search, two detail fetchers, a geolocation helper, and a diagnostic tool.
Core read paths are covered (search -> get_event/get_venue), but find_location is a dead end because no tool accepts coordinates to find events, and there is no performer-detail endpoint. These notable gaps limit location-based browsing and deep entity traversal.
Maintenance
Related MCP Connectors
Customer support for MCP servers: work your tickets from Claude or any MCP client. Service key auth.
Remote streamable-HTTP MCP server running on a single Cloudflare Worker. Your assistant gets live Airbnb, Amazon, Booking.com, Google Flights, Maps and Reddit data, social search on X, Instagram and TikTok, the Meta Ad Library, and image/video generation without any keys. Connect your own accounts to let it send WhatsApp or Telegram messages, work an IMAP inbox, manage Meta Ads campaigns and publish to X and LinkedIn. OAuth 2.1 with PKCE; stored credentials are AES-256-GCM encrypted.
- QuallaaOAuthcom.quallaa
Talk to your public-facing AI from any MCP client — Claude, ChatGPT, Cursor, Cline, Windsurf.
Booking gateway for AI agents — discover events, movies & hotels, hand off to partner checkout.
Related MCP Servers
- FlicenseBqualityDmaintenanceThis server integrates with the Ticketmaster API to provide AI agents with real-time concert and event data, enabling dynamic fetching and formatting for ease of interpretation.12-
- FlicenseNot gradedqualityDmaintenanceAn MCP Server that enables interaction with Ticketmaster's Discovery API for accessing event, venue, and artist information through natural language commands.-
- FlicenseBqualityDmaintenanceConnects Claude to the Ticketmaster API to let users discover local events by city, category, keyword, or weekend through natural conversation.4-
- FlicenseNot gradedqualityCmaintenanceLive-concert discovery MCP server: search concerts, artist tour dates, festivals and shows by city. Gives AI assistants real-time access to Gigora's global live-music data.-