Token导航 LogoToken导航

MCP Server · AI代理

Pulumi Events

Pulumi Events MCP是一个用于通过AI助手(如Claude)管理Meetup.com和Luma上的活动的MCP服务器,提供事件搜索、群组管理、事件创建和发布等功能。

未说明官方级别未说明来源级核验工具 22
API集成PythonClaude

快速开始

公开资料没有提供安装命令,按仓库或官方文档接入。
作者 / 组织
dirien
提供方
dirien

工具数量

22

来源目录标注

资源数量

0

来源目录标注

提示词数量

0

来源目录标注

GitHub Star

1

仓库热度

收录来源

1 个

MCP World

选型结论

Pulumi Events 属于AI代理类 MCP Server,公开资料标注 22 个工具,通过传输方式未标注接入,适配 Claude,没有现成的安装命令;接入前要先准备 OAuth 授权。

分类

AI代理

传输方式

未说明

认证方式

OAuth 授权

部署方式

公开资料未说明

安装与配置

公开目录没有给出安装命令,需要按仓库 README安装;下面按同类条目的通用流程说明。

公开命令不是通用的启动方式,拼不出可靠配置示例;请在客户端 MCP 配置里按官方文档填写 command 和 args。

上手步骤

  1. 1

    先确认运行方式

    公开资料没有标注传输方式,先看仓库 README,确认是本地进程还是远程地址。

  2. 2

    获取服务

    公开目录没有给出安装命令,按仓库 README里的步骤安装或获取服务。

  3. 3

    写入客户端配置

    在客户端的 MCP 配置里填启动命令和参数,保存后完全退出客户端再打开,让新配置生效。

  4. 4

    验证是否可用

    连接成功后客户端会列出 22 个工具,随便调一个只读工具确认能返回结果。

接入前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

公开资料仍需确认:安装命令

详细介绍

Pulumi活动MCP

MCP服务器,用于通过Claude等人工智能助手管理Meetup.com和Luma上的事件。

建于 FastMCP 3.x,它公开了Meetup的GraphQL API和Luma的REST API作为MCP工具和资源,因此LLM可以搜索事件、管理组、创建和发布事件等等。

特性

  • 22工具 跨两个平台(Meetup+Luma),按平台和域标记
  • 6资源 用于只读查找(用户配置文件、组/事件/网络详细信息)
  • 封面图片上传 --在创建/更新事件时传递本地文件路径;服务器自动处理CDN上传(Luma主持URL,Meetup两步照片上传)
  • 所有列表工具自动分页——单个工具调用返回所有结果
  • Meetup:用于无头服务器到服务器访问的JWT身份验证(无需浏览器),支持OAuth2回退
  • 使用成员元数据(角色、参加的活动、组数)进行Meetup Pro网络搜索
  • Luma:API密钥认证
  • 无状态HTTP传输——服务器重启时没有过时的会话问题
  • 提供商架构,便于添加新平台

中间件

服务器使用FastMCP的中间件堆栈来提高可靠性和可观察性:

中间件用途
ErrorHandlingMiddleware将原始异常转换为正确的MCP错误代码,一致地记录错误
RetryMiddleware在瞬态网络故障时,采用指数回退自动重试(ConnectionError, TimeoutError)
ResponseCachingMiddleware只读工具(列表、搜索、获取)上的5分钟TTL缓存——突变永远不会被缓存

工具元数据

所有工具都包含FastMCP元数据,以实现更好的LLM集成:

  • 标签 --每个工具都按平台标记(meetup, luma)和域(events, groups, members等等)用于发现和过滤
  • 超时 --支持上传的工具和所有自动分页列表工具超时120秒,以防止在慢速网络上挂起
  • 输出模式 --关键工具声明其响应结构,以便LLM客户端知道预期的字段
  • 注释 --只读工具标记为 readOnlyHint,幂等工具 idempotentHint

快速启动

请参阅 入门指南 有关完整的设置说明。

云(已部署)

服务器在CloudFront后面的AWS ECS Fargate上运行。直接连接克劳德桌面或克劳德代码:

