Connect Eventee to Claude: Coordinate Partners and Attendee Data
Learn how to connect Eventee to Claude using Truto's managed MCP server. Coordinate partners, manage attendee invites, and orchestrate live event logistics using natural language.
If your team is managing conferences, trade shows, or virtual summits, you need a way to connect Eventee to Claude to automate partner coordination, manage attendee data, and handle last-minute agenda changes. To do this securely, you need a Model Context Protocol (MCP) server. This server acts as the translation layer between Claude's function calls and Eventee's REST API. You can either build and maintain this infrastructure yourself, or use a managed integration platform like Truto to dynamically generate a secure, authenticated MCP server URL. If your team uses ChatGPT, check out our guide on /connect-eventee-to-chatgpt-manage-events-speakers-and-agenda/ or explore our broader architectural overview on /connect-eventee-to-ai-agents-automate-invites-and-live-logistics/.
Giving a Large Language Model (LLM) read and write access to a specialized event platform like Eventee is an engineering challenge. You must handle complex relational payloads, map strict JSON schemas to MCP tool definitions, and manage API token lifecycles. Every time Eventee adds a new resource or deprecates a field, you must update your server code, redeploy, and test the integration.
This guide breaks down exactly how to use Truto to generate a secure, managed MCP server for Eventee, connect it natively to Claude Desktop, and execute complex event management workflows using natural language.
The Engineering Reality of the Eventee API
A custom MCP server is a self-hosted integration layer. While the open MCP standard provides a predictable way for models to discover tools, the reality of implementing it against specialized B2B APIs is painful. Eventee is built to manage complex relational hierarchies - an event has halls and tracks, tracks have lectures, lectures have speakers, and partners have tiered profiles. Its API reflects that relational complexity.
If you decide to build a custom Eventee MCP server, here are the specific integration challenges you will face:
Deep Relational Dependencies and ID Sequences
Eventee's data model does not tolerate isolated records. You cannot simply instruct an LLM to "create a session called Keynote." In the Eventee API, a lecture requires a hall_id, an array of speakers, a type, and an array of tracks. If any of these foreign keys are missing or invalid, the API rejects the payload. An LLM has no inherent context of this relational graph. Your MCP server must expose tools with highly descriptive JSON schemas that explicitly force the LLM to look up halls and speakers before attempting to assemble a lecture payload.
Complex Bulk Mutations and State Replacements
Many Eventee endpoints expect full state replacements rather than partial updates. For example, updating an event partner (sponsor or exhibitor) using eventee_partners_bulk_update requires passing an array of all sections. Sections without an ID are created, sections with an ID are updated, and sections omitted from the array are destructively deleted. If an LLM attempts a naive patch by only sending the fields it wants to change, it will wipe out the rest of the partner's profile. You must engineer your MCP tool schemas to carefully instruct the LLM on exactly how to construct these bulk arrays.
Explicit Access Revocation
Managing attendees is not standard CRUD. If an attendee cancels, you cannot simply issue a standard DELETE request to a user record. You must use eventee_participants_bulk_delete to revoke their event access and strip linked information. Exposing this domain logic to Claude requires mapping specific procedural endpoints rather than generic REST models.
Handling Rate Limits and Egress
Eventee enforces strict API quotas. When building an MCP integration, developers often mistakenly build retry loops directly into the MCP server. Truto takes a different architectural approach. Factual note on rate limits: Truto does not retry, throttle, or apply backoff on rate limit errors. When an upstream API returns HTTP 429, Truto passes that error directly to the caller. Truto normalizes upstream rate limit info into standardized headers (ratelimit-limit, ratelimit-remaining, ratelimit-reset) per the IETF spec. The caller - your LLM orchestration layer or agent framework - is responsible for handling retry/backoff logic. This ensures your agent is aware of the quota failure and can pause execution or inform the user, rather than hanging indefinitely on a server-side retry loop.
How to Generate the Eventee MCP Server
Truto dynamically generates MCP tools from Eventee's API documentation and your integration's config.resources. Every connected Eventee account (an Integrated Account) can have multiple secure MCP servers scoped to it. Tools are never hard-coded; they are derived on the fly, ensuring schema accuracy.
You can generate an MCP server for Eventee via the Truto UI or programmatically via the API.
Method 1: Via the Truto UI
For administrators setting up Claude Desktop manually, the UI provides a one-click generation path.
- Log into Truto and navigate to your connected Eventee Integrated Account page.
- Click the MCP Servers tab.
- Click Create MCP Server.
- Select your desired configuration. You can filter by methods (e.g., selecting
readonly) or by tags to restrict the tool surface area. - Click Save and copy the generated MCP server URL. It will look like
https://api.truto.one/mcp/a1b2c3d4e5f6...
Method 2: Via the Truto API
If you are provisioning environments dynamically for a team of event managers, you can generate the MCP server via a REST call.
Send a POST request to /integrated-account/:id/mcp with your desired configuration:
curl -X POST https://api.truto.one/integrated-account/<EVENTEE_ACCOUNT_ID>/mcp \
-H "Authorization: Bearer YOUR_TRUTO_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"name": "Eventee Logistics Agent",
"config": {
"methods": ["read", "write", "custom"]
}
}'The API generates a cryptographic token, hashes it in Cloudflare KV, and returns a ready-to-use URL:
{
"id": "evt-mcp-123",
"name": "Eventee Logistics Agent",
"config": { "methods": ["read", "write", "custom"] },
"expires_at": null,
"url": "https://api.truto.one/mcp/a1b2c3d4e5f6..."
}How to Connect the MCP Server to Claude
Once you have the Truto MCP URL, you need to register it with your LLM client. Since Truto hosts the server, you do not need to clone any repositories or manage local Python environments.
Method A: Via the Claude UI
If you are using Claude's enterprise or team tiers with UI-based connector management:
- Open Claude and navigate to Settings -> Integrations. (In ChatGPT, this would be Settings -> Connectors -> Add custom connector).
- Click Add MCP Server.
- Paste the Truto MCP URL you generated.
- Click Add. Claude will immediately perform a JSON-RPC handshake (
initializeandtools/list) to discover all available Eventee tools.
Method B: Via Manual Config File (Claude Desktop)
For local Claude Desktop installations, you define the server using the claude_desktop_config.json file. Because Truto provides a remote HTTPS endpoint, you use the official @modelcontextprotocol/server-sse package to handle the Server-Sent Events transport.
Edit your configuration file (located at ~/Library/Application Support/Claude/claude_desktop_config.json on macOS or %APPDATA%\Claude\claude_desktop_config.json on Windows):
{
"mcpServers": {
"eventee_truto": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-sse",
"https://api.truto.one/mcp/a1b2c3d4e5f6..."
]
}
}
}Restart Claude Desktop. The Eventee tools are now available for Claude to call during conversations.
Hero Tools for Eventee
Truto exposes the entirety of the Eventee API through MCP, translating query and body parameters into a flat JSON namespace for the LLM. Rather than listing every single CRUD operation, let's examine the most powerful "hero tools" that unlock complex event workflows.
list_all_eventee_participants
This tool retrieves the attendee directory, returning IDs, names, emails, check-in timestamps, companies, and roles. It is essential for auditing guest lists or finding a specific attendee_id before performing an update or revocation.
"Claude, pull the list of all participants currently registered for our Eventee event. Filter the output to show me only those who have a check-in timestamp from today."
eventee_participants_invite
Triggers the invitation workflow for attendees. The API returns a result envelope per attendee, including their unique registration URL and QR code data.
"I have a VIP guest named Sarah Jenkins (sarah.j@example.com) who needs access. Please use the Eventee tools to invite her to the event and print the resulting registration URL for me."
create_a_eventee_lecture
Creates a new session in the event agenda. Because of Eventee's strict relational model, this tool requires the LLM to pass a valid hall_id, an array of speakers, the type of session, and the associated tracks.
"We need to add a new session to the schedule called 'Future of AI Integration' running from 10:00 AM to 11:00 AM tomorrow. First, find the hall ID for the 'Main Stage'. Then, create the lecture in Eventee using that hall ID."
eventee_partners_bulk_update
This is a complex state-replacement tool. It replaces all sections of a partner's (sponsor or exhibitor) profile based on the array provided. Sections missing from the array are deleted. This allows Claude to rapidly reformat and update tier-one sponsor profiles.
"We need to update Acme Corp's partner profile. Use their partner ID to execute a bulk update. Keep their existing company name and email, but add a new exhibitor_info section stating their booth number is B45."
create_a_eventee_speaker
Provisions a new speaker profile in the event. Returns the speaker ID, which is strictly required when assembling a lecture payload.
"Create a new speaker profile for John Doe from Tech Innovations. His phone number is 555-0199. Once created, save his speaker ID because we will need to assign him to the afternoon workshop."
eventee_event_bulk_delete
A highly destructive administrative tool that clears all content from an Eventee event in a single call. It deletes every hall, lecture, track, pause, speaker, and workshop. This is typically used to reset a sandbox event after testing.
"We are done testing our staging event. Please clear all test content by executing the event bulk delete tool. Confirm once the operation returns a success status."
For the complete inventory of Eventee tools and their JSON schemas, visit the Eventee integration page.
Workflows in Action
Exposing individual endpoints is useful, but the real power of connecting Claude to Eventee via MCP is executing multi-step orchestrations. Here are two concrete examples of how Claude navigates the Eventee relational graph.
Scenario 1: Last-Minute Agenda Reshuffle
An event manager finds out a speaker is sick and needs to completely rewrite an afternoon session slot. They ask Claude to handle the database updates.
"Our 2 PM speaker for 'Cloud Architecture' dropped out. We are replacing the session with a new lecture called 'Serverless Best Practices', hosted by Jane Smith from DevCorp. Jane's phone is 555-9012. Please delete the old lecture, create Jane as a speaker, find the 'Workshop Room' hall ID, and schedule the new lecture for 2 PM to 3 PM."
Execution Steps:
sequenceDiagram
participant User
participant ClaudeDesktop as Claude Desktop
participant TrutoMCP as Truto MCP Server
participant EventeeAPI as Eventee API
User->>ClaudeDesktop: "Replace 2 PM session..."
ClaudeDesktop->>TrutoMCP: call delete_a_eventee_lecture_by_id(id: "lec_123")
TrutoMCP->>EventeeAPI: DELETE /lectures/lec_123
EventeeAPI-->>TrutoMCP: 204 No Content
TrutoMCP-->>ClaudeDesktop: Success
ClaudeDesktop->>TrutoMCP: call create_a_eventee_speaker(name: "Jane Smith", company: "DevCorp")
TrutoMCP->>EventeeAPI: POST /speakers
EventeeAPI-->>TrutoMCP: { "id": "spk_456", ... }
TrutoMCP-->>ClaudeDesktop: speaker ID returned
ClaudeDesktop->>TrutoMCP: call create_a_eventee_lecture(hall_id, speakers: ["spk_456"], start, end)
TrutoMCP->>EventeeAPI: POST /lectures
EventeeAPI-->>TrutoMCP: { "id": "lec_789", ... }
TrutoMCP-->>ClaudeDesktop: Lecture created
ClaudeDesktop-->>User: "The old session is removed and Jane's session is live."Result:
Claude successfully resolves the relational dependencies. It knows it must wait for the create_a_eventee_speaker response to extract spk_456 before it can construct the valid payload for create_a_eventee_lecture.
Scenario 2: Sponsor Onboarding and VIP Invite
A partnerships manager signs a new tier-one sponsor. They want Claude to build out the sponsor's profile and immediately issue an attendee invite to the primary contact.
"We just signed GlobalTech as a sponsor. Create their partner profile in Eventee. Then, use the bulk update tool to add a sponsor_info section marking them as 'Platinum'. Finally, invite their rep, Mark Johnson (mark@globaltech.com), as an attendee."
Execution Steps:
create_a_eventee_partner: Claude creates the base partner record for GlobalTech and extracts the newpartner_id.eventee_partners_bulk_update: Using the ID, Claude submits a full state array containing the company name and the newly requiredsponsor_infoobject defining the Platinum tier.eventee_participants_invite: Claude issues an invite request for Mark Johnson, generating his QR code and registration URL.
Result: Claude returns a natural language summary to the user: "GlobalTech has been created and upgraded to Platinum status. Mark Johnson's VIP invite has been processed. Here is his registration link: https://..."
Security and Access Control
Because Eventee contains sensitive participant data (emails, locations) and destructive capabilities (like eventee_event_bulk_delete), managing what Claude can do is critical. Truto MCP servers provide four core security controls configured during server creation:
- Method Filtering (
config.methods): You can restrict an MCP server to specific HTTP verbs. Creating a server withmethods: ["read"]ensures Claude can list participants and schedules but cannot invite users, update partner profiles, or delete lectures. - Tag Filtering (
config.tags): Eventee tools are grouped by tags. You can scope a server to only expose tools tagged with"agenda"or"sponsors", hiding attendee management endpoints entirely from the LLM context. - API Token Authentication (
require_api_token_auth): By default, the cryptographic MCP URL is the only secret needed. Enabling this flag forces the client to also pass a valid Truto API Bearer token in the headers, adding a secondary identity check useful for shared enterprise environments. - Automatic Expiration (
expires_at): You can generate ephemeral MCP servers that automatically self-destruct. Truto uses Cloudflare KV TTLs and Durable Object alarms to purge the token and configurations from the database once the timestamp is reached, ensuring no stale access points remain.
Connecting Eventee to Claude transforms static event data into an agentic workflow. By leveraging a managed MCP server, your engineering team avoids writing endless orchestration scripts for Eventee's relational graph, while your event managers gain a tireless, AI-driven logistics coordinator.
FAQ
- How do I connect Eventee to Claude?
- You can connect Eventee to Claude by generating an MCP server URL through Truto (via UI or API) and adding it to Claude Desktop's integration settings or the claude_desktop_config.json file using the SSE transport protocol.
- Does Truto handle Eventee API rate limits automatically?
- No. Truto does not retry, throttle, or apply backoff on rate limit errors. If the Eventee API returns an HTTP 429, Truto passes the error to Claude and normalizes the rate limit data into standard IETF headers (ratelimit-limit, ratelimit-remaining, ratelimit-reset).
- Can I limit which Eventee operations Claude can perform?
- Yes. When configuring your MCP server in Truto, you can use method filtering (e.g., read-only) or tag filtering to strictly limit the tools Claude can access, preventing unauthorized data modification.