关于 Happenings Page CLI
Happenings Page CLI 为活动组织者提供页面管理命令,供支持 MCP 的 AI 客户端调用。登录后可选择可访问的页面,命令权限受用户在各页面上的角色限制。
主要功能
- 01基于 Streamable HTTP 的远程 MCP 服务
- 02OAuth 2.1 登录并选择页面
- 03受角色限制的页面命令访问
- 04只读工具 hap_help 和 hap_read
- 05用于页面管理的 hap_run
适用场景
- 01通过 AI 客户端查看 Happenings 页面信息
- 02在选定页面运行管理命令
- 03确保 AI 操作遵循页面角色权限
MCP 相关
将页面级 Happenings CLI 作为远程 MCP 服务提供。它公开 hap_help、只读的 hap_read,以及用于执行命令的 hap_run;访问由用户在各页面上的角色控制。
配置
远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。
https://api.happenings.social/page/mcpclaude mcp add --transport http social-happenings-page-cli https://api.happenings.social/page/mcp{"mcpServers":{"social-happenings-page-cli":{"type":"http","url":"https://api.happenings.social/page/mcp"}}}在 Cursor 中打开{"servers":{"social-happenings-page-cli":{"type":"http","url":"https://api.happenings.social/page/mcp"}}}在 VS Code 中打开{"mcpServers":{"social-happenings-page-cli":{"type":"http","url":"https://api.happenings.social/page/mcp"}}}{"mcpServers":{"social-happenings-page-cli":{"serverUrl":"https://api.happenings.social/page/mcp"}}}命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。
工具
详细介绍
为你的 AI 提供 Happenings
将任何支持 MCP 的 AI 连接到组织者运营的 Happenings 页面,并教会它如何妥善管理页面(HAP-4513)。组织者可在 Connect 中的 Settings 下,进入 AI(/beta/settings/ai)进行设置。
两个部分
- 连接器:
https://api.happenings.social/mcp。页面级 Happenings CLI,作为远程 MCP 服务(可流式传输的 HTTP),通过 OAuth 2.1、PKCE、动态客户端注册和 RFC 9207iss提供保护。添加时只需填写 URL;登录后即可选择页面,每条命令的权限都受用户在相应页面上的角色限制。工具:hap_help和hap_read(只读),以及hap_run。 - 技能:
skill/happenings.md是唯一的来源。运行node build.mjs即可据此生成每个客户端的副本;如果有副本过期,后台测试会失败。
各客户端
| 客户端 | 连接器 | 技能 |
|---|---|---|
| Claude(Web、Desktop、应用) | URL:Customize、Connectors、Add custom connector。Team/Enterprise:由所有者在 Organization settings、Connectors 下添加 | 下载 happenings-skill.zip,在 Customize、Skills 下上传 |
| ChatGPT | URL:Settings、Apps and connectors、Advanced settings、Developer mode、Create(付费套餐) | 将 chatgpt-instructions.txt 复制到项目或自定义 GPT 中 |
| Claude Code | claude mcp add --transport http happenings https://api.happenings.social/mcp | mkdir -p ~/.claude/skills/happenings && curl -fsSL https://connect.happenings.social/downloads/ai/SKILL.md -o ~/.claude/skills/happenings/SKILL.md,或通过下方插件一次完成两项设置 |
| Cursor | 安装链接 cursor://anysphere.cursor-deeplink/mcp/install?name=happenings&config=…,或编辑 ~/.cursor/mcp.json | .cursor/rules/happenings.mdc |
| VS Code(Copilot) | 安装链接 vscode:mcp/install?…,或在 .vscode/mcp.json 中设置 "type": "http" | 追加到 AGENTS.md |
| Windsurf | 在 ~/.codeium/windsurf/mcp_config.json 中设置 serverUrl | 追加到 AGENTS.md |
| Gemini CLI | gemini mcp add --transport http happenings https://api.happenings.social/mcp | 将 GEMINI.md 追加到 ~/.gemini/GEMINI.md,或通过下方扩展一次完成两项设置 |
| Codex CLI | codex mcp add happenings --url https://api.happenings.social/mcp,然后运行 codex mcp login happenings | 将 AGENTS.md 追加到 ~/.codex/AGENTS.md |
以上所有客户端都使用 OAuth 远程 URL,无需本地 stdio 后备方案。为这些客户端加入允许列表的 OAuth 回调:Claude(https://claude.ai/api/mcp/auth_callback)、ChatGPT(https://chatgpt.com/connector_platform_oauth_redirect 和 /connector/oauth/{id})、VS Code(https://vscode.dev/redirect、https://insiders.vscode.dev/redirect)、Cursor 的后备回调(cursor://anysphere.cursor-mcp/oauth/callback),以及供 Cursor、Claude Code、Gemini CLI、Codex 和 Windsurf 使用的环回地址(http://localhost:*、127.0.0.1)。
Bundles(一步完成两项配置)
此文件夹的布局旨在作为独立的公开仓库发布,可同时提供两种配置包:
-
Claude Code 插件市场:
.claude-plugin/marketplace.json和plugins/happenings(.mcp.json连接器、技能和四个 命令:/happenings:this-week、:sales、:new-event、:members)。claude plugin marketplace add <owner>/<repo> && claude plugin install happenings@happenings -
Gemini CLI 扩展:
gemini-extension.json和GEMINI.md。gemini extensions install https://github.com/<owner>/<repo> -
Claude 插件文件:
happenings-plugin.zip,由build.mjs根据plugins/happenings构建,并由 Connect 托管在/downloads/ai/happenings-plugin.zip。一次下载即可获得连接器 (.mcp.json)、技能和四个命令,无需使用终端即可在 Claude 中添加。它托管在我们自己的网站上,不依赖公开 仓库。选择 Claude 后,Connect 会将其显示为“Both in one step”。公开网站会在/skills/happenings-plugin.zip提供相同文件 (web/apps/user-web/scripts/sync-skills.mjs会在构建时复制该文件),并从/mcp和/guide/mcp链接到它。
此 monorepo 为私有,因此前两种配置只能通过此文件夹的已发布副本使用。在 backoffice Worker 上设置
HAPPENINGS_AI_REPO=<owner>/<repo> 后,Connect 会显示这两种命令;在此之前,它会分别显示连接器和技能的配置步骤。
不构建 Claude Desktop 扩展(.mcpb):Desktop 已可通过 URL 使用远程连接器,而 .mcpb 面向本地服务。
MCP Registry
Happenings Connect 已列入官方 MCP Registry
(registry.modelcontextprotocol.io),名称为 social.happenings/connect
(https://api.happenings.social/mcp);对应条目为 registry/connect.server.json。
读取该 Registry 的目录会从中获取此条目。较早的条目
social.happenings/page-tools 和 social.happenings/page-cli 已弃用:
/mcp 于 2026-10-14 成为 Happenings Connect,/page/mcp 是其先前地址。运营方连接器未列出。
social.happenings 命名空间由 happenings.social 上的 TXT 记录证明
(v=MCPv1; k=ed25519; p=…)。私钥未予保留。
要发布更改,请递增条目中的 version,然后:
openssl genpkey -algorithm Ed25519 -out key.pem # OpenSSL 3, not LibreSSL
openssl pkey -in key.pem -pubout -outform DER | tail -c 32 | base64
# replace the p= value of the MCPv1 TXT record in Cloudflare with that output
mcp-publisher login dns --domain happenings.social \
--private-key "$(openssl pkey -in key.pem -noout -text | grep -A3 'priv:' | tail -n +2 | tr -d ' :\n')"
mcp-publisher publish registry/connect.server.json
rm key.pem
编辑技能
- 编辑
skill/happenings.md。 node integrations/ai/build.mjs- 提交重新生成的文件(此处以及
web/apps/backoffice/public/downloads/ai/中的文件)。
编辑插件命令或清单后也适用相同步骤,因为插件 zip 是根据这些文件构建的。新增命令文件必须添加到
variants.mjs 中的 PLUGIN_SOURCE_FILES;否则测试会失败。插件有更改时,同时递增
plugins/happenings/.claude-plugin/plugin.json 和
.claude-plugin/marketplace.json 中的 version。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。