SignUpSheet.page

Free sign-up sheets, date polls and group cards people join from one link. No accounts, no ads.

使うべきか

品質と安全性

A
説明の品質
100%
スキーマの完全性
99%
命名の品質
100%
ポイズニングのリスク
100%
権限の一致
100%
プロトコルへの準拠
100%

ツール定義とプロトコルへの準拠に関する自動分析に基づいています。

コンテキストコスト

~3,906トークン数(ツール定義)
~9.6 KB一般的なレスポンスサイズ
注意への影響は大きい(128k コンテキストの 3.05%)

これは、サーバーのツールがモデルのコンテキストに読み込まれるたびに消費されるおおよそのトークン数です。数が多いほど、ほかのタスクに使える注意が減ります。

インストール

ワンクリックインストール

これを `claude_desktop_config.json` ファイルに追加してください:

{
  "mcpServers": {
    "signupsheet": {
      "url": "https://signupsheet.page/mcp"
    }
  }
}

リモートエンドポイント

https://signupsheet.page/mcpstreamable-http

できること

ツール一覧

ツール(4)

🟢 読み取り専用🟡 書き込み🔴 削除⚪ 不明
🟡create_signup_sheet(title, description, slots, show_names, require_email, ...)

Creates a live online sign-up sheet on SignUpSheet.page where people claim slots from one shared link without an account, and returns the share link and the private organizer link. Use it when the user wants people to sign up for things: dishes for a potluck or class party, volunteer shifts, snack or carpool days, meal train dates, appointment or conference time slots, supplies to bring, classroom helpers. Each slot has a label, an optional date and start/end time, and how many people it needs; full slots get a waitlist and people get a reminder the day before. Not for voting on dates, group cards, ticket sales or paid registration.

入力スキーマ

