# realevents [Health: Active]

**Category:** 💻 Developer Tools  
**Repository:** https://github.com/ykastelnik/realevents-mcp  
**GitHub Stars:** 1  
**Views:** 0  
**Installs:** 0  
**Upvotes:** 0  
**Directory Page:** https://allmcps.com/mcp/realevents

## Description
Create and manage events in seconds from your AI assistant. No account needed.

## Claude Desktop Quick Installation
Install path detected from listing signals. Uses `npx` (confidence: high):

```json
"mcpServers": {
  "realevents": {
    "command": "npx",
    "args": ["-y","realevents-mcp"]
  }
}
```

## Documentation & README

# RealEvents MCP Server

Create and manage events on [RealEvents](https://realevents.co) from any MCP-compatible AI assistant.

[![CI](https://github.com/ykastelnik/realevents-mcp/actions/workflows/test.yml/badge.svg)](https://github.com/ykastelnik/realevents-mcp/actions/workflows/test.yml)
[![CodeQL](https://github.com/ykastelnik/realevents-mcp/actions/workflows/codeql.yml/badge.svg)](https://github.com/ykastelnik/realevents-mcp/actions/workflows/codeql.yml)
[![npm version](https://img.shields.io/npm/v/realevents-mcp.svg)](https://www.npmjs.com/package/realevents-mcp)
[![npm downloads](https://img.shields.io/npm/dm/realevents-mcp.svg)](https://www.npmjs.com/package/realevents-mcp)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)

Documentation and install snippets: https://realevents.co/mcp

## Install

```json
{
  "mcpServers": {
    "realevents": {
      "command": "npx",
      "args": ["-y", "realevents-mcp"]
    }
  }
}
```

For Claude Desktop on macOS, the config file is at `~/Library/Application Support/Claude/claude_desktop_config.json`. For other clients, see their MCP documentation.

## Tools

Public, no token needed:

| Tool | Description |
|------|-------------|
| `list_public_events` | Browse upcoming public events. Filter by format, date range or search term. |
| `get_event` | Get an event's public details by slug. Follows old links after a slug change. |
| `register_for_event` | RSVP for an attendee: going, maybe or not going, with plus-ones and a note. |
| `create_event` | Create a new event page. Returns the public link and the manage link. |

Organizer tools, all requiring the manage token:

| Tool | Description |
|------|-------------|
| `get_manage_event` | Full event details plus the guest list. |
| `list_registrations` | The guest list on its own, optionally filtered to confirmed / maybe / declined. |
| `get_event_stats` | Page views, head-count, remaining capacity, view-to-attendance rate. |
| `update_event` | Change any event detail or setting. |
| `duplicate_event` | Copy the event into a new draft one week later. |
| `cancel_event` | Mark the event cancelled. The page stays online. |
| `set_cover` | Set the cover image from a public image URL. |
| `list_comments` | Read the guest conversation: questions, replies and reactions. |
| `post_comment` | Post to the thread as the organizer. Visible to every guest who RSVPed. |

Comments only work on events where the organizer has switched them on
(`update_event` with `allow_comments: true`). Until then both comment tools return
a message saying exactly that.

### Cover images

`set_cover` takes a **public image URL**, not a file. MCP tool arguments are JSON
text, so an assistant cannot hand a local image to the server; if the picture is on
the user's computer, the manage page's upload does the job better anyway (drag and
drop, preview, crop). Around 1200px wide or more looks best - `set_cover` says so
when the image is smaller rather than silently accepting a thumbnail.

### Timezones

`create_event` takes a `timezone` (an IANA name such as `Europe/Paris`) alongside
`start_datetime`. **Set it.** The start time is interpreted in that zone, and the
zone defaults to UTC, so creating an event for `19:00` without one produces a page
that reads 19:00 UTC: the wrong hour for everyone outside it.

Prefer a local time with no trailing `Z`:

```
start_datetime: "2026-06-15T19:00:00"
timezone:       "Europe/Paris"
```

### Attendance is counted in people

An event's attendance figure is a head-count: confirmed guests plus everyone they
bring. A guest arriving with three others takes four of the available places, so a
party can be refused on an event that still shows free rows. When that happens the
error states how many places are left, so the call can be retried with a smaller
party rather than reported as a failure.

Plus-ones only attach to a `confirmed` answer, and are capped by the event's own
`plus_ones_limit` (0 disables them). When the organizer collects names rather than
a headcount, every declared guest needs one. `get_event` reports both settings.

## Manage token

Events created with `create_event` return a `manage_token`. Save it: it is the only
way to manage the event later.

To set a default token so you don't have to pass it on every call:

```json
{
  "mcpServers": {
    "realevents": {
      "command": "npx",
      "args": ["-y", "realevents-mcp"],
      "env": {
        "REALEVENTS_MANAGE_TOKEN": "your-token"
      }
    }
  }
}
```

## Security

Signed with [npm Provenance](https://docs.npmjs.com/generating-provenance-statements), built from this repository via GitHub Actions. Every published version is traceable back to the exact commit and workflow run that built it.

## Links

- [realevents.co](https://realevents.co)
- [Documentation](https://realevents.co/mcp)
- [GitHub repository](https://github.com/ykastelnik/realevents-mcp)
- [MCP Registry listing](https://registry.modelcontextprotocol.io/v0/servers?search=realevents)

## For maintainers: publishing checklist

Before publishing a new version:

1. Bump `version` in `package.json`
2. Verify `mcpName: "io.github.ykastelnik/realevents"` is still present
3. Bump `version` and `packages[0].version` in `server.json` to match
4. Tag `vX.Y.Z` and push: the `publish.yml` workflow handles the npm publish
5. Locally: `./mcp-publisher publish` to sync the MCP Registry listing

## License

MIT

