@phenomenalorg/mcp 0.5.9 → 0.5.10

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@phenomenalorg/mcp",
3
- "version": "0.5.9",
3
+ "version": "0.5.10",
4
4
  "type": "module",
5
5
  "description": "Phenomenal MCP bridge — connects a stdio-only MCP client to the Phenomenal MCP server over Streamable HTTP, with browser sign-in.",
6
6
  "license": "MIT",
package/skill/SKILL.md CHANGED
@@ -8,7 +8,7 @@ description: Use when the user wants to manage a PTO, school or club in Phenomen
8
8
  <!-- Generated from the Phenomenal tool registry. Do not edit by hand: a drift
9
9
  gate fails when these files are not what the registry currently says. -->
10
10
 
11
- _Tool surface: 47 tools · 171 actions · 5 prompts · fingerprint `f3ec65c7`._
11
+ _Tool surface: 48 tools · 180 actions · 5 prompts · fingerprint `5ca86a2e`._
12
12
 
13
13
  You are connected to Phenomenal, the platform for this PTO's site, members, events, tickets, email, forms, store and money.
14
14
 
@@ -3,7 +3,7 @@
3
3
  <!-- Generated from the Phenomenal tool registry. Do not edit by hand: a drift
4
4
  gate fails when these files are not what the registry currently says. -->
5
5
 
6
- _Tool surface: 47 tools · 171 actions · 5 prompts · fingerprint `f3ec65c7`._
6
+ _Tool surface: 48 tools · 180 actions · 5 prompts · fingerprint `5ca86a2e`._
7
7
 
8
8
  The curated tools in `references/tools.md` cover the work an officer does most days. Everything else Phenomenal can do is reachable by name:
9
9
 
@@ -70,13 +70,19 @@ Areas: account, brand, broadcasts, connections, domains, drive, email-preference
70
70
 
71
71
  - `createEvent` — Prefer the `create_event` tool. Create an event.
72
72
  - `createTicketType` — Add a ticket type (price, capacity) to an event.
73
+ - `createVolunteerRole` — Create a volunteer role on an event — the job itself, like 'Ticket table'.
74
+ - `createVolunteerShift` — Add a shift to a volunteer role: a start, an end, and how many people are needed.
73
75
  - `deleteEvent` **(confirm)** — Delete an event and its ticket types.
74
76
  - `deleteTicketType` **(confirm)** — Delete a ticket type from an event.
77
+ - `deleteVolunteerRole` **(confirm)** — Remove a role, its shifts and everyone signed up for them.
78
+ - `deleteVolunteerShift` **(confirm)** — Remove one shift and everyone signed up for it.
75
79
  - `setEventPublished` **(confirm)** — Prefer the `set_event_published` tool. Publish or unpublish an event.
76
80
  - `setEventVisibility` **(confirm)** — Set who can see an event — everyone, members, or one group.
77
81
  - `translateEvent` — Fill in an event's missing translations for the organization's languages.
78
82
  - `updateEvent` — Prefer the `update_event` tool. Change an event — time, place, description, page content.
79
83
  - `updateTicketType` — Change a ticket type's name, price, capacity or availability.
84
+ - `updateVolunteerRole` — Change a volunteer role's name or description.
85
+ - `updateVolunteerShift` — Change a shift's times or how many people are needed.
80
86
 
81
87
  ## forms
82
88
 
@@ -252,7 +258,10 @@ Areas: account, brand, broadcasts, connections, domains, drive, email-preference
252
258
 
253
259
  ## tickets
254
260
 
261
+ - `cancelMyBooking` — Cancel a booking you made yourself.
255
262
  - `checkInTicket` — Check a ticket in at the door by its code.
263
+ - `claimShift` — Take a seat on a volunteer shift, as yourself.
256
264
  - `compTickets` **(confirm)** — Issue free tickets to someone for an event.
257
265
  - `refundTicketOrder` **(confirm)** — Prefer the `refund_ticket_order` tool. Refund a ticket order in full and void its tickets.
266
+ - `releaseShift` — Give up a volunteer shift you claimed yourself.
258
267
  - `undoCheckIn` — Undo a ticket check-in at the door.
@@ -3,7 +3,7 @@
3
3
  <!-- Generated from the Phenomenal tool registry. Do not edit by hand: a drift
4
4
  gate fails when these files are not what the registry currently says. -->
5
5
 
6
- _Tool surface: 47 tools · 171 actions · 5 prompts · fingerprint `f3ec65c7`._
6
+ _Tool surface: 48 tools · 180 actions · 5 prompts · fingerprint `5ca86a2e`._
7
7
 
8
8
  Two tools answer questions no curated tool anticipated.
9
9
 
@@ -3,7 +3,7 @@
3
3
  <!-- Generated from the Phenomenal tool registry. Do not edit by hand: a drift
4
4
  gate fails when these files are not what the registry currently says. -->
5
5
 
6
- _Tool surface: 47 tools · 171 actions · 5 prompts · fingerprint `f3ec65c7`._
6
+ _Tool surface: 48 tools · 180 actions · 5 prompts · fingerprint `5ca86a2e`._
7
7
 
8
8
  Phenomenal runs a school's PTO: its public website, its member roster, its events and tickets, its email to families, its forms, its store and its money. It exposes all of that over the Model Context Protocol, so an assistant an officer already uses can do the work with them.