{
  "type": "object",
  "properties": {
    "title": {
      "type": "string",
      "minLength": 1,
      "maxLength": 100,
      "description": "Sheet title, e.g. 'Room 12 Thanksgiving potluck – Nov 20'."
    },
    "description": {
      "type": "string",
      "maxLength": 1000,
      "description": "Optional details shown at the top: place, time, what to bring. Plain text; web links are removed."
    },
    "slots": {
      "type": "array",
      "minItems": 1,
      "maxItems": 200,
      "description": "What people can sign up for, in display order.",
      "items": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "label"
        ],
        "properties": {
          "label": {
            "type": "string",
            "minLength": 1,
            "maxLength": 80,
            "description": "e.g. 'Main dish', 'Setup crew', 'Conference 3:00'."
          },
          "date": {
            "type": "string",
            "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
            "description": "Optional date, YYYY-MM-DD."
          },
          "start_time": {
            "type": "string",
            "pattern": "^([01]\\d|2[0-3]):[0-5]\\d$",
            "description": "Optional start, 24-hour HH:MM."
          },
          "end_time": {
            "type": "string",
            "pattern": "^([01]\\d|2[0-3]):[0-5]\\d$",
            "description": "Optional end, 24-hour HH:MM (needs start_time)."
          },
          "capacity": {
            "type": "integer",
            "minimum": 0,
            "maximum": 500,
            "default": 1,
            "description": "How many people this slot needs; 0 = unlimited."
          }
        }
      }
    },
    "show_names": {
      "type": "boolean",
      "default": true,
      "description": "Show who signed up to everyone with the link."
    },
    "require_email": {
      "type": "boolean",
      "default": false,
      "description": "Ask people for an email when signing up (enables reminders and self-cancel links)."
    },
    "one_per_person": {
      "type": "boolean",
      "default": false,
      "description": "Allow only one slot per person (checked by email; turns on require_email)."
    },
    "organizer_name": {
      "type": "string",
      "maxLength": 60,
      "description": "Name shown as the organizer, e.g. 'Dana'. Use the user's name if they gave it; otherwise omit."
    },
    "organizer_email": {
      "type": "string",
      "maxLength": 200,
      "description": "Optional. Only an email address the user gave in this conversation. If set, both links are emailed to it so the private organizer link is not lost. Never guess an address."
    },
    "language": {
      "type": "string",
      "enum": [
        "en",
        "es",
        "pt",
        "fr",
        "de",
        "it",
        "nl",
        "pl",
        "ru",
        "tr",
        "he",
        "ar",
        "zh",
        "ja",
        "ko"
      ],
      "description": "Language of the pages and emails people will see. Use the language the user is writing in; 'en' if it is not in the list."
    },
    "timezone": {
      "type": "string",
      "maxLength": 64,
      "description": "IANA time zone of the event, e.g. 'America/Chicago' or 'Europe/Madrid'. Needed when dates or times are given (reminders and calendar files use it)."
    },
    "chip_in": {
      "type": "object",
      "additionalProperties": false,
      "description": "Optional money collection on the same link. People pledge an amount and pay the organizer directly in the organizer's own payment app; SignUpSheet.page does not hold or transfer money. Include at least one way to pay, using only handles the user gave you. Venmo and Zelle work in US dollars only, Cash App in US dollars and pounds.",
      "properties": {
        "purpose": {
          "type": "string",
          "maxLength": 80,
          "description": "What the money is for, e.g. 'Gift for Ms. Lee'."
        },
        "suggested_amount": {
          "type": "integer",
          "minimum": 1,
          "maximum": 1000000,
          "description": "Suggested amount per person, in whole units of the currency (default 10 US dollars or a similar round amount)."
        },
        "goal": {
          "type": "integer",
          "minimum": 0,
          "maximum": 100000000,
          "default": 0,
          "description": "Optional total goal; 0 = no goal."
        },
        "currency": {
          "type": "string",
          "enum": [
            "USD",
            "EUR",
            "GBP",
            "CAD",
            "AUD",
            "MXN",
            "BRL",
            "ILS",
            "PLN",
            "TRY",
            "CHF",
            "JPY",
            "KRW",
            "CNY",
            "INR",
            "ARS",
            "COP",
            "CLP",
            "PEN",
            "ZAR",
            "NZD",
            "SEK",
            "NOK",
            "DKK",
            "CZK",
            "HUF",
            "RON",
            "AED",
            "SAR",
            "EGP",
            "MAD",
            "SGD",
            "HKD",
            "TWD",
            "PHP",
            "RUB",
            "UAH",
            "KZT"
          ],
          "description": "Currency of the amounts. Default: US dollars when Venmo, Cash App or Zelle is given, otherwise the usual currency for the language."
        },
        "paypal_me": {
          "type": "string",
          "maxLength": 30,
          "description": "PayPal.Me name (the part after paypal.me/)."
        },
        "venmo": {
          "type": "string",
          "maxLength": 31,
          "description": "Venmo username."
        },
        "cashapp": {
          "type": "string",
          "maxLength": 21,
          "description": "Cash App $cashtag."
        },
        "revolut": {
          "type": "string",
          "maxLength": 33,
          "description": "Revolut username."
        },
        "zelle": {
          "type": "string",
          "maxLength": 40,
          "description": "Zelle email or US phone the user gave."
        },
        "other": {
          "type": "string",
          "maxLength": 90,
          "description": "Any other way to pay, as plain text (no links)."
        }
      }
    }
  },
  "required": [
    "title",
    "slots"
  ],
  "additionalProperties": false
}

出力スキーマ

{
  "type": "object",
  "properties": {
    "kind": {
      "type": "string",
      "enum": [
        "signup_sheet",
        "date_poll",
        "group_card"
      ]
    },
    "title": {
      "type": "string"
    },
    "share_url": {
      "type": "string",
      "description": "Public link to send to participants."
    },
    "organizer_url": {
      "type": "string",
      "description": "Private management link for the person who asked. Left out only when a repeated request returns a sheet whose organizer link went to the organizer email (see organizer_url_note)."
    },
    "organizer_url_note": {
      "type": "string"
    },
    "flyer_url": {
      "type": "string",
      "description": "Printable QR-code flyer for the sheet."
    },
    "emailed_links_to": {
      "type": [
        "string",
        "null"
      ],
      "description": "Masked address the links are being emailed to, or null."
    },
    "language": {
      "type": "string"
    },
    "timezone": {
      "type": "string"
    },
    "item_count": {
      "type": "integer"
    },
    "chip_in": {
      "type": "boolean"
    },
    "warnings": {
      "type": "array",
      "items": {
        "type": "string"
      }
    }
  },
  "required": [
    "kind",
    "title",
    "share_url",
    "organizer_url_note"
  ],
  "additionalProperties": false
}
🟡create_date_poll(title, description, options, organizer_name, organizer_email, ...)

