Skip to content

Eventee MCP by usefulapi

io.usefulapi/eventeeusefulapi.iostreamable-httpv1.0.0Scanned

Read an Eventee event's program, participants and reviews; create sessions, speakers; invite.

18 tools: 6 can delete or cancel things, 6 change things and 6 only read.

Tools: 6 delete, 0 irreversible, 6 write, 6 read.
  • Reads private data · 2
  • Reads text others write · 18
  • Can send data out · 2
  • No findings

Anlyon alternative

12 of these tools change something. Run those as governed actions.

Declare what an action changes, and Anlyon puts it under a shared limit, binds every approval to the exact request, and grades the outcome. It works on any HTTPS API you can describe as an action.

Anlyon does not run, proxy or govern this MCP server. A tool your own code calls directly is not routed through Anlyon and is not governed by it.

Import an OpenAPI spec →

Tools

Grouped by what each tool does, most consequential first. Open one for its reasons and full description; descriptions are the publisher's own words.

18 tools

Deletes or cancels 6Claude Code: deny
  • eventee_delete_sessionWRITE, IRREVERSIBLE: delete a session (lecture or workshop) together with its questions, polls, workshop bookings and ratings.Reads text others writeNo findings

    Why it is in this group

    • The name "eventee_delete_session" says "delete": a word for removing or ending something.
    • The description says "IRREVERSIBLE".
    • The server marks it destructive (destructiveHint: true).

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    WRITE, IRREVERSIBLE: delete a session (lecture or workshop) together with its questions, polls, workshop bookings and ratings. Needs confirm: true (without it: a preview, nothing deleted). DELETE /public/api/v1/lecture/{session_id}.

    Annotations the server declares

    • title: Delete session
    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: true
    • openWorldHint: true
  • eventee_invite_attendeesWRITE: add up to 100 people to the event as attendees, optionally with a group and tickets.Reads text others writeCan send data outNo findings

    Why it is in this group

    • The name "eventee_invite_attendees" says "invite": a word for sending, and what is sent cannot be taken back.
    • The server marks it destructive (destructiveHint: true).

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    • outboundThe name "eventee_invite_attendees" says "invite": it sends or publishes something to other people.
    Description, as the server wrote it
    WRITE: add up to 100 people to the event as attendees, optionally with a group and tickets. People who already have an Eventee account are added directly; others get a profile that links when they sign up with the same email. With send_email=true Eventee SENDS AN INVITATION EMAIL to every person listed (default false: no email); sending needs confirm: true (without it: a preview, nothing sent or added). Invalid entries and the event's admins/moderators are skipped silently by Eventee, so re-read eventee_list_participants to confirm. The first 25 are processed immediately, the rest in the background. Tickets replace the person's existing tickets. PUT /public/api/v1/attendee/invite.

    Annotations the server declares

    • title: Invite attendees
    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: false
    • openWorldHint: true
  • eventee_register_peopleWRITE: pre-register up to 100 people for the event (an existing registration with the same email is updated, not duplicated).Reads text others writeNo findings

    Why it is in this group

    • The description's first verb is "write": a word for a change.
    • The server marks it destructive (destructiveHint: true).

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    WRITE: pre-register up to 100 people for the event (an existing registration with the same email is updated, not duplicated). With send_email=true Eventee SENDS A REGISTRATION EMAIL to every person listed (default false: no email); sending needs confirm: true (without it: a preview, nothing sent or registered). Invalid entries are skipped silently by Eventee, so re-read eventee_list_registrations to confirm. PUT /public/api/v1/registration/invite.

    Annotations the server declares

    • title: Pre-register people
    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: false
    • openWorldHint: true
  • eventee_remove_attendeeWRITE, IRREVERSIBLE: remove the person with this email from the event: their participation, invitation and tickets for this event are deleted (their Eventee account is not).Reads text others writeNo findings

    Why it is in this group

    • The name "eventee_remove_attendee" says "remove": a word for removing or ending something.
    • The description says "IRREVERSIBLE".
    • The server marks it destructive (destructiveHint: true).

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    WRITE, IRREVERSIBLE: remove the person with this email from the event: their participation, invitation and tickets for this event are deleted (their Eventee account is not). Eventee reports success even when nobody had that email. Needs confirm: true (without it: a preview, nothing removed). DELETE /public/api/v1/attendee?email=.

    Annotations the server declares

    • title: Remove attendee
    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: true
    • openWorldHint: true
  • eventee_remove_registrationWRITE, IRREVERSIBLE: delete the registration with this email.Reads text others writeNo findings

    Why it is in this group

    • The name "eventee_remove_registration" says "remove": a word for removing or ending something.
    • The description says "IRREVERSIBLE".
    • The server marks it destructive (destructiveHint: true).

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    WRITE, IRREVERSIBLE: delete the registration with this email. Eventee reports success even when no such registration exists. Needs confirm: true (without it: a preview, nothing deleted). DELETE /public/api/v1/registration?email=.

    Annotations the server declares

    • title: Remove registration
    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: true
    • openWorldHint: true
  • eventee_update_sessionWRITE: replace a session (full update, not a patch).Reads text others writeNo findings

    Why it is in this group

    • The name "eventee_update_session" says "update": a word for a change.
    • The server marks it destructive (destructiveHint: true).

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    WRITE: replace a session (full update, not a patch). Eventee RESETS what is omitted: speakers, labels, type, capacity and the Q&A / moderation / polling switches, so `type`, `speaker_ids`, `label_ids`, `capacity`, `discussion`, `moderating` and `polling` are required here; read the session first with eventee_get_program and pass its current values (an empty list removes all). The hall and live stream are kept when omitted. `start` must fall on an existing day of the event. PATCH /public/api/v1/lecture/{session_id}.

    Annotations the server declares

    • title: Update session
    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: true
    • openWorldHint: true