9
9
 
@@ -3,7 +3,7 @@
3
3
  <!-- Generated from the Phenomenal tool registry. Do not edit by hand: a drift
4
4
  gate fails when these files are not what the registry currently says. -->
5
5
 
6
- _Tool surface: 47 tools · 171 actions · 5 prompts · fingerprint `f3ec65c7`._
6
+ _Tool surface: 48 tools · 180 actions · 5 prompts · fingerprint `5ca86a2e`._
7
7
 
8
8
  Every tool the Phenomenal MCP server offers, in the order a client lists them. `list_my_orgs` is first because every other tool needs an organization id from it.
9
9
 
@@ -169,7 +169,7 @@ Read one authorized reusable composition and exact revision with complete blocks
169
169
  **Arguments**
170
170
 
171
171
  - `orgId` (string) — The organization to act for — an id from list_my_orgs. Never invent one; if you are unsure which, ask the person.
172
- - `contentId` (string, required)
172
+ - `contentId` (string, required) — The id of the saved piece, from list_reusable_content. Not a page or event id.
173
173
  - `revisionId` (string) — Optional exact immutable revision id.
174
174
 
175
175
  ### `save_reusable_content_new`
@@ -182,7 +182,7 @@ Save a new private reusable-content identity from complete canonical blocks. It
182
182
 
183
183
  - `orgId` (string) — The organization to act for — an id from list_my_orgs. Never invent one; if you are unsure which, ask the person.
184
184
  - `ownerGroupId` (any)
185
- - `name` (string, required)
185
+ - `name` (string, required) — What an officer will see this saved piece called in the library — a short human name, not a slug.
186
186
  - `description` (string)
187
187
  - `blocks` (array, required) — The complete canonical Phenomenal block array, including every locale and child.
188
188
  - `initialUseAudience` (string, required) — public, members, or group:<uuid>.
@@ -197,9 +197,9 @@ Append one immutable complete-block revision under exact revision and policy com
197
197
  **Arguments**
198
198
 
199
199
  - `orgId` (string) — The organization to act for — an id from list_my_orgs. Never invent one; if you are unsure which, ask the person.
200
- - `contentId` (string, required)
201
- - `expectedRevisionId` (string, required)
202
- - `expectedPolicyVersion` (integer, required)
200
+ - `contentId` (string, required) — The saved piece to write a new revision of, from list_reusable_content.
201
+ - `expectedRevisionId` (string, required) — The revision you READ, from get_reusable_content. The write is refused if somebody else saved since — send the value you were given, never one you composed.
202
+ - `expectedPolicyVersion` (integer, required) — The policy version you READ, from get_reusable_content. Guards the same write against a sharing-policy change; send the value you were given.
203
203
  - `blocks` (array, required) — The complete canonical Phenomenal block array, including every locale and child.
204
204
  - `idempotencyKey` (string, required) — A caller-stable key for this exact input.
205
205
 
@@ -212,13 +212,13 @@ Read source and destination state first, then create actor-bound 30-minute stagi
212
212
  **Arguments**
213
213
 
214
214
  - `orgId` (string) — The organization to act for — an id from list_my_orgs. Never invent one; if you are unsure which, ask the person.
215
- - `contentId` (string, required)
215
+ - `contentId` (string, required) — The saved piece to copy FROM, from list_reusable_content.
216
216
  - `revisionId` (string) — Optional exact source revision. Reuse the returned source.revisionId on retry.
217
- - `destination` (object, required)
218
- - `expectedDestinationToken` (string, required)
217
+ - `destination` (object, required) — Where the copy lands: the kind of surface and that surface’s own id.
218
+ - `expectedDestinationToken` (string, required) — The destination token you READ for this surface. The copy is refused if the destination changed since — send the value you were given, never one you composed.
219
219
  - `destinationAudience` (string, required) — public, members, or group:<uuid>.
220
220
  - `candidateBlocks` (array, required) — The complete canonical Phenomenal block array, including every locale and child.
221
- - `insertionIndex` (integer, required)
221
+ - `insertionIndex` (integer, required) — Where in the destination the copied blocks go: 0 puts them first, and the destination’s current block count puts them last.
222
222
  - `idempotencyKey` (string, required) — A caller-stable key for this exact prepare.
223
223
 
224
224
  ### `draft_page`
@@ -338,6 +338,16 @@ The groups in a Phenomenal organization — classes, committees, teams — with
338
338
 
339
339
  - `orgId` (string) — The organization to act for — an id from list_my_orgs. Never invent one; if you are unsure which, ask the person.
340
340
 
341
+ ### `groups_i_can_join`
342
+
343
+ The groups at this school that a family can join themselves — clubs, committees and volunteer teams the school opened to anyone. Use this before joinGroup: it is the only way to find a group by what it is about rather than by its exact name. Groups an administrator manages are not here and cannot be joined this way. "joined" says whether this person is already in one.
344
+
345
+ **Hints:** read-only, idempotent. **Confirm:** not required.
346
+
347
+ **Arguments**
348
+
349
+ - `orgId` (string) — The organization to act for — an id from list_my_orgs. Never invent one; if you are unsure which, ask the person.
350
+
341
351
  ### `list_group_members`
342
352
 
343
353
  Who is in one Phenomenal group, with each person's relation to it (member, steward) and whether they are still active.