Creates a group scheduling poll on SignUpSheet.page: people open one link and answer yes, maybe or no for each date or time option, and the option that works for most people is highlighted. Returns the share link and the private organizer link, where the organizer can pick the final time and notify everyone who left an email. Use it when the user wants to find a date or time that works for a group, such as a meeting, dinner, reunion, parent night or study session. Not for sign-up slots or opinion polls without dates.

入力スキーマ

{
  "type": "object",
  "properties": {
    "title": {
      "type": "string",
      "minLength": 1,
      "maxLength": 100,
      "description": "e.g. 'Book club – November meeting'."
    },
    "description": {
      "type": "string",
      "maxLength": 1000,
      "description": "Optional details (place, length). Plain text; web links are removed."
    },
    "options": {
      "type": "array",
      "minItems": 2,
      "maxItems": 60,
      "description": "Date or date-and-time options to vote on. They are shown in date order.",
      "items": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "date"
        ],
        "properties": {
          "date": {
            "type": "string",
            "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
            "description": "YYYY-MM-DD."
          },
          "start_time": {
            "type": "string",
            "pattern": "^([01]\\d|2[0-3]):[0-5]\\d$",
            "description": "Optional start, 24-hour HH:MM."
          },
          "end_time": {
            "type": "string",
            "pattern": "^([01]\\d|2[0-3]):[0-5]\\d$",
            "description": "Optional end, 24-hour HH:MM (needs start_time)."
          }
        }
      }
    },
    "organizer_name": {
      "type": "string",
      "maxLength": 60,
      "description": "Name shown as the organizer, e.g. 'Dana'. Use the user's name if they gave it; otherwise omit."
    },
    "organizer_email": {
      "type": "string",
      "maxLength": 200,
      "description": "Optional. Only an email address the user gave in this conversation. If set, both links are emailed to it so the private organizer link is not lost. Never guess an address."
    },
    "language": {
      "type": "string",
      "enum": [
        "en",
        "es",
        "pt",
        "fr",
        "de",
        "it",
        "nl",
        "pl",
        "ru",
        "tr",
        "he",
        "ar",
        "zh",
        "ja",
        "ko"
      ],
      "description": "Language of the pages and emails people will see. Use the language the user is writing in; 'en' if it is not in the list."
    },
    "timezone": {
      "type": "string",
      "maxLength": 64,
      "description": "IANA time zone of the event, e.g. 'America/Chicago' or 'Europe/Madrid'. Needed when dates or times are given (reminders and calendar files use it)."
    }
  },
  "required": [
    "title",
    "options"
  ],
  "additionalProperties": false
}

出力スキーマ

{
  "type": "object",
  "properties": {
    "kind": {
      "type": "string",
      "enum": [
        "signup_sheet",
        "date_poll",
        "group_card"
      ]
    },
    "title": {
      "type": "string"
    },
    "share_url": {
      "type": "string",
      "description": "Public link to send to participants."
    },
    "organizer_url": {
      "type": "string",
      "description": "Private management link for the person who asked. Left out only when a repeated request returns a sheet whose organizer link went to the organizer email (see organizer_url_note)."
    },
    "organizer_url_note": {
      "type": "string"
    },
    "flyer_url": {
      "type": "string",
      "description": "Printable QR-code flyer for the sheet."
    },
    "emailed_links_to": {
      "type": [
        "string",
        "null"
      ],
      "description": "Masked address the links are being emailed to, or null."
    },
    "language": {
      "type": "string"
    },
    "timezone": {
      "type": "string"
    },
    "item_count": {
      "type": "integer"
    },
    "chip_in": {
      "type": "boolean"
    },
    "warnings": {
      "type": "array",
      "items": {
        "type": "string"
      }
    }
  },
  "required": [
    "kind",
    "title",
    "share_url",
    "organizer_url_note"
  ],
  "additionalProperties": false
}
🟡create_group_card(recipient_name, occasion, title, message_to_signers, show_messages, ...)

