Happenings

social.happeningsv1.1.0Updated Oct 14, 2026

Run your Happenings page from your AI: events, tickets, sales, members, posts and articles.

The publisher's own server: Happenings Page CLI

VerifiedStreamable HTTPWeb executableProductivity & WorkflowBusiness & Commerce

Overview

AI-generated overview

Remote MCP connector that lets an AI assistant read and run a Happenings organiser page: events, tickets, sales, members, posts and articles.

What you can do
  • Read page data such as events, tickets, sales, members, posts and articles through the read-only tools
  • Run page-level Happenings commands through the hap_run tool, limited by the user's role on each page
  • Get help on available commands through hap_help
  • Work across several pages the signed-in organiser manages
When to use it
Useful for organisers who already run pages on Happenings and want an assistant to check sales, members or events, or to carry out page tasks without leaving the chat. Not relevant if you do not have a Happenings page.
Requirements
A remote streamable HTTP endpoint; no local package or runtime is needed. Sign-in uses OAuth 2.1 with PKCE and dynamic client registration, so the client must support remote MCP connectors with OAuth. A Happenings organiser account with a role on the pages you want to use.
Before you install
The hap_run tool can change page data, not just read it; actions are limited by your role on each page. Signing in grants the assistant access to the pages you pick, so review which pages are selected. The README notes this registry entry is deprecated in favour of a newer Happenings Connect listing.

Installation

In SourceWeft

  1. Open Happenings in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/social.happenings%2Fpage-tools/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config.

{
  "mcpServers": {
    "happenings": {
      "type": "http",
      "url": "https://api.happenings.social/mcp"
    }
  }
}

README

Happenings for your AI

Connects any MCP-capable AI to the Happenings pages an organiser runs, and teaches it how to run a page well (HAP-4513). Organisers set it up from Connect, under Settings, then AI (/beta/settings/ai).

The two parts

  • The connector: https://api.happenings.social/mcp. The page-level Happenings CLI as a remote MCP server (streamable HTTP), behind OAuth 2.1 with PKCE, dynamic client registration and RFC 9207 iss. Adding it takes only the URL; signing in picks the pages, and every command stays limited by the person's role on each page. Tools: hap_help and hap_read (read-only) and hap_run.
  • The skill: skill/happenings.md is the single source. node build.mjs generates every client's copy from it; a backoffice test fails when one is stale.

Per client

ClientConnectorSkill
Claude (web, Desktop, app)URL: Customize, Connectors, Add custom connector. Team/Enterprise: an owner adds it under Organization settings, ConnectorsDownload happenings-skill.zip, upload under Customize, Skills
ChatGPTURL: Settings, Apps and connectors, Advanced settings, Developer mode, Create (paid plans)Copy chatgpt-instructions.txt into a project or custom GPT
Claude Codeclaude mcp add --transport http happenings https://api.happenings.social/mcpmkdir -p ~/.claude/skills/happenings && curl -fsSL https://connect.happenings.social/downloads/ai/SKILL.md -o ~/.claude/skills/happenings/SKILL.md, or both in one: the plugin below
CursorInstall link cursor://anysphere.cursor-deeplink/mcp/install?name=happenings&config=…, or ~/.cursor/mcp.json.cursor/rules/happenings.mdc
VS Code (Copilot)Install link vscode:mcp/install?…, or .vscode/mcp.json with "type": "http"Append AGENTS.md
Windsurf~/.codeium/windsurf/mcp_config.json with serverUrlAppend AGENTS.md
Gemini CLIgemini mcp add --transport http happenings https://api.happenings.social/mcpAppend GEMINI.md to ~/.gemini/GEMINI.md, or both in one: the extension below
Codex CLIcodex mcp add happenings --url https://api.happenings.social/mcp, then codex mcp login happeningsAppend AGENTS.md to ~/.codex/AGENTS.md

Every client above uses the remote URL with OAuth; none needs a local stdio fallback. OAuth callbacks allowlisted for them: Claude (https://claude.ai/api/mcp/auth_callback), ChatGPT (https://chatgpt.com/connector_platform_oauth_redirect and /connector/oauth/{id}), VS Code (https://vscode.dev/redirect, https://insiders.vscode.dev/redirect), Cursor's fallback (cursor://anysphere.cursor-mcp/oauth/callback) and loopback (http://localhost:*, 127.0.0.1) for Cursor, Claude Code, Gemini CLI, Codex and Windsurf.

Bundles (one step for both)

This folder is laid out to be published as its own public repository, which serves two bundles at once:

  • Claude Code plugin marketplace: .claude-plugin/marketplace.json and plugins/happenings (the .mcp.json connector, the skill and four commands: /happenings:this-week, :sales, :new-event, :members). claude plugin marketplace add <owner>/<repo> && claude plugin install happenings@happenings

  • Gemini CLI extension: gemini-extension.json and GEMINI.md. gemini extensions install https://github.com/<owner>/<repo>

  • Claude plugin as a file: happenings-plugin.zip, built by build.mjs from plugins/happenings and served by Connect at /downloads/ai/happenings-plugin.zip. One download holds the connector (.mcp.json), the skill and the four commands, for adding in Claude without a terminal. It is hosted on our own site and does not depend on the public repository. Connect shows it as "Both in one step" when Claude is picked. The public site serves the same bytes at /skills/happenings-plugin.zip (web/apps/user-web/scripts/sync-skills.mjs copies it at build time) and links it from /mcp and /guide/mcp.

The monorepo is private, so the first two work only from the published copy of this folder. Set HAPPENINGS_AI_REPO=<owner>/<repo> on the backoffice Worker and Connect shows both commands; until then it shows the separate connector and skill steps.

A Claude Desktop extension (.mcpb) is not built: Desktop already takes the remote connector by URL, and .mcpb targets local servers.

MCP Registry

Happenings Connect is listed in the official MCP Registry (registry.modelcontextprotocol.io) as social.happenings/connect (https://api.happenings.social/mcp); the entry is registry/connect.server.json. Directories that read the registry pick it up from there. The earlier entries social.happenings/page-tools and social.happenings/page-cli are deprecated: /mcp became Happenings Connect on 2026-10-14 and /page/mcp is its former address. The operator connector is not listed.

The social.happenings namespace is proven by a TXT record on happenings.social (v=MCPv1; k=ed25519; p=…). The private key was not kept. To publish a change, bump version in the entry, then:

bash
openssl genpkey -algorithm Ed25519 -out key.pem   # OpenSSL 3, not LibreSSLopenssl pkey -in key.pem -pubout -outform DER | tail -c 32 | base64# replace the p= value of the MCPv1 TXT record in Cloudflare with that outputmcp-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.jsonrm key.pem

Editing the skill

  1. Edit skill/happenings.md.
  2. node integrations/ai/build.mjs
  3. Commit the regenerated files (here and in web/apps/backoffice/public/downloads/ai/).

The same applies after editing a plugin command or manifest, since the plugin zip is built from them. A new command file must be added to PLUGIN_SOURCE_FILES in variants.mjs; a test fails if it is not. Bump version in plugins/happenings/.claude-plugin/plugin.json and .claude-plugin/marketplace.json together when the plugin changes.

Source: README.md at commit e498045

Tools

0
SourceWeft has not read this server's tools yet.

Version history

1
  1. v1.1.0LatestOct 14, 2026

Score

40% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 daysRequired25 pts

    Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.

  • Auth declaredRequired10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts

    Declare a license in the repository or the registry entry.

Other Happenings integrations