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 fetchproxy extension once, 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.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. Not for slot-based sheets.signupgenius_claim_slot (write) — Sign up for a slot on a slot-based sheet. Call it WITHOUT confirm first to get a dry-run preview of the slot and identity, show that to the user, then call again with confirm: true. Pass the sheet's required custom fields (read them from signupgenius_get_public_signup).signupgenius_release_slot (write) — Give up a slot the user signed up for. Same two-step confirm 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_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 and signupgenius_rsvp mutate; everything else is read-only.