Creates an online group card on SignUpSheet.page for one person: everyone opens one shared link and writes a message, and the organizer delivers the finished card later by email, on screen or printed. Use it for a farewell, birthday, retirement, thank-you, new baby, get well, sympathy, welcome, wedding, graduation, work anniversary or congratulations card from a team, class or family. It can also collect money for a gift (chip_in): signers pledge an amount and pay the organizer directly. Returns the share link (for signers, not for the recipient) and the private organizer link.

入力スキーマ

{
  "type": "object",
  "properties": {
    "recipient_name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 60,
      "description": "Who the card is for, e.g. 'Sarah'."
    },
    "occasion": {
      "type": "string",
      "enum": [
        "farewell",
        "birthday",
        "thank_you",
        "retirement",
        "new_baby",
        "get_well",
        "congratulations",
        "welcome",
        "wedding",
        "graduation",
        "sympathy",
        "work_anniversary",
        "just_because"
      ]
    },
    "title": {
      "type": "string",
      "maxLength": 100,
      "description": "Optional; defaults to e.g. 'Farewell card for Sarah' in the chosen language."
    },
    "message_to_signers": {
      "type": "string",
      "maxLength": 1000,
      "description": "Optional note shown to signers, e.g. 'Sign by Friday — we give it at lunch.' Plain text."
    },
    "show_messages": {
      "type": "boolean",
      "default": true,
      "description": "Let signers see each other's messages before the card is delivered."
    },
    "organizer_name": {
      "type": "string",
      "maxLength": 60,
      "description": "Name shown as the organizer, e.g. 'Dana'. Use the user's name if they gave it; otherwise omit."
    },
    "organizer_email": {
      "type": "string",
      "maxLength": 200,
      "description": "Optional. Only an email address the user gave in this conversation. If set, both links are emailed to it so the private organizer link is not lost. Never guess an address."
    },
    "language": {
      "type": "string",
      "enum": [
        "en",
        "es",
        "pt",
        "fr",
        "de",
        "it",
        "nl",
        "pl",
        "ru",
        "tr",
        "he",
        "ar",
        "zh",
        "ja",
        "ko"
      ],
      "description": "Language of the pages and emails people will see. Use the language the user is writing in; 'en' if it is not in the list."
    },
    "timezone": {
      "type": "string",
      "maxLength": 64,
      "description": "IANA time zone of the event, e.g. 'America/Chicago' or 'Europe/Madrid'. Needed when dates or times are given (reminders and calendar files use it)."
    },
    "chip_in": {
      "type": "object",
      "additionalProperties": false,
      "description": "Optional money collection on the same link. People pledge an amount and pay the organizer directly in the organizer's own payment app; SignUpSheet.page does not hold or transfer money. Include at least one way to pay, using only handles the user gave you. Venmo and Zelle work in US dollars only, Cash App in US dollars and pounds.",
      "properties": {
        "purpose": {
          "type": "string",
          "maxLength": 80,
          "description": "What the money is for, e.g. 'Gift for Ms. Lee'."
        },
        "suggested_amount": {
          "type": "integer",
          "minimum": 1,
          "maximum": 1000000,
          "description": "Suggested amount per person, in whole units of the currency (default 10 US dollars or a similar round amount)."
        },
        "goal": {
          "type": "integer",
          "minimum": 0,
          "maximum": 100000000,
          "default": 0,
          "description": "Optional total goal; 0 = no goal."
        },
        "currency": {
          "type": "string",
          "enum": [
            "USD",
            "EUR",
            "GBP",
            "CAD",
            "AUD",
            "MXN",
            "BRL",
            "ILS",
            "PLN",
            "TRY",
            "CHF",
            "JPY",
            "KRW",
            "CNY",
            "INR",
            "ARS",
            "COP",
            "CLP",
            "PEN",
            "ZAR",
            "NZD",
            "SEK",
            "NOK",
            "DKK",
            "CZK",
            "HUF",
            "RON",
            "AED",
            "SAR",
            "EGP",
            "MAD",
            "SGD",
            "HKD",
            "TWD",
            "PHP",
            "RUB",
            "UAH",
            "KZT"
          ],
          "description": "Currency of the amounts. Default: US dollars when Venmo, Cash App or Zelle is given, otherwise the usual currency for the language."
        },
        "paypal_me": {
          "type": "string",
          "maxLength": 30,
          "description": "PayPal.Me name (the part after paypal.me/)."
        },
        "venmo": {
          "type": "string",
          "maxLength": 31,
          "description": "Venmo username."
        },
        "cashapp": {
          "type": "string",
          "maxLength": 21,
          "description": "Cash App $cashtag."
        },
        "revolut": {
          "type": "string",
          "maxLength": 33,
          "description": "Revolut username."
        },
        "zelle": {
          "type": "string",
          "maxLength": 40,
          "description": "Zelle email or US phone the user gave."
        },
        "other": {
          "type": "string",
          "maxLength": 90,
          "description": "Any other way to pay, as plain text (no links)."
        }
      }
    }
  },
  "required": [
    "recipient_name",
    "occasion"
  ],
  "additionalProperties": false
}

