MCP tools reference

Meetup MCP tools

14 tools for Meetup on the Cotlet MCP server. Your agent picks them from tools/list.

MCP server
https://cotlet.dev/mcp/v1
Connects with
Your own Meetup account, as organizer or co-organizer of the group
Integration page
Meetup
Meetup Endpoints
Endpoint Access Description
meetup_list_groups read Groups you organize or co-organize, with member count and your role.
meetup_list_events read Events of a group with date, RSVP counts, attendee limit and status.
meetup_get_event read Full event: title, description, time, venue or online link, hosts, fee and settings.
meetup_list_attendees read RSVPs of an event with guests, answers and check-in status.
meetup_list_members read Members of your group with join date and role.
meetup_create_event write New event as a draft, or published without an announcement.
meetup_copy_event write Copy a past event to a new date, keeping its description, venue and settings.
meetup_update_event write Change the title, time, description, venue or attendee limit of an upcoming event.
meetup_announce_event write Send the announcement of a published event to your members.
meetup_update_attendee write Mark a member as attending, remove them, or move them off the waitlist.
meetup_mark_attendance write Set check-in status for attendees of an event, from 1 hour before it starts.
meetup_message_attendees write Send a message to the people who RSVPed going to an upcoming or past event.
meetup_message_members write Contact members of your group who opted in to organizer announcements.
meetup_cancel_event write Cancel an upcoming event. Attendees are notified and it cannot be undone.

MCP tool meetup_list_groups

Returns every group where you are organizer or co-organizer. Use group_urlname from each item as the group parameter of the other tools.

Parameters

No parameters.

tools/call

JSON-RPC

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "meetup_list_groups",
    "arguments": {}
  }
}

Example response

{
  "content": [
    {
      "type": "text",
      "text": "{ ... same JSON as structuredContent ... }"
    }
  ],
  "structuredContent": {
    "groups": [
      {
        "group_urlname": "tech-founders-berlin",
        "name": "Tech Founders Berlin",
        "role": "organizer",
        "members": 2140
      }
    ]
  },
  "isError": false
}

MCP tool meetup_list_events

Lists events of one group, soonest first for upcoming and newest first for past. Each item has the going and waitlist counts. get_event returns the full text.

Parameters

Parameters: list_events
NameTypeDescription
group_urlname required string Group URL name, e.g. tech-founders-berlin.
status enum upcoming, past, draft or cancelled. Default: upcoming.
limit integer 1 to 50. Default: 20.
cursor string Next page cursor from the previous call.

tools/call

JSON-RPC

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "meetup_list_events",
    "arguments": {
      "group_urlname": "https://example.com"
    }
  }
}

Example response

{
  "content": [
    {
      "type": "text",
      "text": "{ ... same JSON as structuredContent ... }"
    }
  ],
  "structuredContent": {
    "events": [
      {
        "event_id": "311204587",
        "title": "Python Night #23",
        "start_time": "2026-10-08T19:00:00+02:00",
        "status": "past",
        "going": 38,
        "waitlist": 0,
        "attendee_limit": 40
      }
    ],
    "next_cursor": null
  },
  "isError": false
}

Get event

read

MCP tool meetup_get_event

Returns one event with its full description, venue or online link, hosts and settings such as the attendee limit. Use it before copy_event or update_event.

Parameters

Parameters: get_event
NameTypeDescription
event_id required string Event ID from list_events.

tools/call

JSON-RPC

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "meetup_get_event",
    "arguments": {
      "event_id": "event_8c41d2"
    }
  }
}

Example response

{
  "content": [
    {
      "type": "text",
      "text": "{ ... same JSON as structuredContent ... }"
    }
  ],
  "structuredContent": {
    "event_id": "311204587",
    "title": "Python Night #23",
    "description": "Lightning talks and pizza.",
    "start_time": "2026-10-08T19:00:00+02:00",
    "duration_minutes": 120,
    "venue": {
      "name": "Co-Work Mitte",
      "address": "Torstr. 1",
      "city": "Berlin"
    },
    "attendee_limit": 40,
    "hosts": [
      "Dana K."
    ]
  },
  "isError": false
}

MCP tool meetup_list_attendees

Returns the RSVPs of one event with the guests each member brings, answers to your event questions and check-in status. Filter by status to see the waitlist or the no-shows.

Parameters

Parameters: list_attendees
NameTypeDescription
event_id required string Event ID from list_events.
status enum going, waitlist, not_going, checked_in, no_show or all. Default: going.
cursor string Next page cursor from the previous call.

tools/call

JSON-RPC

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "meetup_list_attendees",
    "arguments": {
      "event_id": "event_8c41d2"
    }
  }
}

Example response

