@chrischall/eventbrite-mcp 0.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude-plugin/marketplace.json +34 -0
- package/.claude-plugin/plugin.json +21 -0
- package/.mcp.json +11 -0
- package/LICENSE +21 -0
- package/README.md +100 -0
- package/dist/bundle.js +40401 -0
- package/dist/client.js +76 -0
- package/dist/discovery.js +530 -0
- package/dist/eventbrite-auth.js +18 -0
- package/dist/index.js +31 -0
- package/dist/tools/account.js +170 -0
- package/dist/tools/discovery.js +126 -0
- package/dist/tools/events.js +131 -0
- package/dist/tools/lookup.js +96 -0
- package/dist/tools/params.js +39 -0
- package/dist/transport-fetchproxy.js +57 -0
- package/dist/transport.js +5 -0
- package/dist/version.js +1 -0
- package/package.json +72 -0
- package/server.json +29 -0
- package/skills/eventbrite/SKILL.md +70 -0
- package/skills/eventbrite/references/discovery-api.md +113 -0
- package/skills/eventbrite/references/token-api.md +102 -0
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://anthropic.com/claude-code/marketplace.schema.json",
|
|
3
|
+
"name": "eventbrite-mcp",
|
|
4
|
+
"owner": {
|
|
5
|
+
"name": "Chris Hall",
|
|
6
|
+
"email": "chris.c.hall@gmail.com"
|
|
7
|
+
},
|
|
8
|
+
"metadata": {
|
|
9
|
+
"description": "MCP server for Eventbrite — your tickets and orders, organizer data, and public event discovery",
|
|
10
|
+
"version": "0.0.0"
|
|
11
|
+
},
|
|
12
|
+
"plugins": [
|
|
13
|
+
{
|
|
14
|
+
"name": "eventbrite-mcp",
|
|
15
|
+
"displayName": "Eventbrite",
|
|
16
|
+
"source": "./",
|
|
17
|
+
"description": "MCP server for Eventbrite — tickets, orders, organizer data, and public event search. Account tools use a personal API token; discovery search routes through the user's signed-in eventbrite.com tab via the fetchproxy bridge, reusing their authenticated session.",
|
|
18
|
+
"version": "0.0.0",
|
|
19
|
+
"author": {
|
|
20
|
+
"name": "Chris Hall"
|
|
21
|
+
},
|
|
22
|
+
"homepage": "https://github.com/chrischall/eventbrite-mcp",
|
|
23
|
+
"repository": "https://github.com/chrischall/eventbrite-mcp",
|
|
24
|
+
"license": "MIT",
|
|
25
|
+
"keywords": [
|
|
26
|
+
"eventbrite",
|
|
27
|
+
"events",
|
|
28
|
+
"tickets",
|
|
29
|
+
"mcp"
|
|
30
|
+
],
|
|
31
|
+
"category": "productivity"
|
|
32
|
+
}
|
|
33
|
+
]
|
|
34
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "eventbrite-mcp",
|
|
3
|
+
"displayName": "Eventbrite",
|
|
4
|
+
"version": "0.0.0",
|
|
5
|
+
"description": "MCP server for Eventbrite — your tickets and orders, organizer data, and public event discovery",
|
|
6
|
+
"author": {
|
|
7
|
+
"name": "Chris Hall",
|
|
8
|
+
"email": "chris.c.hall@gmail.com"
|
|
9
|
+
},
|
|
10
|
+
"homepage": "https://github.com/chrischall/eventbrite-mcp",
|
|
11
|
+
"repository": "https://github.com/chrischall/eventbrite-mcp",
|
|
12
|
+
"license": "MIT",
|
|
13
|
+
"keywords": [
|
|
14
|
+
"eventbrite",
|
|
15
|
+
"events",
|
|
16
|
+
"tickets",
|
|
17
|
+
"mcp"
|
|
18
|
+
],
|
|
19
|
+
"skills": "./skills/",
|
|
20
|
+
"mcp": "./.mcp.json"
|
|
21
|
+
}
|
package/.mcp.json
ADDED
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Chris Hall
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
# eventbrite-mcp
|
|
2
|
+
|
|
3
|
+
> This project was developed and is maintained by AI (Claude Code). Use at your own discretion.
|
|
4
|
+
|
|
5
|
+
MCP server for [Eventbrite](https://www.eventbrite.com): your tickets and
|
|
6
|
+
orders, organizer data (events, attendees, orders), any public event by id,
|
|
7
|
+
and public event **search** — which Eventbrite removed from its documented
|
|
8
|
+
API in 2019 and now only exists on the consumer site.
|
|
9
|
+
|
|
10
|
+
Two data paths, matched to how Eventbrite is reachable:
|
|
11
|
+
|
|
12
|
+
- **Documented API** (`eventbriteapi.com/v3`) — plain server-side HTTPS with a
|
|
13
|
+
personal OAuth token (`EVENTBRITE_TOKEN`, free: [create one](https://www.eventbrite.com/platform/api-keys)).
|
|
14
|
+
Powers the account, organizer, event-by-id, and reference tools.
|
|
15
|
+
- **Consumer discovery API** (`www.eventbrite.com/api/v3/destination/…`) — the
|
|
16
|
+
site WAF-blocks server-side clients, so search routes through your own
|
|
17
|
+
signed-in eventbrite.com browser tab via the
|
|
18
|
+
[fetchproxy](https://github.com/chrischall/fetchproxy) bridge (Transporter
|
|
19
|
+
extension), reusing your authenticated session. Powers `eb_search_events`,
|
|
20
|
+
`eb_resolve_place`, `eb_event_details`, `eb_healthcheck`.
|
|
21
|
+
|
|
22
|
+
All tools are read-only.
|
|
23
|
+
|
|
24
|
+
## Setup
|
|
25
|
+
|
|
26
|
+
```sh
|
|
27
|
+
npm install -g @chrischall/eventbrite-mcp
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
Claude Code (`.mcp.json`):
|
|
31
|
+
|
|
32
|
+
```json
|
|
33
|
+
{
|
|
34
|
+
"mcpServers": {
|
|
35
|
+
"eventbrite": {
|
|
36
|
+
"command": "eventbrite-mcp",
|
|
37
|
+
"env": { "EVENTBRITE_TOKEN": "your-private-token" }
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
- Without `EVENTBRITE_TOKEN` the server still boots; account tools error
|
|
44
|
+
helpfully on first use, and discovery tools work regardless.
|
|
45
|
+
- For discovery tools: install the Transporter extension, keep an
|
|
46
|
+
eventbrite.com tab open, and approve the one-time pair prompt (the prompt
|
|
47
|
+
covers the `csrftoken` cookie read the search POST needs). Run
|
|
48
|
+
`eb_healthcheck` to verify the hop.
|
|
49
|
+
|
|
50
|
+
## Tools
|
|
51
|
+
|
|
52
|
+
| Tool | Path | Notes |
|
|
53
|
+
| --- | --- | --- |
|
|
54
|
+
| `eb_me` | token | your profile |
|
|
55
|
+
| `eb_my_orders` | token | your tickets, event expanded |
|
|
56
|
+
| `eb_my_organizations` | token | organizer orgs |
|
|
57
|
+
| `eb_org_events` / `eb_org_attendees` / `eb_org_orders` | token | organizer data |
|
|
58
|
+
| `eb_org_venues` / `eb_org_discounts` / `eb_org_ticket_groups` / `eb_org_webhooks` | token | org-scoped collections |
|
|
59
|
+
| `eb_org_report` | token | sales / attendees analytics, date-windowed |
|
|
60
|
+
| `eb_event` / `eb_event_description` | token | any public event by id |
|
|
61
|
+
| `eb_ticket_classes` / `eb_ticket_class` | token | an event's ticket types |
|
|
62
|
+
| `eb_event_attendees` / `eb_event_attendee` | token | per-event attendees (`changed_since` polls incrementally) |
|
|
63
|
+
| `eb_event_orders` | token | per-event orders |
|
|
64
|
+
| `eb_event_questions` | token | registration questions (`canned: true` for the standard bank) |
|
|
65
|
+
| `eb_order` | token | a single order by id |
|
|
66
|
+
| `eb_venue` / `eb_venue_events` | token | venue detail and its events |
|
|
67
|
+
| `eb_organizer` / `eb_organizer_events` | token | organizer profile and everything they run |
|
|
68
|
+
| `eb_series_events` | token | occurrences of a recurring series |
|
|
69
|
+
| `eb_user` | token | a public user profile |
|
|
70
|
+
| `eb_reference` | token | categories / subcategories / formats / timezones / countries / regions |
|
|
71
|
+
| `eb_resolve_place` | token | location → place id (`Charlotte, NC` → `85981333`), plus browse shelves |
|
|
72
|
+
| `eb_search_events` | token | the consumer search; `compact: true` for slim results, `aggs` for facets |
|
|
73
|
+
| `eb_event_details` | token | batch event detail |
|
|
74
|
+
| `eb_healthcheck` | bridge | bridge diagnostics (stdio only; the bridge is a fallback route) |
|
|
75
|
+
|
|
76
|
+
Search flow: `eb_resolve_place {location: "Charlotte, NC"}` →
|
|
77
|
+
`eb_search_events {q: "blues", place_id: "85981333", compact: true}`.
|
|
78
|
+
|
|
79
|
+
`eb_resolve_place` also accepts a raw slug (`nc--charlotte`). A bare city with
|
|
80
|
+
no state or country is rejected rather than guessed.
|
|
81
|
+
|
|
82
|
+
## Hosted connector
|
|
83
|
+
|
|
84
|
+
`src/worker.ts` deploys the token-API tools as a Cloudflare Worker remote
|
|
85
|
+
connector for claude.ai (OAuth login collects your Eventbrite token). The
|
|
86
|
+
discovery tools are **excluded** there — the browser bridge doesn't exist in a
|
|
87
|
+
Worker. See `docs/DEPLOY-CONNECTOR.md`.
|
|
88
|
+
|
|
89
|
+
## Development
|
|
90
|
+
|
|
91
|
+
```sh
|
|
92
|
+
npm install
|
|
93
|
+
npm test # node suite
|
|
94
|
+
npm run build # tsc + esbuild bundle
|
|
95
|
+
npm run worker:test
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
API shape notes (captured + verified): `docs/EVENTBRITE-API.md`. A
|
|
99
|
+
shell-level access skill (curl + fpx, no server needed) ships in
|
|
100
|
+
`skills/eventbrite/`.
|