出力スキーマ

{
  "type": "object",
  "properties": {
    "kind": {
      "type": "string",
      "enum": [
        "signup_sheet",
        "date_poll",
        "group_card"
      ]
    },
    "title": {
      "type": "string"
    },
    "share_url": {
      "type": "string",
      "description": "Public link to send to participants."
    },
    "organizer_url": {
      "type": "string",
      "description": "Private management link for the person who asked. Left out only when a repeated request returns a sheet whose organizer link went to the organizer email (see organizer_url_note)."
    },
    "organizer_url_note": {
      "type": "string"
    },
    "flyer_url": {
      "type": "string",
      "description": "Printable QR-code flyer for the sheet."
    },
    "emailed_links_to": {
      "type": [
        "string",
        "null"
      ],
      "description": "Masked address the links are being emailed to, or null."
    },
    "language": {
      "type": "string"
    },
    "timezone": {
      "type": "string"
    },
    "item_count": {
      "type": "integer"
    },
    "chip_in": {
      "type": "boolean"
    },
    "warnings": {
      "type": "array",
      "items": {
        "type": "string"
      }
    }
  },
  "required": [
    "kind",
    "title",
    "share_url",
    "organizer_url_note"
  ],
  "additionalProperties": false
}
🟢get_sheet_summary(share_url)

Reads the current public status of a SignUpSheet.page sign-up sheet, date poll or group card from its share link: which slots are open or full, poll answers per option, or how many people have signed a card. Use it when the user asks how their sheet, poll or card is going. Takes the public share link (signupsheet.page/s/…); it never returns email addresses or other private details.

入力スキーマ

{
  "type": "object",
  "properties": {
    "share_url": {
      "type": "string",
      "maxLength": 200,
      "description": "The public link, e.g. https://signupsheet.page/s/k3m9x2pq (an 8-character sheet id alone also works)."
    }
  },
  "required": [
    "share_url"
  ],
  "additionalProperties": false
}

出力スキーマ

{
  "type": "object",
  "properties": {
    "kind": {
      "type": "string",
      "enum": [
        "signup_sheet",
        "date_poll",
        "group_card"
      ]
    },
    "title": {
      "type": "string"
    },
    "closed": {
      "type": "boolean"
    },
    "share_url": {
      "type": "string"
    },
    "totals": {
      "type": "object"
    },
    "slots": {
      "type": "array",
      "items": {
        "type": "object"
      }
    },
    "truncated": {
      "type": "boolean"
    },
    "poll": {
      "type": "object"
    },
    "card": {
      "type": "object"
    },
    "chip_in": {
      "type": "object"
    }
  },
  "required": [
    "kind",
    "title",
    "closed",
    "share_url"
  ]
}

コミュニティ

このサーバーを評価する

エビデンス

最近の観測

検証済みバージョンは記録されていませんツール 4 件