Skip to main content
Glama

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

etix_search

Search events, venues, and performers by keyword. Returns a few top matches per category, each with its id and canonical etix.com URL.

etix_get_event

Full record for an event/performance by event_id — name, date/time, venue (with address + coordinates), organizer, ticket price range and the individual priced offer levels.

etix_get_venue

A venue by venue_id — name, organizer, full address, and the list of upcoming events at that venue.

etix_find_location

Resolve a city name or postal code to coordinates plus normalized city/state — a building block for location-based event browsing.

etix_healthcheck

End-to-end bridge check — round-trips /robots.txt and reports which hop failed (bridge down vs. extension not connected vs. DataDome challenge on your tab). Call when other tools fail.

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 .sha256 file 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        # vitest

Acknowledgement 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 tools
etix_find_locationResolve a city or postal code to coordinatesA
Read-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.

NameRequiredDescriptionDefault
queryYesA city (optionally "City, ST") or a postal code, e.g. "Charlotte, NC" or "28202".
countryNoCountry code/name to scope the lookup. Defaults to "USA".

TDQS

A3.9/5.0
Behavior4/5

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.

Conciseness4/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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 idA
Read-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.

NameRequiredDescriptionDefault
event_idYesEtix event/performance id (e.g. 39004863). From etix_search.

TDQS

A4.5/5.0
Behavior5/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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 idA
Read-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.

NameRequiredDescriptionDefault
venue_idYesEtix venue id (e.g. 17987). From etix_search.

TDQS

A4.5/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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-endA
Read-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.

NameRequiredDescriptionDefault

No parameters

TDQS

A4.8/5.0
Behavior5/5

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.

Conciseness4/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 5 tool updatesv1.0.0
    • Changedetix_find_location1 field changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
    • Changedetix_get_event1 field changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
    • Changedetix_get_venue1 field changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
    • Changedetix_healthcheck1 field changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
    • Changedetix_search1 field changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
  2. 5 tool updatesv0.2.0
    • First observedetix_find_location
    • First observedetix_get_event
    • First observedetix_get_venue
    • First observedetix_healthcheck
    • First observedetix_search

TDQS

A4.1/5.0

Scored across 5 tools

Disambiguation4/5

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.

Naming Consistency4/5

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).

Tool Count4/5

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.

Completeness3/5

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

ActivityActive
ResponsivenessResponsive

Related MCP Connectors

Related MCP Servers