{
  "mcpServers": {
    "pulumi-events": {
      "command": "npx",
      "args": ["mcp-remote", "https:///mcp"]
    }
  }
}

Google OAuth处理MCP身份验证。Meetup在服务器启动时通过JWT自动进行身份验证。CloudFront域由输出 pulumi stack output cloudfront_url 部署后。

本地开发

# Prerequisites: Python 3.12+, uv, Pulumi CLI (logged in)
git clone https://github.com/dirien/pulumi-events.git
cd pulumi-events
uv sync

# Start the server (credentials injected via Pulumi ESC)
pulumi env run ediri/pulumi-idp/auth -- uv run pulumi-events

然后将Claude Code指向 http://127.0.0.1:8080/mcp.

工具

聚会

工具标签描述
list_platformsplatform列出所有具有身份验证状态的已配置平台
meetup_loginmeetup, auth启动Meetup OAuth2登录流程
meetup_get_eventmeetup, events按ID获取Meetup活动的完整详细信息
meetup_list_group_eventsmeetup, events使用状态筛选器列出组的事件(包括草稿)
meetup_search_eventsmeetup, events, search使用过滤器搜索事件(需要纬度/经度、日期、类型)
meetup_search_groupsmeetup, groups, search按关键字和位置搜索组(需要纬度/经度)
meetup_list_my_groupsmeetup, groups列出您所属的所有组
meetup_create_eventmeetup, events创建事件(默认为DRAFT)。支持 featured_image_path 用于上传封面照片
meetup_edit_eventmeetup, events编辑现有事件。支持 featured_image_path 用于上传封面照片
meetup_event_actionmeetup, events删除、发布、宣布或管理RSVP
meetup_network_searchmeetup, network, search搜索Pro网络中的事件、组或成员
meetup_list_group_membersmeetup, members列出具有角色和加入日期的组成员
meetup_get_membermeetup, members获取组中特定成员的详细信息
meetup_find_membermeetup, members在所有组中查找成员(跨组查找)
meetup_create_venuemeetup, venues为活动创建场地

老的

工具标签描述
luma_list_eventsluma, events列出Luma日历中的事件
luma_get_eventluma, events通过API ID获取Luma事件的全部详细信息
luma_create_eventluma, events创建Luma事件。支持 cover_image_path 用于上传封面图片
luma_update_eventluma, events更新Luma事件。支持 cover_image_path 用于上传封面图片
luma_cancel_eventluma, events取消Luma活动
luma_list_peopleluma, people列出Luma日历中的所有人
luma_list_guestsluma, guests列出Luma活动的客人

图片上传

这两个平台都通过其创建/更新工具支持事件封面图像:

  • 老的:通行证 cover_image_path (本地文件路径)到 luma_create_event 或 luma_update_event服务器通过预签名的URL上传到Luma的CDN,并设置 cover_url 自动。
  • 聚会:通行证 featured_image_path (本地文件路径)到 meetup_create_event 或 meetup_edit_event服务器通过Meetup上传 createGroupEventPhoto 突变并设置 featuredPhotoId。对于创建,首先创建活动,然后上传照片并通过编辑附加(因为Meetup的 CreateEventInput 不支持 featuredPhotoId).

支持的图像格式:JPEG、PNG、GIF、WebP、SVG、AVIF。

跨平台:遇见Luma

当将活动从Meetup复制到Luma时,LLM应查找场地的 谷歌地图地点ID 并将其作为 geo_address_json:

// Recommended — Google Maps place ID (most reliable)
{"type": "google", "place_id": "ChIJJzpTdyB0nkcRblzKCp3kxeQ"}

Luma会自动从位置ID解析完整的地址、坐标和地图引脚。不要传递未经处理的Meetup会场对象——它们使用不兼容的格式。服务器也会删除无效 type 将服务器端字段作为安全网。

资源

URI描述
meetup://self经过身份验证的Meetup用户资料
meetup://group/{urlname}按URL名称列出的聚会组详细信息
meetup://event/{event_id}按ID列出的聚会活动详细信息
meetup://network/{urlname}Meetup Pro网络信息
luma://self经过身份验证的Luma用户资料
luma://event/{event_id}API ID的Luma事件详细信息

