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. Read-only, no Etix account required.

ParametersJSON Schema
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

A4.2/5.0
Behavior4/5

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.

Conciseness5/5

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.

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

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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

ParametersJSON Schema
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.

ParametersJSON Schema
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.

ParametersJSON Schema
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.4/5.0

Scored across 5 tools

Disambiguation5/5

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.

Naming Consistency4/5

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.

Tool Count5/5

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.

Completeness3/5

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

ActivityActive
ResponsivenessResponsive

Related MCP Connectors

Related MCP Servers