accessoticketing-mcp
Read accesso-powered mobile ticket links (accessoticketing.com media-engine URLs from confirmation emails) — order number, per-ticket product, participant, date/time, barcodes, Google Wallet passes — with curl. Skill: accessoticketing-mcp Owner: chrischall Summary: Read accesso-powered mobile ticket links (accessoticketing.com media-engine URLs from confirmation emails) — order number, per-ticket product, participant, date/time, barcodes, Google Wallet passes — with curl. Tags: latest:1.1.0 Version history: v1.1.0 | 2026-10-09T23:26:59.659Z | auto Version 1.1.0 - Added logic to ensure barcode PNG files written by --barcodes
Rank
62
Safety
84
Downloads
990
Updated
Oct 11, 2026
Version
1.1.0
Source
CLAWHUB
About
What it does, and when to use it.
Capability contract not published. No trust telemetry is available yet. 990 downloads reported by the source. Last updated 10/11/2026.
Avoid when
- Contract metadata is missing or unavailable for deterministic execution.
Risk flags: missing_or_unavailable_contract, trust_data_unavailable, schema_references_missing
Public facts
Every fact links back to the source it came from.
- Vendor
- Clawhubvendor · observed Oct 11, 2026
- Protocol compatibility
- OpenClawcompatibility · observed Oct 11, 2026
- Adoption signal
- 990 downloadsadoption · observed Oct 11, 2026
- Latest release
- 1.1.0release · observed Oct 9, 2026
- Handshake status
- UNKNOWNsecurity
What changed
Newest first. Only changes that point at a source are listed.
Release 1.1.0release
Version 1.1.0 - Added logic to ensure barcode PNG files written by --barcodes are never overwritten; repeated runs now write incrementing filenames (…-2.png, …-3.png, etc.). - Updated documentation to describe non-overwriting barcode file behavior. - Removed the redundant skill-card.md file.
Observed Oct 9, 2026 · source
Install and run
Setup complexity: low.
clawhub skill install s17cjx1a349nz5apaqp02vgz4h85728z:accessoticketing-mcp- Setup complexity is classified as HIGH. You must provision dedicated cloud infrastructure or an isolated VM. Do not run this directly on your local workstation.
- Final validation: Expose the agent to a mock request payload inside a sandbox and trace the network egress before allowing access to real customer data.
Contract: missing
curl -s "https://www.xpersona.co/api/v1/agents/clawhub-chrischall-accessoticketing-mcp/snapshot"
Run-check
$0.02 USD1 measured facts are behind this paywall: success rate and latency, uptime and estimated cost, when not to use it, how to call it, benchmark scores.
Agents pay $0.02 in USDC. A card payment is $0.50, the smallest a card allows.
Documentation
CLAWHUB
116,762 characters of source documentation, loaded on request.
Extracted files
4 files captured from the source.
SKILL.md
--- name: accesso-tickets description: "Read accesso-powered mobile ticket links (accessoticketing.com media-engine URLs from confirmation emails) — order number, per-ticket product, participant, date/time, barcodes, Google Wallet passes — with curl." --- # accesso tickets For accesso Passport mobile-ticket links, which look like: ``` https://media-engine.<region>.accessoticketing.com/tickets/v1/<island>?oToken=A1:…&cToken=A1:…&merchant_id=<n> ``` Many venues deliver tickets this way (US National Whitewater Center, theme parks, festivals). The link arrives in the order-confirmation email, often behind a click-tracker — resolve that first with `curl -sSIL <tracking-url> | grep -i ^location`. **No login, no browser bridge.** The `oToken` in the URL *is* the credential, and the page is plain-`curl` reachable server-side. Treat the URL as a secret: it grants anyone the order's tickets and barcodes. Never paste one into a file, a commit, or an issue. ## Core pattern `references/parse-tickets.mjs` is dependency-free (no `node_modules`) and takes a URL, a file, or `-` for stdin: ```bash P=~/.claude/skills/accesso-tickets/references/parse-tickets.mjs node "$P" "$TICKET_URL" | jq . ``` Useful flags: - `--barcodes <dir>` — write each ticket's barcode as a PNG (`ticket-<idx>-<ticketId>.png`; an existing file is never overwritten — a re-run writes `…-2.png`) and add `barcodeFile` to the output. - `--terms` — include the (long, boilerplate, per-ticket-identical) `termsAndConditions`. Omitted by default. - `--url <original-url>` — supply the source URL when parsing a saved file, so `googleWalletUrl` can be built. Exit codes: `3` no tickets parsed (expired link, or layout drift — the message says which), `4` HTTP error fetching, `64` bad usage. ## Output Top level: `orderNumber`, `island`, `merchantId`, `merchantLogo`, `ticketCount`, `declaredTicketCount`, `tickets[]`. Per ticket: `index`, `ticketId`, `packageName`, `participant`, `additionalGuests[]`, `date`, `time` (absent on all-day items), `barcodeText`, `barcodeIsDataUrl`, `instructions`, `googleWalletUrl`, plus any other label/value pair the merchant rendered (commonly `guestNumber`, `webSalesId`). Extra fields are harvested generically from the page's label/value markup rather than hardcoded, so a merchant with different detail rows still comes through. See `references/recipes.md` for jq recipes and the verified request shapes. ## Gotchas - **An expired or invalid link returns HTTP 200**, not 4xx — the body just says "no tickets available to print on this order." Status alone never tells you the link is dead; the parser checks the body and says so. - **Every ticket is rendered twice** (a mobile `ticket-item-container<N>` grouping and a `desktopTicketGrouping` one) sharing barcode element ids. Parse only the mobile blocks or you get doubles. - **`ticketId` lives in neither rendering** — it is in the trailing "Register this ticket" modal section, one hidden input per ticket in ticket order
_meta.json
{
"ownerId": "kn700jq4sjtf2anb0rk3ft4p7n856872",
"slug": "accessoticketing-mcp",
"version": "1.1.0",
"publishedAt": 1791588419659
}references/recipes.md
# accesso ticket recipes
All shapes below were captured live against a real accesso order
(`media-engine.na3.accessoticketing.com`, island `accesso155`, 12 tickets).
Replace `$TICKET_URL` with the link from the confirmation email — never commit one.
```bash
P=~/.claude/skills/accesso-tickets/references/parse-tickets.mjs
```
## Resolve a tracked link first
Confirmation emails wrap the link in a click-tracker (SendGrid `…/ls/click?upn=…`, etc.):
```bash
curl -sSIL "$TRACKED_URL" | grep -i '^location:' | tail -1
```
Take the final `media-engine.*/tickets/v1/*` URL. Keep the whole query string —
`oToken` **and** `cToken` are both required.
## Everyday queries
```bash
# One line per ticket: who, when, what
node "$P" "$TICKET_URL" 2>/dev/null \
| jq -r '.tickets[] | [.date, (.time // "all-day"), .participant, .packageName] | @tsv' \
| column -t -s $'\t'
# Group by participant
node "$P" "$TICKET_URL" 2>/dev/null \
| jq -r '.tickets | group_by(.participant)[] | "\(.[0].participant): \(map(.packageName) | join(", "))"'
# Just the timed items (the ones with a start time you must not miss)
node "$P" "$TICKET_URL" 2>/dev/null | jq '[.tickets[] | select(.time)] | map({time, participant, packageName})'
# Distinct products and counts
node "$P" "$TICKET_URL" 2>/dev/null | jq -r '.tickets | group_by(.packageName)[] | "\(length)x \(.[0].packageName)"'
# Order header
node "$P" "$TICKET_URL" 2>/dev/null | jq '{orderNumber, island, merchantId, ticketCount}'
# Per-product instructions (deduped — merchants repeat them on every ticket)
node "$P" "$TICKET_URL" 2>/dev/null \
| jq -r '[.tickets[] | {packageName, instructions}] | unique_by(.packageName)[] | "## \(.packageName)\n\(.instructions)\n"'
```
## Barcodes
```bash
node "$P" "$TICKET_URL" --barcodes ~/Desktop/tickets >/dev/null
open ~/Desktop/tickets # macOS
```
Each file is `ticket-<index>-<ticketId>.png`. The scannable value is also in
`barcodeText` (e.g. `ID %RC<order-number>`) if you'd rather regenerate the code yourself.
## Google Wallet passes
Verified endpoint — returns `{"jwt": "..."}` at HTTP 200:
```
GET https://media-engine.<region>.accessoticketing.com/google-wallet/v1/<island>/<oToken>/<ticketId>
```
The page sends an `X-ACCESSOPASSPORT-ORIGIN: <store-origin>` header; it is **not**
required (a bare curl returns 200). Turn a JWT into a save link with Google's
standard form, `https://pay.google.com/gp/v/save/<jwt>` (verified: resolves, and
prompts Google sign-in as expected):
```bash
node "$P" "$TICKET_URL" 2>/dev/null | jq -r '.tickets[] | select(.googleWalletUrl) | "\(.ticketId)\t\(.googleWalletUrl)"' \
| while IFS=$'\t' read -r id url; do
jwt=$(curl -sS "$url" | jq -r .jwt)
printf '%s\thttps://pay.google.com/gp/v/save/%s\n' "$id" "$jwt"
done
```
These URLs embed the order token — treat the output as secret.
## Page structure (why the parser looks the way it does)
Server-rendered HTML, no JSON store, no bot wall, no auth beyond the URL tokens.
- `span.ticketHeskill-card.md
## Description: Reads accesso mobile-ticket links to extract order and ticket details, barcodes, and Google Wallet pass links. This skill is ready for commercial/non-commercial use. ## Publisher: [chrischall](https://clawhub.ai/user/chrischall) ### License/Terms of Use: MIT-0 ## Use Case: Ticket holders and their agents use the skill to inspect accesso confirmation links, summarize ticket times and participants, and retrieve barcodes or Google Wallet pass links. ### Deployment Geography for Use: Global ## Known Risks and Mitigations: Risk: Ticket URLs, barcodes, parsed JSON, and wallet links may function as live ticket credentials. Mitigation: Keep them out of issues, commits, shared chats, logs, screenshots, and synced folders; delete exported barcode files when no longer needed. ## Reference(s): - [ClawHub skill release](https://clawhub.ai/chrischall/skills/accessoticketing-mcp) - [Ticket parsing recipes](references/recipes.md) - [Ticket parser](references/parse-tickets.mjs) ## Skill Output: **Output Type(s):** [Guidance, Shell commands, JSON, PNG images] **Output Format:** [Text and shell commands; structured JSON ticket details and optional PNG barcodes] **Output Parameters:** [1D] **Other Properties Related to Output:** [Ticket links, parsed details, barcode files, and wallet links can grant access to tickets.] ## Skill Version(s): 1.1.0 (source: ClawHub release evidence) ## Ethical Considerations: Users should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.
AionUi
Free, local, open-source 24/7 Cowork app and OpenClaw for Gemini CLI, Claude Code, Codex, OpenCode, Qwen Code, Goose CLI, Auggie, and more | 🌟 Star if you like it!
activepieces
AI Agents & MCPs & AI Workflow Automation • (~400 MCP servers for AI agents) • AI Automation / AI Agent with MCPs • AI Workflows & AI Agents • MCPs for AI Agents
cherry-studio
AI productivity studio with smart chat, autonomous agents, and 300+ assistants.
CopilotKit
The Frontend for Agents & Generative UI. React + Angular
Machine-readable data
The same record, as JSON, for agents and crawlers.
- Card JSON
- Facts JSON
- Snapshot JSON
- Contract JSON
- Trust JSON
- Changes JSON
- Warnings JSON
- Seen by JSON
- Disagreements JSON
{
"facts": [
{
"factKey": "vendor",
"category": "vendor",
"label": "Vendor",
"value": "Clawhub",
"href": "https://clawhub.ai/chrischall/skills/accessoticketing-mcp",
"sourceUrl": "https://clawhub.ai/chrischall/skills/accessoticketing-mcp",
"sourceType": "profile",
"confidence": "medium",
"observedAt": "2026-10-11T21:30:43.624Z",
"isPublic": true
},
{
"factKey": "protocols",
"category": "compatibility",
"label": "Protocol compatibility",
"value": "OpenClaw",
"href": "https://www.xpersona.co/api/v1/agents/clawhub-chrischall-accessoticketing-mcp/contract",
"sourceUrl": "https://www.xpersona.co/api/v1/agents/clawhub-chrischall-accessoticketing-mcp/contract",
"sourceType": "contract",
"confidence": "medium",
"observedAt": "2026-10-11T21:30:43.624Z",
"isPublic": true
},
{
"factKey": "traction",
"category": "adoption",
"label": "Adoption signal",
"value": "990 downloads",
"href": "https://clawhub.ai/chrischall/accessoticketing-mcp",
"sourceUrl": "https://clawhub.ai/chrischall/accessoticketing-mcp",
"sourceType": "profile",
"confidence": "medium",
"observedAt": "2026-10-11T21:30:43.624Z",
"isPublic": true
},
{
"factKey": "latest_release",
"category": "release",
"label": "Latest release",
"value": "1.1.0",
"href": "https://clawhub.ai/chrischall/accessoticketing-mcp",
"sourceUrl": "https://clawhub.ai/chrischall/accessoticketing-mcp",
"sourceType": "release",
"confidence": "medium",
"observedAt": "2026-10-09T23:26:59.659Z",
"isPublic": true
},
{
"factKey": "handshake_status",
"category": "security",
"label": "Handshake status",
"value": "UNKNOWN",
"href": "https://www.xpersona.co/api/v1/agents/clawhub-chrischall-accessoticketing-mcp/trust",
"sourceUrl": "https://www.xpersona.co/api/v1/agents/clawhub-chrischall-accessoticketing-mcp/trust",
"sourceType": "trust",
"confidence": "medium",
"observedAt": null,
"isPublic": true
}
],
"events": [
{
"eventType": "release",
"title": "Release 1.1.0",
"description": "Version 1.1.0 - Added logic to ensure barcode PNG files written by --barcodes are never overwritten; repeated runs now write incrementing filenames (…-2.png, …-3.png, etc.). - Updated documentation to describe non-overwriting barcode file behavior. - Removed the redundant skill-card.md file.",
"href": "https://clawhub.ai/chrischall/accessoticketing-mcp",
"sourceUrl": "https://clawhub.ai/chrischall/accessoticketing-mcp",
"sourceType": "release",
"confidence": "medium",
"observedAt": "2026-10-09T23:26:59.659Z",
"isPublic": true
}
]
}Record generated Oct 12, 2026.
For crawlers
This page is free to read. The run-check above is the only paid part, and it answers HTTP 402 until it is paid. Everything else here is public.
- One record, as JSON: card, facts, snapshot, contract, trust, changes, warnings, seen by, disagreements.
- Every agent, one feed: /.well-known/ai-catalog.json
- What this site sells, and the price: /.well-known/x402
- Paid run-check: /api/v1/agents/clawhub-chrischall-accessoticketing-mcp/run-check
