meetup-mcp-server

kwiknordic/meetup-events-scraper-mcp
0 starsCommunity

Install to Claude Code

This server doesn't publish a one-line install command. Follow the setup in the source repository.

Summary

An MCP server for automating Meetup event tracking with an AI agent. It equips the agent with tools to browse Meetup.com, detect new events since the last known record, and return structured event data.

README.md

meetup-mcp-server

An MCP server for automating Meetup event tracking with an AI agent. It equips the agent with tools to browse Meetup.com, detect new events since the last known record, and return structured event data — without manual scraping or copy-pasting.

Designed to be paired with a browser-use tool (e.g. Playwright MCP) so the agent can navigate Meetup pages, extract event details, and emit clean structured output.

What it can be used for

  • Tracking new past events from a Meetup group since the last recorded entry
  • Extracting structured event details: title, date, venue, attendees, speakers, and summary
  • Feeding event data into a pipeline, CMS, or data file in a repeatable and automatable way

Tools

load_skill — Loads step-by-step browsing instructions for a named skill (meetUp-events-lookup, meetUp-event-page).

dates_of_interest — Returns the date range of new events to collect — from the last recorded event up to today. Takes no parameters.

submit_meetup_events — Structured output tool: emits the list of new events found.

submit_event_details — Structured output tool: emits full detail for a single event page.

Quick start

Add to your MCP client config:

{
  "mcpServers": {
    "meetup": {
      "command": "npx",
      "args": ["@kwiknordic/meetup-events-scraper-mcp"]
    }
  }
}

To collect only events newer than your last recorded entry, pass EVENTS_JSON_URL:

{
  "mcpServers": {
    "meetup": {
      "command": "npx",
      "args": ["@kwiknordic/meetup-events-scraper-mcp"],
      "env": {
        "EVENTS_JSON_URL": "https://your-host/events.json"
      }
    }
  }
}

Configuration

EVENTS_JSON_URL (optional) — URL to a JSON file containing past events. Used to determine the date of the most recent recorded event, so the agent knows where to start collecting. If omitted, the date range has no lower bound and the agent will collect all events up to today.

Events JSON format

If EVENTS_JSON_URL is set, it must return a JSON array of objects where each object has a date field in YYYY-MM-DD format. The server finds the most recent date and uses it as the exclusive lower bound when collecting new events. Any additional fields are ignored.

[{ "date": "2025-11-12" }, { "date": "2026-01-22" }, { "date": "2026-03-05" }]

In practice your array will likely carry more fields — only date is required:

[
  { "id": 314270265, "title": "Tech Night #12", "date": "2026-03-05", "attendees": 87 },
  { "id": 298451032, "title": "Tech Night #11", "date": "2026-01-22", "attendees": 64 }
]

Playbooks

Playbooks are step-by-step instruction sets loaded by load_skill at runtime. Each one guides the agent through a specific browsing task.

meetUp-events-lookup — navigates the Meetup "Past events" tab, determines the relevant date window, and collects new events via submit_meetup_events.

meetUp-event-page — opens a single event page, extracts all detail fields, and emits them via submit_event_details.

How it works

The agent calls load_skill (with meetUp-events-lookup or meetUp-event-page) to receive task-specific browsing instructions, then dates_of_interest to get the exact date window of interest. It then uses its browser tools to navigate Meetup.com and collect events that fall within that window. Finally it calls submit_meetup_events or submit_event_details to return the structured result.

The server itself does not browse the web — it provides the context and boundaries the agent needs to do that reliably.

Requirements

About me

Author: Mervin Bratic Website: https://kwik.se

Related MCP servers

Browse all →