accessoticketing-mcp
Provides Google Wallet save links for tickets on an accesso Passport order, allowing them to be added to Google Wallet.
Click on "Install 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., "@accessoticketing-mcpShow me my order details from the ticket link."
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.
accessoticketing-mcp
An MCP server for accesso Passport mobile ticket links — the URL a venue emails you after a purchase. Reads the order and every admission on it, the scannable barcodes, and Google Wallet save links.
accesso powers ticketing for a lot of theme parks, water parks, camps, museums and festivals, so one server covers all of them: the merchant is encoded in the link.
Developed and maintained by AI (Claude Code). Use at your own discretion.
What it needs
No login. These links carry their own credential — the oToken in the query
string is what authorises the read. There is no account, no password, no browser
session, and no bot wall.
That also meansthe link is a secret. Anyone holding it can view and add the order's tickets. Treat it like a password: don't paste it into issues, logs or chats. This server redacts the tokens from its own output and error messages.
Related MCP server: tokenless-zendesk-mcp
Install
npx -y @chrischall/accessoticketing-mcp// claude_desktop_config.json / .mcp.json
{
"mcpServers": {
"accessoticketing": {
"command": "npx",
"args": ["-y", "@chrischall/accessoticketing-mcp"],
"env": { "ACCESSO_TICKET_URL": "https://media-engine.na3.accessoticketing.com/tickets/v1/..." }
}
}
}ACCESSO_TICKET_URL is optional — it just saves passing url on every call. The
server starts fine without it and reports the missing link on first use.
Variable | Required | Purpose |
| no | Default ticket link, used when a tool is called without |
| no | Where |
| no | Set to |
Tools
Tool | Does |
| The order and every admission: product, participant, date, start time, instructions. Returns the slim per-ticket list by default; |
| One admission in full, by |
| Writes barcode PNGs and returns paths, or returns the images inline. |
| Google Wallet save links for the tickets. |
| Unwraps an email click-tracking link to the accesso URL it hides. |
| Confirms reachability and whether a default link is configured. |
Every tool is read-only; nothing here mutates an order.
> what do we have booked tomorrow?
9:00 AM Tiny Trekkers Full-Day (Ages 4-7) — one participant
9:00 AM Whitewater Kayak Camp I: Intro — two participants
all-day Lunch / Snack / Early Drop-Off — nine more admissionsShell-out skill
Prefer a shell? skills/accesso-tickets/ does the same reading with curl and a
dependency-free parser, no server required. It ships with the package.
Notes on the data
date/timeare the merchant's local wall-clock strings with no timezone attached. They are passed through verbatim rather than converted.Merchant-specific detail rows (
Guest Number,Web Sales ID, …) are harvested generically intodetails, so a venue this was never tested against still works.An expired link returns HTTP 200, not an error status — the server detects the body and says the link is expired rather than reporting zero tickets.
Development
npm install
npm run build
npm test
npm run test:coverage # 100% thresholds, enforced in CISee docs/ACCESSO-API.md for the captured request/response shapes and CLAUDE.md
for repo conventions.
License
MIT
Available Tools
6 toolsaccesso_get_orderARead-only
Read an accesso ticket link: the order number and every admission on it — product, participant, date, start time, barcode text, and the merchant instructions. Covers any accesso-powered venue (theme parks, camps, festivals). Needs no login; the emailed link is the credential.
| Name | Required | Description | Default |
|---|---|---|---|
| url | No | The accesso ticket link from the order-confirmation email. Optional when ACCESSO_TICKET_URL is set. | |
| view | No | Response shape: "compact" (default) drops fields the response already carries elsewhere; "full" returns every field this server understands. compact returns the slim per-ticket projection — identity, participant, date, time; "full" returns every field parsed from the order page. | |
| include_terms | No | Include each ticket's terms and conditions (long, and identical per venue). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark the tool as read-only and open-world, and the description is consistent with that. It adds valuable behavioral context beyond annotations by disclosing that no login is needed and that the emailed link itself acts as the credential, plus it specifies what data will be returned. No contradictions found.
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?
Two compact sentences carry substantial useful information: the core function, the return contents, venue coverage, and authentication behavior. There is no filler or redundant restatement of the tool name.
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 burden of communicating return value, and it does so by listing the key fields. It also covers access scope and auth requirements. Minor gaps remain around how this differs from accesso_resolve_link or accesso_get_wallet_passes, but the description is still sufficient for an agent to use the tool 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 the schema fully documents url, view, and include_terms. The tool description does not need to repeat parameter details, and it adds no extra parameter-level meaning beyond implying the url comes from the emailed link. 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 opens with a specific verb and resource ('Read an accesso ticket link') and enumerates the exact output fields: order number, product, participant, date, start time, barcode text, and merchant instructions. This clearly distinguishes the order-level view from a single-ticket view such as accesso_get_ticket.
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: use this when you have an emailed accesso ticket link and need the order plus all admissions. It also states coverage across accesso venues and explains that no login is required, which helps an agent decide when this tool is appropriate. It does not explicitly name alternatives or exclusion conditions, so it stops short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accesso_get_ticketARead-only
One admission from an accesso order in full detail, including the merchant instructions and (on request) the terms. Identify it by its index from accesso_get_order.
| Name | Required | Description | Default |
|---|---|---|---|
| url | No | The accesso ticket link from the order-confirmation email. Optional when ACCESSO_TICKET_URL is set. | |
| index | Yes | Ticket index, from accesso_get_order. | |
| include_terms | No | Include the terms and conditions. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Given readOnlyHint=true, the description adds useful behavioral context by stating the response includes full detail and merchant instructions, with terms available on request. No side effects or safety contradictions.
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?
Two compact sentences front-load the object returned and then explain how to identify the ticket. No filler or redundant detail.
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?
The description is sufficient for a simple read-only ticket fetch: it defines what is returned, how to identify the ticket, and the optional terms flag. Without an output schema, a bit more return-structure detail could help, but the current text is adequate.
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 description mostly repeats what the schema already says, especially about index coming from accesso_get_order. It adds no format, defaults, or cross-parameter constraints beyond the schema.
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 identifies a specific resource: one admission from an accesso order, and specifies the detail level and optional terms. It also points to accesso_get_order as the source of the index, which differentiates this ticket-level tool from the order-level sibling.
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?
It gives a clear usage context: obtain an index from accesso_get_order, then fetch the individual ticket. It does not explicitly list when-not-to-use or name alternative tools, but the workflow is unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accesso_get_wallet_passesARead-only
Google Wallet save links for the tickets on an accesso order. Open one on a phone to add that ticket to Google Wallet. Not every merchant enables passes.
| Name | Required | Description | Default |
|---|---|---|---|
| url | No | The accesso ticket link from the order-confirmation email. Optional when ACCESSO_TICKET_URL is set. | |
| indexes | No | Ticket `index` values to act on. Omit for every ticket on the order. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark the tool read-only and open-world, and the description adds helpful context beyond that: the returned items are links intended to be opened on a phone, and pass availability depends on merchant enablement. This sets accurate expectations for the output and for cases where passes may be unavailable, without contradicting the annotations.
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 three short sentences with no filler: the main deliverable is stated first, followed by how it is used and a relevant caveat. Every sentence adds information an agent needs.
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 simple read-only tool with no output schema, the description explains what is returned (Google Wallet save links) and the main caveat (merchant enablement). It does not specify the exact return shape or behavior when passes are not enabled, but the combination of description, annotations, and full schema coverage makes the tool callable without major gaps.
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 parameters are already well documented: url is optional when ACCESSO_TICKET_URL is set, and indexes filters by ticket index values. The tool description does not add further parameter-level meaning beyond restating the order/ticket scope, so the schema carries the load.
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 identifies the resource (Google Wallet save links) and the scope (tickets on an accesso order), so an agent can tell this apart from tools that return order or ticket data. It lacks an explicit action verb like 'returns' and does not explicitly name sibling distinctions, but the meaning is unambiguous.
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 implies when to use the tool: to get Google Wallet passes for tickets on an order, and it notes the limitation that not every merchant enables passes. It does not explicitly state when not to use it or mention an alternative such as accesso_save_barcodes when passes are unavailable, so usage guidance is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accesso_healthcheckARead-only
Check that this server can reach accesso and whether a default ticket link is configured.
| Name | Required | Description | Default |
|---|---|---|---|
| url | No | The accesso ticket link from the order-confirmation email. Optional when ACCESSO_TICKET_URL is set. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint, so the description does not need to restate safety. It adds concrete behavioral context by naming exactly what is tested: network reachability to accesso and default ticket link configuration. No contradiction with annotations.
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?
One sentence communicates the complete purpose with no filler. The key facts are front-loaded: it checks reachability and default-link configuration.
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 one-parameter, read-only healthcheck with no required inputs, the description is adequate. It omits the exact return shape, but that is a minor gap given the low complexity and the absence of an output schema.
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 url parameter is already described as the ticket link from the order-confirmation email, optional when ACCESSO_TICKET_URL is set. The description adds no parameter-level meaning beyond the schema.
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?
Uses the specific verb 'Check' plus two clear targets: connectivity to accesso and the presence of a default ticket link. This distinguishes it from sibling tools that get orders, tickets, wallet passes, or resolve links.
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 makes the diagnostic context clear: an agent should use this when verifying server-side reachability and default-link configuration. It does not explicitly name alternatives or exclusions, but the healthcheck purpose is obvious enough that little is left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accesso_resolve_linkARead-only
Turn an order-confirmation email's click-tracking link into the direct accesso ticket URL it wraps. Use when a link is not already an accessoticketing.com address.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | The tracking link from the email. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the safety profile is covered. The description adds that this resolves a wrapped URL rather than performing a lookup, but it does not disclose behavior for invalid, malformed, or non-tracking links. This is acceptable but not rich behavioral context.
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?
Two short sentences with no filler. The core transformation is stated first, and the conditional usage guidance is added without 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 resolution tool, the description covers the input, the transformation, and the key use condition. It does not explain error behavior or return format, but those are less critical for a simple resolver, especially with no output schema expected.
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 fully documents the single 'url' parameter. The description repeats the same idea ('tracking link from the email') without adding format, constraints, or example semantics beyond the schema.
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 ('Turn'), a clear resource ('an order-confirmation email's click-tracking link'), and a precise outcome ('the direct accesso ticket URL it wraps'). This fully differentiates the tool from sibling operations like get_order or get_ticket.
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 explicitly says to use this tool when a link is not already an accessoticketing.com address, which gives a clear conditional trigger. It does not name an alternative for already-direct links, but the 'use when' condition is unambiguous enough for the agent to decide.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accesso_save_barcodesARead-only
Save the scannable barcode images from an accesso order. Writes PNGs and returns their paths; set inline to receive the images directly instead (which is the only useful mode when this server runs remotely, since its filesystem is not the user's).
| Name | Required | Description | Default |
|---|---|---|---|
| url | No | The accesso ticket link from the order-confirmation email. Optional when ACCESSO_TICKET_URL is set. | |
| inline | No | Return the images in the response instead of writing files. | |
| indexes | No | Ticket `index` values to act on. Omit for every ticket on the order. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotation Contradiction: the description says 'Writes PNGs and returns their paths', which is a side-effecting write to the server filesystem, but the annotations declare readOnlyHint=true. This directly contradicts the described behavior and could mislead an agent about whether the tool mutates state.
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?
Two sentences, front-loaded with the core purpose, and every clause earns its place. The mode distinction and remote-filesystem caveat are tight and directly useful rather than filler.
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?
The description covers what the tool does, what it returns (paths or inline images), and the critical environment consideration for choosing inline mode. Some response-shape details are absent and there is no output schema, but the agent has enough to invoke it correctly. The annotation contradiction slightly undermines completeness, though the textual description itself is solid.
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 baseline is 3. The description adds extra value by explaining the practical meaning of inline mode and why it matters ('the only useful mode when this server runs remotely, since its filesystem is not the user's'), which helps an agent choose parameter values correctly.
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 verb ('Save'), the resource ('scannable barcode images from an accesso order'), and the concrete output behavior ('Writes PNGs and returns their paths'). This distinguishes it from sibling tools like accesso_get_order and accesso_get_wallet_passes, which are retrieval-oriented rather than barcode-image saving.
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 explicit, practical guidance about when to use inline mode versus file-writing mode, including the remote-server caveat. It does not explicitly compare against sibling tools, but it provides clear context for choosing the correct invocation mode.
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. Dates show when Glama detected each change.
6 tool updates
v0.2.0- First observed
accesso_get_order - First observed
accesso_get_ticket - First observed
accesso_get_wallet_passes - First observed
accesso_healthcheck - First observed
accesso_resolve_link - First observed
accesso_save_barcodes
TDQS
Each tool targets a distinct function: resolving a tracking link, retrieving an order summary, retrieving a single ticket, saving barcode images, generating wallet passes, and checking connectivity. There is minimal overlap, and descriptions clarify the boundary between order-level and ticket-level retrieval.
All tools share the accesso_ prefix and mostly follow a clear verb_noun pattern such as get_order, get_ticket, save_barcodes, and resolve_link. The exception is accesso_healthcheck, which is a noun rather than a verb-object phrase, but it is still predictable and consistent with the overall naming style.
Six tools is well-scoped for the stated purpose of working with accesso ticket links. Each tool covers a distinct part of the workflow without unnecessary redundancy or an overwhelming surface area.
The tool set covers the full practical workflow: resolving a link, reading an order, viewing individual ticket details, saving barcodes, and generating wallet passes. The healthcheck tool also covers operational needs, and no major dead ends or missing core operations are apparent.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
An MCP server that provides read access to your cloud storage providers, bank accounts and more.
2,000+ MCP servers read at source level. Know what one does before you connect. Free, no key.
A paid remote MCP for hosted MCP server, built to return verdicts, receipts, usage logs, and audit-r
Remote MCP server for managing Muninx tickets, messages, ticket search, and support analytics.
Related MCP Servers
- AlicenseAqualityDmaintenanceAn MCP server that provides read-only access to MySQL databases.445472MIT
- AlicenseAqualityDmaintenanceMCP server that authenticates via browser session cookies to access Zendesk's REST API without API tokens, supporting reads and writes with agent permissions.19141MIT
- AlicenseAqualityCmaintenanceRead-only MCP server for the HIT ticket management system that lists queues, searches/fetches ticket details, and lists ticket templates.4181MIT
- AlicenseAqualityBmaintenanceRead-only MCP server for Edenred Plus that enables checking benefit balances, transactions, and deals via local browser authentication.5MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/chrischall/accessoticketing-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server