配置

所有设置都是通过环境变量加载的 PULUMI_EVENTS_ 前缀:

变量默认值描述
PULUMI_EVENTS_MEETUP_CLIENT_ID--会见OAuth客户端ID
PULUMI_EVENTS_LUMA_API_KEY-Luma API密钥(需要Luma Plus)
PULUMI_EVENTS_SERVER_HOST127.0.0.1服务器绑定地址
PULUMI_EVENTS_SERVER_PORT8080服务器端口
PULUMI_EVENTS_TOKEN_CACHE_DIR~/.config/pulumi-events令牌缓存目录
PULUMI_EVENTS_AUTH_TOKEN--MCP端点身份验证的承载令牌(可选)
PULUMI_EVENTS_AUTO_OPEN_BROWSERfalse自动打开OAuth登录浏览器
PULUMI_EVENTS_MEETUP_PRO_NETWORK_URLNAMEpugs默认Meetup Pro网络URL名称
PULUMI_EVENTS_BASE_URL--公共URL覆盖(例如CloudFront域)
PULUMI_EVENTS_MEETUP_JWT_SIGNING_KEY--用于Meetup JWT身份验证的RSA私钥PEM
PULUMI_EVENTS_MEETUP_JWT_KEY_ID--聚会签名密钥ID(儿童)
PULUMI_EVENTS_MEETUP_MEMBER_ID--JWT身份验证的Meetup成员ID(子声明)
PULUMI_EVENTS_MEETUP_TOKEN_BACKENDfile令牌后端: file 或 env
PULUMI_EVENTS_GOOGLE_CLIENT_ID--谷歌OAuth客户端ID(用于MCP身份验证)
PULUMI_EVENTS_GOOGLE_CLIENT_SECRET--谷歌OAuth客户端机密

认证

MCP端点支持可选的承载令牌身份验证。当 PULUMI_EVENTS_AUTH_TOKEN 如果已设置,所有MCP请求都必须包含 Authorization: Bearer 头球未设置时,服务器将在没有身份验证的情况下运行(本地开发的默认设置)。

要启用:

export PULUMI_EVENTS_AUTH_TOKEN="your-secret-token"

然后,MCP客户端必须在 Authorization 头球Claude代码配置示例:

{
  "mcpServers": {
    "pulumi-events": {
      "type": "streamable-http",
      "url": "http://127.0.0.1:8080/mcp",
      "headers": {
        "Authorization": "Bearer your-secret-token"
      }
    }
  }
}

健康(/health)OAuth回调(/auth/meetup/callback)路由不受MCP身份验证的影响。

项目结构

src/pulumi_events/
├── server.py              # FastMCP instance, lifespan, middleware, custom routes
├── settings.py            # Pydantic Settings configuration
├── exceptions.py          # Exception hierarchy
├── utils.py               # Shared utilities (image MIME type detection)
├── auth/
│   ├── backends.py        # Pluggable token backends (File, Env)
│   ├── jwt_auth.py        # Meetup JWT auth (headless, server-to-server)
│   ├── oauth.py           # OAuth2 flow helpers (Meetup)
│   └── token_store.py     # Token persistence + auto-refresh
├── providers/
│   ├── base.py            # EventProvider protocol + capabilities
│   ├── registry.py        # Provider registry
│   ├── meetup/
│   │   ├── client.py      # GraphQL client with auto token refresh + binary upload
│   │   ├── provider.py    # MeetupProvider implementation + photo upload
│   │   ├── queries.py     # GraphQL query/mutation strings
│   │   └── models.py      # Pydantic response models
│   └── luma/
│       ├── client.py      # REST client for Luma public API + image upload
│       └── provider.py    # LumaProvider implementation
├── tools/
│   ├── _deps.py           # Shared dependency factories
│   ├── platform_tools.py  # list_platforms, meetup_login
│   ├── event_tools.py     # Meetup event mutations (with image upload)
│   ├── group_tools.py     # Meetup group tools
│   ├── member_tools.py    # Meetup member tools
│   ├── search_tools.py    # Meetup search tools
│   ├── venue_tools.py     # Meetup venue tools
│   └── luma_tools.py      # Luma event + guest tools (with image upload)
└── resources/
    ├── meetup_resources.py
    └── luma_resources.py

