内容
# meetup-mcp-server
用于通过 AI 代理自动跟踪 Meetup 事件的 MCP 服务器。它为代理提供了浏览 Meetup.com、检测自上次记录以来新增事件并返回结构化事件数据的工具 — 无需手动抓取或复制粘贴。
设计用于与浏览器使用工具(例如 Playwright MCP)配对,以便代理可以导航 Meetup 页面、提取事件详细信息并输出干净的结构化数据。
## 用途
- 跟踪自上次记录以来 Meetup 组的新的过去事件
- 提取结构化的事件详细信息:标题、日期、场地、出席者、演讲者和摘要
- 以可重复和自动化的方式将事件数据输入管道、CMS 或数据文件
## 工具
**`load_skill`** — 为命名技能(`meetUp-events-lookup`,`meetUp-event-page`)加载逐步浏览指令。
**`dates_of_interest`** — 返回要收集的新事件的日期范围 — 从上次记录的事件到今天。无需参数。
**`submit_meetup_events`** — 结构化输出工具:发出找到的新事件列表。
**`submit_event_details`** — 结构化输出工具:发出单个事件页面的完整详细信息。
## 快速开始
将以下内容添加到您的 MCP 客户端配置中:
```json
{
"mcpServers": {
"meetup": {
"command": "npx",
"args": ["@kwiknordic/meetup-events-scraper-mcp"]
}
}
}
```
要仅收集比上次记录的条目更新的事件,请传递 `EVENTS_JSON_URL`:
```json
{
"mcpServers": {
"meetup": {
"command": "npx",
"args": ["@kwiknordic/meetup-events-scraper-mcp"],
"env": {
"EVENTS_JSON_URL": "https://your-host/events.json",
"START_DATE": "2026-05-15"
}
}
}
}
```
通过终端将 mcp-server 添加到您的 Claude CLI:
```bash
claude mcp add meetupEvents \
--env EVENTS_JSON_URL=https://your-host/events.json \
-- npx -y @kwiknordic/meetup-events-scraper-mcp
```
## 配置
**`START_DATE`** (可选)— 以 `YYYY-MM-DD` 格式显示的明确起始日期。当设置时,代理仅收集严格在此日期之后的事件。优先于 `EVENTS_JSON_URL`。
**`EVENTS_JSON_URL`** (可选)— 指向包含过去事件的 JSON 文件的 URL。用于确定最近记录的事件日期,以便代理知道从哪里开始收集。忽略 `START_DATE` 设置时的此设置。如果两者均未设置,则日期范围没有下限,代理将收集直到今天的所有事件。
## 事件 JSON 格式
如果设置了 `EVENTS_JSON_URL`,它必须返回一个 JSON 数组,其中每个对象都有一个 `date` 字段(格式为 `YYYY-MM-DD`)。服务器找到最近的日期,并将其用作收集新事件的排除下限。任何其他字段都将被忽略。
```json
[{ "date": "2025-11-12" }, { "date": "2026-01-22" }, { "date": "2026-03-05" }]
```
实际上,您的数组可能会携带更多字段 — 只有 `date` 是必需的:
```json
[
{ "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 是在运行时由 `load_skill` 加载的逐步指令集。每个 Playbook 都指导代理完成特定的浏览任务。
**`meetUp-events-lookup`** — 导航到 Meetup 的“过去事件”选项卡,确定相关的日期窗口,并通过 `submit_meetup_events` 收集新事件。
**`meetUp-event-page`** — 打开单个事件页面,提取所有详细信息字段,并通过 `submit_event_details` 输出。
## 工作原理
代理调用 `load_skill`(使用 `meetUp-events-lookup` 或 `meetUp-event-page`)以接收任务特定的浏览指令,然后调用 `dates_of_interest` 以获取确切的感兴趣日期窗口。然后,它使用浏览器工具导航 Meetup.com 并收集位于该窗口内的事件。最后,它调用 `submit_meetup_events` 或 `submit_event_details` 以返回结构化结果。
服务器本身并不浏览网页 — 它提供代理可靠执行此任务所需的上下文和边界。
## 要求
- Node.js 18+
- 支持浏览器的 MCP 工具(例如 [Playwright MCP](https://github.com/microsoft/playwright-mcp))
## 关于作者
- 作者:Mervin Bratic
- 网站:https://kwik.se
## 许可证
MIT © Mervin Bratic — 请参阅 [LICENSE](./LICENSE)。