Happenings Page CLI について
Happenings Page CLIは、イベント主催者向けのページ管理コマンドをMCP対応AIクライアントに提供します。ログイン時に利用するページを選び、各ページでのロールに応じてコマンドを制限します。
主な機能
- 01Streamable HTTPによるリモートMCPサーバー
- 02OAuth 2.1でログインしてページを選択
- 03ロールで制限されたページコマンドへのアクセス
- 04読み取り専用ツールhap_helpとhap_read
- 05ページ管理用のhap_run
活用シーン
- 01AIクライアントでHappeningsページの情報を確認
- 02選択したページで管理コマンドを実行
- 03AIによる操作をページのロール権限内に制限
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)。
2 つの要素
- コネクター:
https://api.happenings.social/mcp。ページ単位の Happenings CLI をリモート MCP サーバー(ストリーミング可能な HTTP)として提供し、PKCE、動的クライアント登録、RFC 9207issに対応した OAuth 2.1 で保護します。追加に必要なのは 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?…、または "type": "http" を含む .vscode/mcp.json | AGENTS.md に追記します |
| Windsurf | serverUrl を含む ~/.codeium/windsurf/mcp_config.json | AGENTS.md に追記します |
| Gemini CLI | gemini mcp add --transport http happenings https://api.happenings.social/mcp | ~/.gemini/GEMINI.md に GEMINI.md を追記します。または、以下の拡張機能を使って一度に両方を設定します |
| Codex CLI | codex mcp add happenings --url https://api.happenings.social/mcp を実行し、続けて codex mcp login happenings を実行します | ~/.codex/AGENTS.md に 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)。
バンドル(両方を一度に設定)
このフォルダーは、独立した公開リポジトリとして公開できる構成になっており、 2つのバンドルを同時に提供します。
-
Claude Code プラグインマーケットプレイス:
.claude-plugin/marketplace.jsonとplugins/happenings(.mcp.jsonコネクター、スキル、4つの コマンド:/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 プラグイン:
plugins/happeningsからbuild.mjsで ビルドされ、Connect が/downloads/ai/happenings-plugin.zipで提供するhappenings-plugin.zip。1回のダウンロードでコネクター (.mcp.json)、スキル、4つのコマンドを取得でき、ターミナルを使わずに Claude に追加できます。自社サイトでホストされており、公開リポジトリに 依存しません。Claude を選択すると、Connect には「一度に両方」と表示されます。 公開サイトでは/skills/happenings-plugin.zipでも同じファイルを提供し (web/apps/user-web/scripts/sync-skills.mjsがビルド時にコピーします)、/mcpと/guide/mcpからリンクしています。
モノレポは非公開のため、最初の2つはこのフォルダーの公開済みコピーからのみ
利用できます。バックオフィスの Worker に
HAPPENINGS_AI_REPO=<owner>/<repo> を設定すると、Connect に両方のコマンドが
表示されます。それまでは、コネクターとスキルの個別の手順が表示されます。
Claude Desktop 拡張機能(.mcpb)はビルドしません。Desktop はすでに URL で
リモートコネクターを利用でき、.mcpb はローカルサーバーを対象としているためです。
MCP レジストリ
Happenings Connect は、公式 MCP レジストリ
(registry.modelcontextprotocol.io)に social.happenings/connect
(https://api.happenings.social/mcp)として登録されています。このエントリーは
registry/connect.server.json にあります。レジストリを参照するディレクトリでは、
ここからエントリーが取得されます。以前のエントリー
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 サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。