部署

服务器通过Pulumi部署到AWS ECS Fargate。基础设施代码存在于 deploy/.

deploy/
├── __main__.py       # Pulumi program (VPC, ECR, ECS, ALB, CloudFront, Secrets Manager)
├── Pulumi.yaml       # Project config (org: pulumi, toolchain: uv)
├── Pulumi.dev.yaml   # Stack config (ESC environments: marketing/aws-auth, marketing/pulumi-events)
├── pyproject.toml    # Pulumi SDK dependencies
└── uv.lock

架构:CloudFront(HTTPS)→ ALB(HTTP)→ ECS Fargate(端口8080)

Meetup在每次启动容器时都会通过JWT进行无头身份验证。机密存储在AWS Secrets Manager中,并通过ECS任务定义注入。所有配置均来自Pulumi ESC。

cd deploy
pulumi up    # deploy or update
pulumi logs  # tail container logs

发展

make help       # Show all targets
make check      # Lint + format check
make format     # Auto-format
make test       # Run tests
make run        # Start the server

许可证

麻省理工学院

工具与能力

工具数量

22

资源数量

0

提示词数量

0

能力标签

活动管理Python本地部署AI助手MeetupLumaGraphQLAPIRESTAPI

支持客户端

Claude

数量来自来源目录的标注,具体工具清单以官方文档为准。

典型使用场景

多步任务编排

把拆解、检索、执行串成一条链,模型按步骤调用工具。

长期上下文

把会话、笔记和知识放到外部存储,换个会话还能接着做。

接自有流程

把内部系统和模型连起来,让助手调用已有的工作流。

选择建议

值得选的地方

  • 工具数量 22 个,一次接入能覆盖的操作比单点工具更全。
  • 公开说明写得比较完整,接入前能看清能力边界。

先想清楚的地方

  • 公开资料没有可直接复制的安装命令,第一次接入要自己找入口。
  • 需要自备OAuth 授权,没有凭据没法直接试。
  • 第三方目录整理,版本更新和行为细节以官方仓库为准。

更适合

  • 需要在AI代理场景里让模型直接调用外部能力的人。
  • 已经在用 Claude 的用户,接入路径最短。
  • 愿意照着官方文档一步步配环境的人。

不太适合

  • 暂时拿不到OAuth 授权的人。
  • 希望一条命令就装好、不想看文档的人。
  • 需要厂商级 SLA 和技术支持的生产环境。

同类对比

5 个同类
MCP Server工具数传输方式安装命令收录来源最后核验
Pulumi Events

MCP World · 本页

22未说明未标注1 个2026-05-17
Everything Claude Code

MCP World

0stdio有1 个2026-05-17
Filesystem 560c4363

MCP World

13未说明未标注2 个2026-05-17
Time 7365cb6d

MCP.so

2SSE有2 个2026-05-17
Server Everything (everything)

MCP World

11stdio有1 个2026-05-17

按同分类和工具数量挑出最接近的几条,字段以各自详情页为准。

常见问题

5 条

Pulumi Events 怎么安装?

公开目录没有给出可以直接复制的安装命令,需要按仓库 README里的步骤安装;装好后写进客户端的 MCP 配置再重启。

Pulumi Events 怎么在 Claude Desktop、Cursor 里配置?

它是传输方式未标注,客户端配置里要写启动命令和参数,运行环境是 未标注;保存后完全退出客户端再打开,配置才会生效。

Pulumi Events 收费吗?

本站只整理公开资料,不代收费用,也没有标注具体价格。是否收费取决于服务本身和背后的接口额度,正式使用前按官方说明确认。

Pulumi Events 需要 API Key 吗?

公开资料标注的认证方式是OAuth 授权,也就是要先拿到凭据才能连上;凭据只填在自己本地的配置里,不要写进公开仓库。

Pulumi Events 支持哪些客户端?

公开资料标注支持 Claude;其他客户端只要能配置 MCP Server,也能用同样的命令或地址接入。

来源信息

继续浏览同类 MCP