Install
openclaw skills install @chrischall/signupgeniusRead sign-up sheets, slot reports, and groups on SignUpGenius — and add members to your groups. Triggers on phrases like "check SignUpGenius", "what am I signed up for", "what slots are left for [event]", "available slots", "list my SignUpGenius groups", "add [person] to my [group] group", or any request involving SignUpGenius sign-ups, RSVPs, volunteer slots, potlucks, carpools, classroom helpers, or PTA/HOA/Scout/team sign-ups. Works against your own signed-in account; supports Pro key for full slot reports.
openclaw skills install @chrischall/signupgeniusMCP server for SignUpGenius — 14 read tools + 2 write across profile, groups, sign-ups, and reports.
Three auth modes, tried in priority order — first match wins. You only need one.
Install the ContextMint Bridge browser extension once (releases: Chrome loads the chrome zip unpacked; Safari isn't available yet, so use Chrome for now — it's the fetchproxy extension renamed, source at https://github.com/nullnet-app/contextmint-bridge, verify a zip with its .sha256 file), sign into signupgenius.com, and add to .mcp.json (project) or ~/.claude/mcp.json (global):
{
"mcpServers": {
"signupgenius": {
"command": "npx",
"args": ["-y", "signupgenius-mcp"]
}
}
}
At startup the MCP reads your accessToken / cfid / cftoken cookies once via the extension, then talks to SignUpGenius directly — the extension is not in the request hot path after that. Works with free accounts.
Add an env block with your direct-login credentials (won't work with Google/Apple/Facebook/Microsoft SSO or 2FA):
{
"mcpServers": {
"signupgenius": {
"command": "npx",
"args": ["-y", "signupgenius-mcp"],
"env": {
"SIGNUPGENIUS_EMAIL": "you@example.com",
"SIGNUPGENIUS_PASSWORD": "your-password"
}
}
}
}
The three signupgenius_report_* tools that list filled / available / all participants for a given sign-up only work against the documented Pro v2 API. Get a key from Pro Tools → API Management in your SignUpGenius dashboard (Pro subscription required), then:
"env": { "SIGNUPGENIUS_USER_KEY": "your-api-key" }
Modes can be combined; Pro key wins where it applies, session/fetchproxy handles everything else.
signupgenius_get_profile — Your own profile (name, email, account type).signupgenius_list_groups — Every group you own or belong to.signupgenius_list_group_members — Members of one of your groups.signupgenius_get_group_member — One member's full record.signupgenius_add_group_member (write) — Add a person to one of your groups (they may start receiving the group's invitations). Same confirmation as the other writes: a client that can show a prompt gets one (unless the server sets MCP_CONFIRM_ELICITATION=off); otherwise the first call adds nothing and returns a preview plus a confirmToken — show it to the user, then repeat the call with the same arguments plus confirmToken.signupgenius_list_created_active — Sign-ups you've created that are still open.signupgenius_list_created_expired — Sign-ups you've created that have ended.signupgenius_list_created_all — Both active and expired in one call.signupgenius_list_invited — Sign-ups you've been invited to.signupgenius_list_signedupfor — Sign-ups you've taken a slot on. (Session-mode also includes the bonus signupgenius_legacy_get_my_signups which calls the same backend the SignUpGenius web wizard uses and sometimes returns fuller data.)signupgenius_legacy_get_my_signups (session only) — Bonus richer "what am I signed up for" lookup.signupgenius_get_public_signup — Sheet metadata by URL or slug: title, description, organizer, category, timezone, and the custom questions a sign-up must answer. No auth required. Metadata only — it carries no slots.signupgenius_list_slots — Every slot on ANY public sign-up: date, day of week, start/end time, title, location, capacity, filled vs available, and who has signed up (with the number of spots each entry consumes). No auth required, and it works on sheets the user did not create. Reach for this first for "what's still open" — the report tools below cannot answer it for someone else's sheet.signupgenius_rsvp (write) — RSVP yes/no/maybe to a headcount (Yes/No/Maybe) sheet. Never writes on the first call: a client that can show a prompt gets one (unless the server sets MCP_CONFIRM_ELICITATION=off); otherwise you get a preview plus a confirmToken — show the preview to the user and, only after they approve, repeat the call with the same arguments plus confirmToken. Responds as the signed-in account unless you pass firstname/lastname/email (see Who a sign-up is for below). Not for slot-based sheets.signupgenius_claim_slot (write) — Sign up for a slot on a slot-based sheet. The first call writes nothing and returns a preview of the sheet, slot and identity (plus a confirmToken when the client cannot show a prompt, or when the server sets MCP_CONFIRM_ELICITATION=off); show it to the user, then repeat the call with the same arguments plus confirmToken. Pass the sheet's required custom fields (read them from signupgenius_get_public_signup). Signs up as the signed-in account unless you pass firstname/lastname/email (see Who a sign-up is for below).signupgenius_release_slot (write) — Give up a slot the user signed up for. Same two-step confirmation as above. Takes item_member_id and slotitemid from the same signupgenius_list_slots row; it only ever withdraws the signed-in user's own entry and refuses anyone else's.signupgenius_report_all — Every slot + participant on a sign-up.signupgenius_report_filled — Filled slots only.signupgenius_report_available — Available slots only.These need SIGNUPGENIUS_USER_KEY and answer only for sign-ups the key holder created — a Pro key is not a workaround for someone else's sheet. Use signupgenius_list_slots for availability and participant names on any sheet; the reports add only what it cannot carry: custom-question answers.
Outside key mode these fail fast with a KeyModeRequiredError naming the tool, the mode required and the mode in effect, and instructing the user to set SIGNUPGENIUS_USER_KEY.
signupgenius_claim_slot and signupgenius_rsvp default the name and email to the signed-in account's profile. Omit firstname, lastname and email when the user is signing up themselves, which is the usual case. Pass them only when the user asks to sign up someone else, such as a spouse or child. The tool allows that, but the preview then shows identityDiffersFromAccount: true and an identityNote naming both people. Point this out to the user before they confirm, because the entry stays tied to their account. Every preview's identity block shows the name and email that will be sent, and source says whether they came from the account, were supplied, or were mixed. The confirm token is bound to that identity, so changing it after the preview means previewing again.
signupgenius_list_signedupfor (+ _legacy_get_my_signups in session mode)signupgenius_list_slots (no auth, works on anyone's sheet)signupgenius_report_all (Pro key, own sheets only)signupgenius_list_groupssignupgenius_add_group_membersignupgenius_list_created_activesignupgenius_rsvpsignupgenius_report_* only work with SIGNUPGENIUS_USER_KEY — session/fetchproxy users get a clear error pointing at the key.signups/created endpoint returns active + expired in one paginated call — the three list_created_* tools all hit the same endpoint and filter client-side. Pro key mode has separate endpoints and exposes the real distinction.signupgenius_add_group_member, signupgenius_rsvp, signupgenius_claim_slot and signupgenius_release_slot mutate, all behind the confirmation gate; everything else is read-only.