{
  "content": [
    {
      "type": "text",
      "text": "{ ... same JSON as structuredContent ... }"
    }
  ],
  "structuredContent": {
    "attendees": [
      {
        "member_id": "402118",
        "name": "Ana L.",
        "status": "going",
        "guests": 1,
        "checked_in": false
      }
    ],
    "next_cursor": null
  },
  "isError": false
}

MCP tool meetup_list_members

Lists members of one group, newest first. Filter by join date to find new members. Pages hold up to 200 members; pass next_cursor back as cursor.

Parameters

Parameters: list_members
NameTypeDescription
group_urlname required string Group URL name, e.g. tech-founders-berlin.
joined_since date Only members who joined on or after this date.
limit integer 1 to 200. Default: 100.
cursor string Next page cursor from the previous call.

tools/call

JSON-RPC

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "meetup_list_members",
    "arguments": {
      "group_urlname": "https://example.com"
    }
  }
}

Example response

{
  "content": [
    {
      "type": "text",
      "text": "{ ... same JSON as structuredContent ... }"
    }
  ],
  "structuredContent": {
    "members": [
      {
        "member_id": "402118",
        "name": "Ana L.",
        "role": "member",
        "joined_at": "2026-10-01T18:21:00Z"
      }
    ],
    "next_cursor": "eyJvZmZzZXQiOjEwMH0"
  },
  "isError": false
}

Create event

write Confirm

MCP tool meetup_create_event

Creates an event in your group. It is saved as a draft unless publish is true. A published event is visible to everyone, but members are told only when you call announce_event. By default you confirm each call; you can switch that off for this tool.

Parameters

Parameters: create_event
NameTypeDescription
group_urlname required string Group URL name, e.g. tech-founders-berlin.
title required string Under 80 characters.
start_time required datetime ISO 8601 with time zone.
duration_minutes integer Default: 120.
description string Event description, Markdown.
venue object name, address and city, or online_url for an online event.
attendee_limit integer Turns on the waitlist when reached.
publish boolean Publish now or keep as draft. Default: false.

tools/call

JSON-RPC

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "meetup_create_event",
    "arguments": {
      "group_urlname": "tech-founders-berlin",
      "title": "Intro to SQL",
      "start_time": "2026-11-03T19:00:00+01:00",
      "duration_minutes": 120,
      "venue": {
        "name": "Co-Work Mitte",
        "address": "Torstr. 1",
        "city": "Berlin"
      },
      "attendee_limit": 40,
      "publish": false
    }
  }
}

Example response

{
  "content": [
    {
      "type": "text",
      "text": "{ ... same JSON as structuredContent ... }"
    }
  ],
  "structuredContent": {
    "event_id": "311990021",
    "status": "draft",
    "title": "Intro to SQL",
    "start_time": "2026-11-03T19:00:00+01:00"
  },
  "isError": false
}

Copy event

write Confirm

MCP tool meetup_copy_event

Creates a new event from an existing one with the same description, venue and settings, at a new start time. It is a draft unless publish is true. By default you confirm each call; you can switch that off for this tool.

Parameters

Parameters: copy_event
NameTypeDescription
event_id required string Event ID from list_events.
start_time required datetime New start, ISO 8601 with time zone.
title string New title. Default: the old one.
publish boolean Publish now or keep as draft. Default: false.

tools/call

JSON-RPC

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "meetup_copy_event",
    "arguments": {
      "event_id": "311204587",
      "start_time": "2026-11-12T19:00:00+01:00",
      "title": "Python Night #24",
      "publish": true
    }
  }
}

Example response

{
  "content": [
    {
      "type": "text",
      "text": "{ ... same JSON as structuredContent ... }"
    }
  ],
  "structuredContent": {
    "event_id": "311988140",
    "status": "draft",
    "announced": false,
    "start_time": "2026-11-12T19:00:00+01:00",
    "url": "https://www.meetup.com/yourgroup/events/311988140/"
  },
  "isError": false
}

Update event

write Confirm

MCP tool meetup_update_event

Changes fields of an upcoming event. Only the fields you pass change. Edits to a published event are visible to members and attendees. By default you confirm each call; you can switch that off for this tool.

Parameters

Parameters: update_event
NameTypeDescription
event_id required string Event ID from list_events.
fields required object Any of title, start_time, duration_minutes, description, venue, attendee_limit.

tools/call

JSON-RPC

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "meetup_update_event",
    "arguments": {
      "event_id": "event_8c41d2",
      "fields": "fields"
    }
  }
}

Example response

{
  "content": [
    {
      "type": "text",
      "text": "{ ... same JSON as structuredContent ... }"
    }
  ],
  "structuredContent": {
    "event_id": "311988140",
    "status": "updated",
    "changed": [
      "attendee_limit"
    ]
  },
  "isError": false
}

Announce event

write Confirm

MCP tool meetup_announce_event

Sends the announcement of one published event to the members of your group. Drafts cannot be announced. By default you confirm each call; you can switch that off for this tool.

