signupgenius-mcp 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md ADDED
@@ -0,0 +1,82 @@
1
+ # signupgenius-mcp
2
+
3
+ MCP server for [SignUpGenius](https://www.signupgenius.com). 13 read tools and 1 write across profile, groups, sign-ups, and reports.
4
+
5
+ Two auth modes:
6
+ - **Session mode (recommended).** Logs in with your normal email/password to call the same web API the signupgenius.com dashboard uses. **Free accounts work.** No SSO/2FA.
7
+ - **Key mode.** Uses the documented Pro API key. Required only for the slot REPORT tools (filled/available/all-participants). Pro subscription needed.
8
+
9
+ Both modes can be configured at the same time — set `SIGNUPGENIUS_USER_KEY` to force key mode, otherwise email/password takes effect.
10
+
11
+ ## Tools
12
+
13
+ | Domain | Tools | Mode |
14
+ |---|---|---|
15
+ | Profile | `signupgenius_get_profile` | both |
16
+ | Groups | `signupgenius_list_groups`, `signupgenius_list_group_members`, `signupgenius_get_group_member`, `signupgenius_add_group_member` (write) | both |
17
+ | Sign-ups | `signupgenius_list_created_active`, `_expired`, `_all`, `signupgenius_list_invited`, `signupgenius_list_signedupfor` | both |
18
+ | Sign-ups (extras) | `signupgenius_legacy_get_my_signups` | session only |
19
+ | Reports | `signupgenius_report_all`, `signupgenius_report_filled`, `signupgenius_report_available` | **key only** |
20
+
21
+ Notes on session-mode sign-up listings: the v3 endpoints `signups/created`, `signups/invited`, and `signups/signedupfor` return the full list in one paginated call (no separate active/expired URLs). The three `signupgenius_list_created_*` tools all map to the same endpoint in session mode; filter by `enddate` client-side. The bonus `signupgenius_legacy_get_my_signups` calls the same backend the SignUpGenius wizard itself uses and sometimes returns fuller data.
22
+
23
+ Reports in session mode fail fast with a clear `ModeMismatchError` telling the user to set `SIGNUPGENIUS_USER_KEY`.
24
+
25
+ ## Configuration
26
+
27
+ ### Session mode (recommended)
28
+
29
+ ```
30
+ SIGNUPGENIUS_EMAIL=you@example.com
31
+ SIGNUPGENIUS_PASSWORD=your-password
32
+ SIGNUPGENIUS_NAME=Family # optional, log label only
33
+ ```
34
+
35
+ The server logs into signupgenius.com on first request, caches the JWT and session cookies, and silently re-logs in on a 401. Treat `.env` like a password file — it's gitignored here, do not commit.
36
+
37
+ **Direct email/password accounts only.** Won't work with Google/Apple/Facebook/Microsoft SSO or 2FA, same caveat as similar sibling MCPs.
38
+
39
+ ### Key mode (Pro only)
40
+
41
+ ```
42
+ SIGNUPGENIUS_USER_KEY=your-api-key
43
+ SIGNUPGENIUS_NAME=PTA Org # optional
44
+ ```
45
+
46
+ Find the user key in SignUpGenius under **Pro Tools → API Management**.
47
+
48
+ ### Both at once
49
+
50
+ Set both. Key mode wins. Useful if you have Pro for some accounts and want reports while still using your normal login elsewhere.
51
+
52
+ ### Advanced overrides
53
+
54
+ | Env var | Default | Purpose |
55
+ |---|---|---|
56
+ | `SIGNUPGENIUS_BASE_URL` | key: `https://api.signupgenius.com/v2/k`<br>session: `https://api.signupgenius.com/v3` | Override the JSON API base. |
57
+ | `SIGNUPGENIUS_LEGACY_BASE_URL` | `https://www.signupgenius.com` | Override the host for `/SUGboxAPI.cfm?go=…` legacy calls. |
58
+ | `SIGNUPGENIUS_LOGIN_URL` | `https://www.signupgenius.com` | Override the login form host. |
59
+
60
+ ## ToS caveat
61
+
62
+ SignUpGenius's terms generally prohibit scripted/automated access. Session mode is "your own account, your own risk" — fine for personal automation but not something you should run at scale or on accounts you don't own.
63
+
64
+ ## Local dev
65
+
66
+ ```
67
+ npm install
68
+ npm run build
69
+ npm test
70
+ ```
71
+
72
+ Point an MCP host at `dist/bundle.js` with the env vars above, or run `npm run dev` after creating a `.env`.
73
+
74
+ Tests: vitest, 100% line/branch/function coverage. End-to-end tests against the SignUpGenius API are not in CI by design — running them requires real credentials.
75
+
76
+ ## Notes
77
+
78
+ - The Pro v2/k API authenticates via a `user_key` query param. The session API uses a JWT Bearer + session cookie. The client picks the right one based on which env vars you set.
79
+ - All response envelopes are normalized to `{ data, message, success }` (lowercase) regardless of which surface served the request — the legacy SUGboxAPI dispatcher's uppercase envelope is rewritten internally.
80
+ - For testing the Pro v2/k surface without an account, SignUpGenius publishes a frozen demo key: `V0FzMkxZcmVOZlVnclZMVEl6dGhWQT09`.
81
+
82
+ Developed and maintained by AI (Claude). Use at your own discretion.