Sign-up sheets people claim
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Use this when the user wants people to claim slots: potluck dishes, volunteer shifts, carpool seats, snack turns. It publishes a shared page where each person enters a first name and picks slots; each slot has a capacity and a full slot cannot be taken. Returns a public link to share and a private organizer link. Slots may have dates and times (then give an IANA time_zone). Does not send emails or reminders and does not take payments.
1-60 slots in display order, e.g. [{"label": "Salad", "capacity": 2}, {"label": "Dessert", "capacity": 3}].
Sheet title, e.g. Thanksgiving potluck or Food drive volunteer shifts.
Short note shown on the sheet, e.g. Please bring serving spoons.
Organizer display name shown on the sheet, e.g. Coach Lee.
IANA time zone for slot dates and times, e.g. America/Chicago. Needed when any slot has a start.
Show first names on each slot to everyone with the link (helps avoid duplicate dishes). Default false. Example: true.
How many slots one person may take, 1-60. Default 1. Example: 2.
This tool isn't marked read-only, so it may change something on the server or in an account you connected.
Pick your client. Values in capitals, like YOUR_TOKEN, are yours to fill in.
Run in a terminal
claude mcp add --transport http signup-sheet https://signup-sheet.zovo.one/mcp
Use this when the user wants people to claim slots: potluck dishes, volunteer shifts, carpool seats, snack turns. It publishes a shared page where each person enters a first name and picks slots; each slot has a capacity and a full slot cannot be taken. Returns a public link to share and a private organizer link. Slots may have dates and times (then give an IANA time_zone). Does not send emails or reminders and does not take payments.
| Argument | Type | Description |
|---|---|---|
| note | string | Short note shown on the sheet, e.g. Please bring serving spoons. |
| slots* | array | 1-60 slots in display order, e.g. [{"label": "Salad", "capacity": 2}, {"label": "Dessert", "capacity": 3}]. |
| title* | string | Sheet title, e.g. Thanksgiving potluck or Food drive volunteer shifts. |
| host_name | string | Organizer display name shown on the sheet, e.g. Coach Lee. |
| time_zone | string | IANA time zone for slot dates and times, e.g. America/Chicago. Needed when any slot has a start. |
| show_names | boolean | Show first names on each slot to everyone with the link (helps avoid duplicate dishes). Default false. Example: true. |
| max_per_person | integer | How many slots one person may take, 1-60. Default 1. Example: 2. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"title",
"slots"
],
"properties": {
"note": {
"type": "string",
"maxLength": 600,
"description": "Short note shown on the sheet, e.g. Please bring serving spoons."
},
"slots": {
"type": "array",
"items": {
"type": "object",
"required": [
"label"
],
"properties": {
"end": {
"type": "string",
"maxLength": 40,
"description": "Optional end: HH:MM the same day (e.g. 12:00), or YYYY-MM-DDTHH:MM, or for a date slot the last day YYYY-MM-DD."
},
"label": {
"type": "string",
"maxLength": 80,
"minLength": 1,
"description": "What people sign up for, e.g. Main dish, Saturday 9-12 shift, Car seat to the game."
},
"start": {
"type": "string",
"maxLength": 40,
"description": "Optional local start YYYY-MM-DDTHH:MM, or a date YYYY-MM-DD, in time_zone, e.g. 2026-11-14T09:00."
},
"capacity": {
"type": "integer",
"maximum": 50,
"minimum": 1,
"description": "How many people this slot takes, 1-50. Default 1. Example: 3."
}
}
},
"maxItems": 60,
"minItems": 1,
"description": "1-60 slots in display order, e.g. [{\"label\": \"Salad\", \"capacity\": 2}, {\"label\": \"Dessert\", \"capacity\": 3}]."
},
"title": {
"type": "string",
"maxLength": 120,
"minLength": 1,
"description": "Sheet title, e.g. Thanksgiving potluck or Food drive volunteer shifts."
},
"host_name": {
"type": "string",
"maxLength": 60,
"description": "Organizer display name shown on the sheet, e.g. Coach Lee."
},
"time_zone": {
"type": "string",
"maxLength": 64,
"description": "IANA time zone for slot dates and times, e.g. America/Chicago. Needed when any slot has a start."
},
"show_names": {
"type": "boolean",
"description": "Show first names on each slot to everyone with the link (helps avoid duplicate dishes). Default false. Example: true."
},
"max_per_person": {
"type": "integer",
"maximum": 60,
"minimum": 1,
"description": "How many slots one person may take, 1-60. Default 1. Example: 2."
}
}
}Use this when the user asks who signed up, what is still open, or how many spots are left on a sheet made with create_signup_sheet. Takes the private organizer link and returns each slot with its capacity, spots taken, open spots and names, plus people's notes. Does not work with the public link and does not change the sheet.
| Argument | Type | Description |
|---|---|---|
| manage_url* | string | The private organizer link returned when the sheet was created, e.g. https://signup-sheet.zovo.one/m/AbC.../XyZ.... The public link (/p/...) does not work here. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"manage_url"
],
"properties": {
"manage_url": {
"type": "string",
"maxLength": 300,
"minLength": 10,
"description": "The private organizer link returned when the sheet was created, e.g. https://signup-sheet.zovo.one/m/AbC.../XyZ.... The public link (/p/...) does not work here."
}
}
}Use this when the organizer wants to change a sheet made with create_signup_sheet: add slots, change a slot's label or capacity, remove an empty slot, change the per-person limit, show or hide names, edit the note, or close and reopen sign-ups. Takes the organizer link and only the changes. A capacity cannot go below the people already signed up, and a slot with sign-ups cannot be removed. Does not notify participants.
| Argument | Type | Description |
|---|---|---|
| note | string | Short note shown on the sheet, e.g. Please bring serving spoons. |
| title | string | Sheet title, e.g. Thanksgiving potluck or Food drive volunteer shifts. |
| sign_ups | string | close stops new sign-ups; reopen allows them again. Example: close. |
| add_slots | array | New slots added at the end, e.g. [{"label": "Ice", "capacity": 1}]. |
| time_zone | string | IANA time zone for slot dates and times, e.g. America/Chicago. Needed when any slot has a start. |
| manage_url* | string | The private organizer link returned when the sheet was created, e.g. https://signup-sheet.zovo.one/m/AbC.../XyZ.... The public link (/p/...) does not work here. |
| show_names | boolean | Show first names on each slot to everyone with the link (helps avoid duplicate dishes). Default false. Example: true. |
We read every tool's name, description and inputs the way the model will, looking for instructions hidden from you. A clean result means no warning signs, not a guarantee. Scanned Nov 8, 2026.
| change_slots | array | Changes to existing slots, e.g. [{"slot": "Salad", "capacity": 3}]. |
| remove_slots | array | Labels or numbers of empty slots to remove, e.g. ["Ice"]. |
| max_per_person | integer | How many slots one person may take, 1-60. Default 1. Example: 2. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"manage_url"
],
"properties": {
"note": {
"type": "string",
"maxLength": 600,
"description": "Short note shown on the sheet, e.g. Please bring serving spoons."
},
"title": {
"type": "string",
"maxLength": 120,
"minLength": 1,
"description": "Sheet title, e.g. Thanksgiving potluck or Food drive volunteer shifts."
},
"sign_ups": {
"enum": [
"close",
"reopen"
],
"type": "string",
"description": "close stops new sign-ups; reopen allows them again. Example: close."
},
"add_slots": {
"type": "array",
"items": {
"type": "object",
"required": [
"label"
],
"properties": {
"end": {
"type": "string",
"maxLength": 40,
"description": "Optional end: HH:MM the same day (e.g. 12:00), or YYYY-MM-DDTHH:MM, or for a date slot the last day YYYY-MM-DD."
},
"label": {
"type": "string",
"maxLength": 80,
"minLength": 1,
"description": "What people sign up for, e.g. Main dish, Saturday 9-12 shift, Car seat to the game."
},
"start": {
"type": "string",
"maxLength": 40,
"description": "Optional local start YYYY-MM-DDTHH:MM, or a date YYYY-MM-DD, in time_zone, e.g. 2026-11-14T09:00."
},
"capacity": {
"type": "integer",
"maximum": 50,
"minimum": 1,
"description": "How many people this slot takes, 1-50. Default 1. Example: 3."
}
}
},
"maxItems": 60,
"description": "New slots added at the end, e.g. [{\"label\": \"Ice\", \"capacity\": 1}]."
},
"time_zone": {
"type": "string",
"maxLength": 64,
"description": "IANA time zone for slot dates and times, e.g. America/Chicago. Needed when any slot has a start."
},
"manage_url": {
"type": "string",
"maxLength": 300,
"minLength": 10,
"description": "The private organizer link returned when the sheet was created, e.g. https://signup-sheet.zovo.one/m/AbC.../XyZ.... The public link (/p/...) does not work here."
},
"show_names": {
"type": "boolean",
"description": "Show first names on each slot to everyone with the link (helps avoid duplicate dishes). Default false. Example: true."
},
"change_slots": {
"type": "array",
"items": {
"type": "object",
"required": [
"slot"
],
"properties": {
"slot": {
"type": "string",
"maxLength": 80,
"minLength": 1,
"description": "The slot to change: its label or its number in the results, e.g. Salad or 2."
},
"label": {
"type": "string",
"maxLength": 80,
"minLength": 1,
"description": "New label, e.g. Green salad."
},
"capacity": {
"type": "integer",
"maximum": 50,
"minimum": 1,
"description": "New capacity, e.g. 4."
}
}
},
"maxItems": 60,
"description": "Changes to existing slots, e.g. [{\"slot\": \"Salad\", \"capacity\": 3}]."
},
"remove_slots": {
"type": "array",
"items": {
"type": "string",
"maxLength": 80,
"minLength": 1
},
"maxItems": 60,
"description": "Labels or numbers of empty slots to remove, e.g. [\"Ice\"]."
},
"max_per_person": {
"type": "integer",
"maximum": 60,
"minimum": 1,
"description": "How many slots one person may take, 1-60. Default 1. Example: 2."
}
}
}