事件mcp
MCP服务器提供跨Meetup和Luma的自然语言事件管理。使用Playwright浏览器自动化-不需要付费的API层。
工具
| 工具 | 说明 |
|---|---|
events_login | 使用Meetup或Luma进行身份验证(打开浏览器进行OAuth/登录) |
events_logout | 清除平台的已保存会话 |
events_auth_status | 检查哪些平台有活动会话 |
meetup_list_events | 列出Meetup组中即将举行的活动 |
meetup_create_event | 在Meetup上创建活动 |
meetup_get_rsvps | 获取Meetup活动的回复列表 |
luma_list_events | 列出Luma即将举办的活动 |
luma_create_event | 在Luma上创建活动 |
luma_get_rsvps | 获取Luma活动的宾客名单 |
events_sync | 将事件从一个平台复制到另一个平台 |
设置
npm install
npx playwright install chromium
npm run build添加到您的Claude Code MCP配置中:
{
"mcpServers": {
"events": {
"command": "node",
"args": ["/absolute/path/to/events-mcp/dist/index.js"]
}
}
}然后让克劳德自然地管理你的活动:
“下周六下午6点在Loading Bar举办一场名为‘AI黑客之夜’的活动” “列出我即将举行的聚会活动” “将我的下一次聚会活动同步到Luma”
建筑
会话持续 --浏览器会话(Cookie、本地存储)保存到 ~/.events-mcp/ 所以你不会每次都重新验证。
Browsermutex --MCP承载并行工具调用,但Playwright上下文对于并发使用是不安全的。进程内互斥体将所有浏览器操作序列化;其他人排队等待。
首次使用时的会话验证 --在平台的第一次工具调用中,服务器导航到站点并检查保存的会话是否仍然有效。尽早捕获过时的令牌,而不是在操作过程中失败。
安全关机 --SIGINT/SIGTERM处理程序刷新 storageState 在关闭浏览器之前,会话可以在服务器重启后继续运行。
项目结构
src/
index.ts Server entry, tool registration, lifecycle
browser.ts Browser management, session persistence, BrowserMutex
tools/
auth.ts Login, logout, status
meetup.ts Meetup event operations
luma.ts Luma event operations
sync.ts Cross-platform sync总共1064行TypeScript。
注意事项
浏览器自动化本质上是脆弱的。当Meetup或Luma更新其HTML时,DOM选择器可能会中断。如果一个工具在正常工作后开始出现故障,那么选择器可能需要更新。