Changes things 6Claude Code: ask
  • eventee_check_in_attendeeWRITE: check a participant in at the event (sets checked_at to now) or undo the check-in.Reads text others writeNo findings

    Why it is in this group

    • The description's first verb is "write": a word for a change.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    WRITE: check a participant in at the event (sets checked_at to now) or undo the check-in. Use the participant `id` from eventee_list_participants. Fails if the person is not a participant of the event. PATCH /public/api/v1/attendee/{attendee_id}/checkin.

    Annotations the server declares

    • title: Check in attendee
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: true
  • eventee_create_breakWRITE: add a break (coffee, lunch...) to the event program on the day of `start` (created if missing).Reads text others writeNo findings

    Why it is in this group

    • The name "eventee_create_break" says "create": a word for a change.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    WRITE: add a break (coffee, lunch...) to the event program on the day of `start` (created if missing). POST /public/api/v1/pause.

    Annotations the server declares

    • title: Create break
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: true
  • eventee_create_hallWRITE: add a hall (room, stage or virtual space) to the event.Reads text others writeNo findings

    Why it is in this group

    • The name "eventee_create_hall" says "create": a word for a change.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    WRITE: add a hall (room, stage or virtual space) to the event. Use the returned id as hall_id for sessions. POST /public/api/v1/hall.

    Annotations the server declares

    • title: Create hall
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: true
  • eventee_create_labelWRITE: add a label (track) for sessions, with a colour.Reads text others writeNo findings

    Why it is in this group

    • The name "eventee_create_label" says "create": a word for a change.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    WRITE: add a label (track) for sessions, with a colour. Use the returned id in label_ids of a session. POST /public/api/v1/label.

    Annotations the server declares

    • title: Create label
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: true
  • eventee_create_sessionWRITE: add a session (lecture or workshop) to the event program.Reads text others writeNo findings

    Why it is in this group

    • The name "eventee_create_session" says "create": a word for a change.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    WRITE: add a session (lecture or workshop) to the event program. It appears in the event app for attendees. The event day is taken from `start` and created if missing. The hall, speakers and labels must already exist (create them first and pass their ids). POST /public/api/v1/lecture.

    Annotations the server declares

    • title: Create session
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: true
  • eventee_create_speakerWRITE: add a speaker profile to the event (shown in the event app).Reads text others writeCan send data outNo findings

    Why it is in this group

    • The name "eventee_create_speaker" says "create": a word for a change.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    • outboundThe input takes a destination (input.phone): what the tool writes goes there.
    Description, as the server wrote it
    WRITE: add a speaker profile to the event (shown in the event app). Use the returned id in speaker_ids of a session. The photo, if given, is downloaded by Eventee from the URL. POST /public/api/v1/speaker.

    Annotations the server declares

    • title: Create speaker
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: true
Only reads 6Show 6 read-only tools
  • eventee_get_programThe whole program of the event the API token belongs to: halls, event days, sessions (`lectures`, type 0), workshops (type 1, with capacity and bookings), breaks (`pauses`), speake…Reads text others writeNo findings

    Why it is in this group

    • The name "eventee_get_program" says "get": a word for reading.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    The whole program of the event the API token belongs to: halls, event days, sessions (`lectures`, type 0), workshops (type 1, with capacity and bookings), breaks (`pauses`), speakers and labels (`tracks`). Use it to read back ids (hall_id, speaker ids, label ids, session ids) before changing anything. Replies are compact: long texts are clipped (description_max), each part is paged (limit/offset, `more` maps each part with further rows to the offset to continue from; the reply is cut to a size budget, so for big events read one part at a time with `parts`) and `parts` selects what to read. Times are in the event's time zone. GET /public/api/v1/content.

    Annotations the server declares

    • title: Get event program
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • eventee_list_groupsAttendee groups of the event with the app features enabled for each (agenda, questions, polling, networking, ratings, ...), the ticket names that put people into the group automati…Reads text others writeNo findings

    Why it is in this group

    • The name "eventee_list_groups" says "list": a word for reading.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    • untrusted-inputThe description's first sentence says "ticket": it reads issues, which other people can write.
    Description, as the server wrote it
    Attendee groups of the event with the app features enabled for each (agenda, questions, polling, networking, ratings, ...), the ticket names that put people into the group automatically, and which group is the default. Use the ids as group_id when inviting or registering people. GET /public/api/v1/groups.

    Annotations the server declares

    • title: List attendee groups
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • eventee_list_participantsParticipants of the event (attendees, speakers, moderators, admins) with role, group, tickets, check-in time and registration time.Reads text others writeNo findings

    Why it is in this group

    • The name "eventee_list_participants" says "list": a word for reading.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    • untrusted-inputThe description's first sentence says "ticket": it reads issues, which other people can write.
    Description, as the server wrote it
    Participants of the event (attendees, speakers, moderators, admins) with role, group, tickets, check-in time and registration time. `role`: a = admin, m = moderator, l = speaker, e = attendee. `checked_at` is null until checked in. Anonymous participants and deleted accounts have a placeholder email without '@'. The personal app link of each participant is not returned. Filters apply after the full list is read; use limit/offset for large events. GET /public/api/v1/participants.

    Annotations the server declares

    • title: List participants
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • eventee_list_partnersPartners (sponsors and exhibitors) of the event with company details, contact data, code and page sections.Reads private dataReads text others writeNo findings

    Why it is in this group

    • The name "eventee_list_partners" says "list": a word for reading.

    What it can reach

    • private-dataThe description's first sentence says "contact": it reads contacts.
    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    Partners (sponsors and exhibitors) of the event with company details, contact data, code and page sections. GET /public/api/v1/partners.

    Annotations the server declares

    • title: List partners
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • eventee_list_registrationsRegistrations of the event (people who registered or were pre-registered) with status (pending / confirmed / declined), group, contact details and registration-form answers.Reads private dataReads text others writeNo findings

    Why it is in this group

    • The name "eventee_list_registrations" says "list": a word for reading.

    What it can reach

    • private-dataThe description's first sentence says "contact": it reads contacts.
    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    Registrations of the event (people who registered or were pre-registered) with status (pending / confirmed / declined), group, contact details and registration-form answers. Filters apply after the full list is read; use limit/offset for large events. GET /public/api/v1/registrations.

    Annotations the server declares

    • title: List registrations
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • eventee_list_reviewsSession ratings left by attendees (1-5 stars with optional comment), each with the rated session, plus a per-session summary (count and average stars; the 50 most reviewed sessions…Reads text others writeNo findings

    Why it is in this group

    • The name "eventee_list_reviews" says "list": a word for reading.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    • untrusted-inputThe name "eventee_list_reviews" says "list" and "review": it reads comments, which other people can write.
    • untrusted-inputThe description's first sentence says "comment": it reads comments, which other people can write.
    Description, as the server wrote it
    Session ratings left by attendees (1-5 stars with optional comment), each with the rated session, plus a per-session summary (count and average stars; the 50 most reviewed sessions, `summary_truncated` says if more exist: use session_id for a specific one). Filters apply after the full list is read. GET /public/api/v1/reviews.

    Annotations the server declares

    • title: List session reviews
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true

This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.

Exfil surface

Which tools read private data, which read text someone else can write, and which can send data out. One of each is a path a prompt injection can use.

72 paths in this server alone from private data, through text someone else wrote, to a way out. Denying 2 outbound tools breaks every one.

Reads private data2
Reads files, mail, messages, databases, secrets, calendars or repositories.
Can send data out2
Can carry data to people or systems: it sends, posts or publishes, or takes a recipient, channel or URL.
deny to break every path
{
  "permissions": {
    "deny": [
      "mcp__eventee__eventee_create_speaker",
      "mcp__eventee__eventee_invite_attendees"
    ]
  }
}

Other servers in the same agent add their own tools to these paths. Audit your whole setup to see them together.

Findings

Matches of fixed checks, with the text they matched.

No check matched anything in these tool definitions. That is not a safety guarantee.

History

Changes to its tool definitions and to its remote endpoint, newest first.

No change seen yet. Its tools are rescanned every day, and a remote endpoint is looked at once a week.

Install

Pinned to version 1.0.0. Values in angle brackets are yours to fill in.

claude mcp add --transport http eventee https://eventee.usefulapi.io/mcp
claude mcp add --transport http eventee https://eventee.usefulapi.io/mcp

Run in a terminal.

Claude Code permissions

Allow the reads, ask before a change or a way out, deny the deletes. Paste into .claude/settings.json.

.claude/settings.json
{
  "permissions": {
    "allow": [
      "mcp__eventee__eventee_get_program",
      "mcp__eventee__eventee_list_participants",
      "mcp__eventee__eventee_list_registrations",
      "mcp__eventee__eventee_list_groups",
      "mcp__eventee__eventee_list_reviews",
      "mcp__eventee__eventee_list_partners"
    ],
    "ask": [
      "mcp__eventee__eventee_create_session",
      "mcp__eventee__eventee_create_hall",
      "mcp__eventee__eventee_create_break",
      "mcp__eventee__eventee_create_label",
      "mcp__eventee__eventee_create_speaker",
      "mcp__eventee__eventee_check_in_attendee"
    ],
    "deny": [
      "mcp__eventee__eventee_update_session",
      "mcp__eventee__eventee_delete_session",
      "mcp__eventee__eventee_invite_attendees",
      "mcp__eventee__eventee_register_people",
      "mcp__eventee__eventee_remove_attendee",
      "mcp__eventee__eventee_remove_registration"
    ]
  }
}

Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. A read that can send data out (it takes a URL, say) asks first too. It assumes the server is installed as eventee. Review it before you use it.

Capability tags behind 18 rules
  • mcp__eventee__eventee_get_program untrusted-input
  • mcp__eventee__eventee_list_participants untrusted-input
  • mcp__eventee__eventee_list_registrations private-data, untrusted-input
  • mcp__eventee__eventee_list_groups untrusted-input
  • mcp__eventee__eventee_list_reviews untrusted-input
  • mcp__eventee__eventee_list_partners private-data, untrusted-input
  • mcp__eventee__eventee_create_session untrusted-input
  • mcp__eventee__eventee_update_session untrusted-input
  • mcp__eventee__eventee_delete_session untrusted-input
  • mcp__eventee__eventee_create_hall untrusted-input
  • mcp__eventee__eventee_create_break untrusted-input
  • mcp__eventee__eventee_create_label untrusted-input
  • mcp__eventee__eventee_create_speaker untrusted-input, outbound
  • mcp__eventee__eventee_invite_attendees untrusted-input, outbound
  • mcp__eventee__eventee_register_people untrusted-input
  • mcp__eventee__eventee_check_in_attendee untrusted-input
  • mcp__eventee__eventee_remove_attendee untrusted-input
  • mcp__eventee__eventee_remove_registration untrusted-input

Pin

Keep the decision: fail CI when the tools change, follow every change, or show a badge.

Pin in CI

Fail a build when the tools you reviewed are not the tools the server serves today.

curl -s "https://anlyon.dev/api/v1/servers/io.usefulapi/eventee/verify?hash=48edcc3369631c6a3c09d8ea306ef7c481e83b05c86ab0f01189f554ba1437a0" | jq -e '.changed == false'

Pinned hash 48edcc336963, from Oct 24, 2026, 16:20 UTC.

Watch

Get told when its tools change: a new tool, a new description, a new class.

https://anlyon.dev/servers/io.usefulapi/eventee/changes.xml

An Atom feed. Works in any feed reader or Slack's RSS app.

Badge

anlyon.dev badge for io.usefulapi/eventee
[![anlyon.dev](https://anlyon.dev/badge/io.usefulapi/eventee.svg)](https://anlyon.dev/servers/io.usefulapi/eventee)

Source: MCP Registry · repository. Synced Oct 24, 2026, 17:17 UTC.