Skip to main content
Developers

JustOneEvent MCP server

JustOneEvent exposes an MCP (Model Context Protocol) server: connect Claude Desktop, Cursor or any compatible MCP client to create and manage your events in natural language.

Authentication

Generate an API key in your dashboard, then send it in the Authorization header of every request (personal key or OAuth token):

Authorization: Bearer joe_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Each key only acts on your account. Revocable at any time from the dashboard.

Connect

Generate an API key in your dashboard, then add this block to your MCP client config (replace the token):

{
  "mcpServers": {
    "justoneevent": {
      "url": "https://www.justoneevent.com/mcp",
      "headers": {
        "Authorization": "Bearer joe_live_xxx"
      }
    }
  }
}

Each key only acts on the account that created it. Revoke it anytime from the dashboard.

Endpoint reference

Click an endpoint to see its parameters, request body and an example response. All responses are JSON.

Authenticated — API key required

POST /api/v1/events

Create an event (title, description, location, dates, capacity, visibility).

Request body

{
  "title":        "string   (required, 3–200)",
  "description":  "string   (required)",
  "location":     "string   (required)",
  "start_date":   "string   (required, ISO-8601)",
  "end_date":     "string   (optional, defaults to start_date)",
  "max_capacity": "integer  (optional, 1–10000, default 100)",
  "is_public":    "boolean  (optional, default false)",
  "city":         "string   (optional, ≤120)",
  "image_query":  "string   (optional, auto-fetch a stock cover)",
  "custom_fields":[{ "label":"string", "field_type":"text|integer|select|multi_select|checkbox",
                     "required":false, "options":["…"] }]
}

Example responses

{ "id": "uuid", "slug": "my-event",
  "event_url": "https://www.justoneevent.com/events/my-event",
  "admin_url": "https://www.justoneevent.com/dashboard/events/uuid/edit" }
GET /api/v1/me/events

List your events (active, past or all) with registration counts.

Parameters

status = active | past | all   (default active)
limit  = 1–100                 (default 20)

Example responses

{ "items": [ { "id":"uuid","slug":"…","title":"…","start_date":"…",
    "registration_count":0,"max_capacity":100,
    "is_published":true,"is_cancelled":false,"event_url":"…" } ], "count": 1 }
GET /api/v1/me/events/{id}

Get the details and registration stats of an event.

Example responses

{ "id":"uuid","slug":"…","title":"…","description":"…","location":"…",
  "start_date":"…","end_date":"…","timezone":"UTC","max_capacity":100,
  "is_published":true,"is_cancelled":false,
  "registrations_total":0,"registrations_confirmed":0,"event_url":"…" }
GET /api/v1/me/events/{id}/registrations

List an event's registrants (paid plans only).

Example responses

{ "items": [ { "name":"…","email":"…","registered_at":"…",
    "status":"Confirmed","checked_in":false } ], "count": 1 }
POST /api/v1/me/events/{id}/cancel

Cancel an event (explicit confirmation required).

Request body

{ "reason": "string (optional)" }

Example responses

{ "id":"uuid","cancelled":true,"reason":"…","registrants_notified":12 }

Public read-only — no key

GET /api/v1/events

List public, published, upcoming events.

Parameters

limit  = 1–100 (default 50)
offset = ≥0    (default 0)
GET /api/v1/events/{slug}

Get a single public event by its slug.

GET /api/v1/use-cases· /api/v1/guides

Static lists of use-cases and guides (slugs + URLs).

OpenAPI

Full contract (all endpoints, fields and schemas): OpenAPI specification. Import it into Postman, Insomnia or a client generator.

Ready to connect your assistant?

Generate an API key in seconds from your dashboard.

Generate an API key