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. Returns found:false with a message when nothing matches. 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 cover read-only, open-world and idempotent semantics, but the description adds real value beyond them: the no-match behavior (found:false with a message) and that no Etix account is required. It does not discuss ambiguous multi-match handling, though that is a minor gap given the annotation coverage.
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?
Four short sentences with the core purpose front-loaded and no wasted preamble. The final "Read-only, no Etix account required" partially duplicates the readOnlyHint annotation, a small 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?
With no output schema, the description carries the return-value burden and does reasonably well: it names the returned fields (lat/long, normalized city/state) and the failure shape (found:false + message). It could say more about how ambiguous or partial matches resolve, but it is complete enough to call 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 description coverage is 100%, so both 'query' (with its "City, ST" or postal code example) and 'country' (defaulting to USA) are already fully documented in the schema. The description restates the same input forms without adding format or edge-case guidance beyond them, so the baseline 3 applies.
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 precise verb (resolve) and a concrete resource (city name or postal code → latitude/longitude plus normalized city/state). No sibling tool in the set (get_event, get_venue, healthcheck, search) does geocoding, so the scope is unmistakable without opening either schema.
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?
"Useful as a building block for location-based event browsing" implies a usage context but never states when to reach for this tool versus calling etix_search or etix_get_event directly, nor any exclusions. Implied usage only.
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
The four Etix domain tools are largely distinct: search is a discovery entry point, get_event and get_venue are ID-based detail lookups, and healthcheck is an explicit diagnostic utility. The main wrinkle is etix_find_location, which returns coordinates but has no consuming tool, leaving its role somewhat orphaned.
All tools share the etix_ prefix and are mostly verb_noun (find_location, get_event, get_venue), which is predictable. Minor deviations are etix_search (bare verb) and etix_healthcheck (noun, no verb_noun form).
Five read-only lookup/diagnostic tools is a compact, well-scoped set with no obvious redundancy. It is a touch thin for an event-browsing surface, but each tool earns its place.
The read-only discovery surface covers search, event detail, venue detail, and connectivity diagnostics, but find_location produces coordinates that no other tool accepts, and there is no way to browse events by city, date, or category. These are notable gaps for location-based event browsing, which the description explicitly advertises.
Maintenance
Related MCP Connectors
Hosted X (Twitter) MCP server for Claude, ChatGPT and Cursor, with each action switched per account.
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.
Hosted Web Crawler MCP server for Claude, ChatGPT and Cursor, with each action switched per account.
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 gradedqualityDmaintenanceLive-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.-