Integrations
Use AttendBeacon with your AI assistant
Connect Claude, ChatGPT, GitHub Copilot or Copilot Studio to your workspace through AttendBeacon's MCP server, and ask about your events in your own words.
What it is
The Model Context Protocol (MCP) is how AI assistants use other software's tools. AttendBeacon's MCP server lets an assistant read your events and, when you allow it, make a few safe changes, with the same keys, scopes, limits and log as the REST API.
The address: https://attendbeacon.com/mcp (Streamable HTTP)
Once connected, ask in your own words:
- "How is Beacon Summit selling compared to last week, and when do we sell out at this pace?"
- "Who from Contoso is coming, and have they checked in?"
- "What is on in the Main Hall on Thursday afternoon?"
- "Which speakers brought in the most tickets with their share links?"
- "Add a 30-minute session 'Lightning talks' in Room 2 on 13 November at 14:00." (asks before it changes anything)
Two ways to connect
Sign in (Claude's custom connectors, ChatGPT, Copilot Studio with OAuth): the assistant sends you to AttendBeacon, you sign in as yourself, choose the workspace and what the assistant may do, and allow it. AttendBeacon makes a key for that assistant, which you see and can revoke under Integrations › API & MCP.
A key (Claude Code, VS Code, Copilot Studio with an API key, and any other client): make a key under Integrations › API & MCP, starting from AI assistant (read only), and give it to the client as Authorization: Bearer abk_... or as X-Api-Key.
Either way, an assistant can do no more than its key's scopes allow. Start read only; add a write scope (such as tickets:write for discount codes) only for what you want it to do.
Claude
Claude on the web and Claude Desktop (custom connector):
- Open Settings › Connectors and choose Add custom connector. (In a Team or Enterprise plan, an owner adds it under Organization settings › Connectors first.)
- Name it AttendBeacon and give the address
https://attendbeacon.com/mcp. Leave the advanced settings empty. - Choose Connect, sign in to AttendBeacon, choose the workspace and the scopes, and allow it.
- In a chat, switch AttendBeacon on in the tools menu, and ask.
Claude Code, with a key:
claude mcp add --transport http attendbeacon https://attendbeacon.com/mcp \
--header "Authorization: Bearer $ATTENDBEACON_KEY"Or add it without the header and run /mcp in Claude Code to sign in instead.
ChatGPT
- In ChatGPT, open Settings › Apps & Connectors, and under Advanced settings switch on Developer mode (your plan and workspace admin must allow custom connectors).
- Choose Create, name it AttendBeacon, give the MCP server address
https://attendbeacon.com/mcpand OAuth as the authentication. - Sign in to AttendBeacon, choose the workspace and the scopes, and allow it.
- In a chat, add AttendBeacon from the tools menu.
ChatGPT shows a confirmation before every tool that changes data.
VS Code and GitHub Copilot
Add the server to .vscode/mcp.json in your project (or to your user settings). VS Code asks for the key once and keeps it in its secret store:
{
"inputs": [
{ "type": "promptString", "id": "attendbeacon-key", "description": "AttendBeacon API key", "password": true }
],
"servers": {
"attendbeacon": {
"type": "http",
"url": "https://attendbeacon.com/mcp",
"headers": { "Authorization": "Bearer ${input:attendbeacon-key}" }
}
}
}Open Copilot Chat in Agent mode; AttendBeacon's tools are under the tools button.
Copilot Studio
- In your agent, open Tools › Add a tool › New tool › Model Context Protocol.
- Give the server name AttendBeacon, a description ("Reads and updates our AttendBeacon events"), and the server URL
https://attendbeacon.com/mcp. - As authentication choose API key, type Header, header name
X-Api-Key. (Or OAuth 2.0 with dynamic discovery, to sign in instead.) - Create the connection with your key, and add the tools to the agent.
Other clients
Cursor, Windsurf, Gemini CLI and any client that speaks Streamable HTTP connect the same way: the address, and the key as a header, or the sign-in where the client supports OAuth.
The tools
| Tool | What it does | Subscribing needs | Changes data |
|---|---|---|---|
whoami | Which workspace the connection reaches, what the key may do and its limits. | — | No |
find_events | Lists the workspace's events with their dates, status, tickets and check-ins. | events:read | No |
get_event_summary | One event at a glance: registrations against capacity, check-ins, the programme and revenue. | events:read | No |
search_attendees | Finds attendees by name, address, company or order reference. | attendees:read people:read | No |
get_agenda | The agenda in time order, in the venue's time, with rooms, tracks and speakers. | program:read | No |
list_speakers | The speakers as the event's page shows them. | program:read | No |
list_sponsors | Sponsors and exhibitors by level, with their booth. | sponsors:read | No |
get_check_in_counts | Who has arrived, the last hour and each door's counts. | checkins:read | No |
get_sales_pace | Tickets and revenue per day, this week against last, and where this pace ends up. | orders:read | No |
get_budget_summary | Income, costs and result: budgeted, committed, actual and forecast. | finance:read | No |
list_cfp_submissions | Proposals to the call for speakers and their status. | cfp:read | No |
get_share_kit_leaderboard | Which speakers and sponsors brought the most tickets with their link or code. | sharekit:read | No |
list_ticket_types | Ticket types with their price, capacity and what is left. | tickets:read | No |
create_draft_event | Adds a new event as a draft. Nothing is published and nobody is emailed. | events:write | Yes |
add_session | Adds a session to the agenda; attendees see it at once when the event is published. | program:write | Yes |
create_discount_code | Creates a discount code that works at once. | tickets:write | Yes |
update_ticket_capacity | Changes how many places a ticket type has, never below what is taken. | tickets:write | Yes |
check_in_attendee | Checks somebody in at a door, by the scanner's rules. | checkins:write | Yes |
| Prompt | What it does |
|---|---|
event_briefing | A short briefing on one event: registrations, sales, the agenda and what needs attention. |
door_status | On the day: who has arrived, how fast, and which doors are busy. |
sales_update | Ticket sales this week against last, and where the event ends up. |
Every tool answers compact JSON in one text block, and the lists answer a page with nextCursor to ask for more. Times come in UTC and in the venue's wall time, money in the event's currency.
Tools that change data say CHANGES DATA first in their description, and are marked as not read-only, so assistants ask you before calling them. None deletes anything: an event is created as a draft, a capacity is never set below what is sold, a check-in follows the door's rules.
What you see in the workspace
- Integrations › API & MCP › Activity of keys lists every tool call, with
mcpas the channel and the tool's name, including the refused ones and why. - Changes appear in the workspace's activity log as "API key abk_... (name) via MCP".
- Revoke the key, or the connected app, and the assistant stops at once.
When something is refused
The tool answers an error whose text starts with the API's code, so the assistant can tell you what to do:
missingScope: the key lacks a scope; make a key with it.peopleScope: the question is about people by name; the key needs Personal data.moduleOff: the organiser switched that feature off for the event.rateLimited: more than 120 calls a minute, shared with the REST API.
For the curious
The server is the official C# SDK's, over Streamable HTTP, stateless: every request stands alone, so any of AttendBeacon's servers answers it. It offers tools and three prompts (event_briefing, door_status, sales_update); it asks nothing back of the client. The sign-in is OAuth 2.1 with PKCE and dynamic client registration, as the MCP authorization specification describes, advertised at /.well-known/oauth-protected-resource.