Parameters

Parameters: announce_event
NameTypeDescription
event_id required string Event ID from list_events.

tools/call

JSON-RPC

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "meetup_announce_event",
    "arguments": {
      "event_id": "event_8c41d2"
    }
  }
}

Example response

{
  "content": [
    {
      "type": "text",
      "text": "{ ... same JSON as structuredContent ... }"
    }
  ],
  "structuredContent": {
    "event_id": "311988140",
    "announced": true
  },
  "isError": false
}

Update attendee

write Confirm

MCP tool meetup_update_attendee

Changes the RSVP of one member for one event. Moving off the waitlist needs a free spot under the attendee limit. The member sees the change. By default you confirm each call; you can switch that off for this tool.

Parameters

Parameters: update_attendee
NameTypeDescription
event_id required string Event ID from list_events.
member_id required string Member ID from list_attendees or list_members.
action required enum mark_attending, remove or move_from_waitlist.

tools/call

JSON-RPC

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "meetup_update_attendee",
    "arguments": {
      "event_id": "event_8c41d2",
      "member_id": "member_8c41d2",
      "action": "mark_attending"
    }
  }
}

Example response

{
  "content": [
    {
      "type": "text",
      "text": "{ ... same JSON as structuredContent ... }"
    }
  ],
  "structuredContent": {
    "event_id": "311204587",
    "member_id": "402118",
    "status": "going"
  },
  "isError": false
}

MCP tool meetup_mark_attendance

Sets the status of many attendees in one call, from 1 hour before the event starts, also after it has ended. It sends nothing to members and one more call changes the status again, so it runs without asking first.

Parameters

Parameters: mark_attendance
NameTypeDescription
event_id required string Event ID from list_events.
member_ids required string[] Member IDs from list_attendees.
status required enum checked_in, no_show or not_coming.

tools/call

JSON-RPC

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "meetup_mark_attendance",
    "arguments": {
      "event_id": "311204587",
      "member_ids": [
        "402118",
        "402119"
      ],
      "status": "no_show"
    }
  }
}

Example response

{
  "content": [
    {
      "type": "text",
      "text": "{ ... same JSON as structuredContent ... }"
    }
  ],
  "structuredContent": {
    "event_id": "311204587",
    "updated": 2,
    "status": "no_show"
  },
  "isError": false
}

Message attendees

write Confirm

MCP tool meetup_message_attendees

Sends one message with a subject to the people who RSVPed going to an upcoming or past event, under your name. Returns how many people it reached. By default you confirm each call; you can switch that off for this tool.

Parameters

Parameters: message_attendees
NameTypeDescription
event_id required string Event ID from list_events.
subject required string Message subject.
body required string Message text.

tools/call

JSON-RPC

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "meetup_message_attendees",
    "arguments": {
      "event_id": "311988140",
      "subject": "Room 204 and 19:30 start tonight",
      "body": "Python Night moved to room 204 at Co-Work Mitte and starts at 19:30. Same building, same talks."
    }
  }
}

Example response

{
  "content": [
    {
      "type": "text",
      "text": "{ ... same JSON as structuredContent ... }"
    }
  ],
  "structuredContent": {
    "event_id": "311204587",
    "status": "sent",
    "recipients": 38
  },
  "isError": false
}

Message members

write Confirm

MCP tool meetup_message_members

Sends one message to the members of your group who opted in to organizer announcements, under your name. Returns how many people it reached. By default you confirm each call; you can switch that off for this tool.

Parameters

Parameters: message_members
NameTypeDescription
group_urlname required string Group URL name, e.g. tech-founders-berlin.
subject required string Message subject.
body required string Message text.

tools/call

JSON-RPC

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "meetup_message_members",
    "arguments": {
      "group_urlname": "https://example.com",
      "subject": "subject",
      "body": "body"
    }
  }
}

Example response

{
  "content": [
    {
      "type": "text",
      "text": "{ ... same JSON as structuredContent ... }"
    }
  ],
  "structuredContent": {
    "group_urlname": "tech-founders-berlin",
    "status": "sent",
    "recipients": 1760
  },
  "isError": false
}

Cancel event

write Confirm

MCP tool meetup_cancel_event

Cancels one upcoming event. Attendees are notified and the cancellation cannot be undone. By default you confirm each call; you can switch that off for this tool.

Parameters

Parameters: cancel_event
NameTypeDescription
event_id required string Event ID from list_events.

tools/call

JSON-RPC

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "meetup_cancel_event",
    "arguments": {
      "event_id": "event_8c41d2"
    }
  }
}

Example response

{
  "content": [
    {
      "type": "text",
      "text": "{ ... same JSON as structuredContent ... }"
    }
  ],
  "structuredContent": {
    "event_id": "311988140",
    "status": "cancelled"
  },
  "isError": false
}