addrbookFor publishers
← The evidence ledger

Evidence row 565029

Observed , by probe.mcp/1.

Kind
mcp.tools
About
endpoint 910887ab-f0f1-4ea0-ae19-7d54d63d51fd
Recorded
Previous row
None: the first of its kind about this subject
Body SHA-256
36762d95df857e0aedfa6503211e9c6620f73a30191f0a84499105c6a279f171
Leaf
0xd6138d7cc67b00c9dc7a899fa05ac8cbac549a9d86a3b2c7423c9838c8d3e9c7

What was observed

{
  "count": 31,
  "tools": [
    {
      "description": "Approve pending guests on a Guest Approval event. Moves the given pending guests, or all of them, to Approved, as Approve on the host's guest list does. Partiful tells each approved guest by text or email. Ids that are not pending are refused before the call waits for your approval. Returns how many were approved and how many still wait. Hosts only. By default you confirm each call; you can switch that off for this tool. Waits for the owner's approval.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "all": {
            "description": "Approve everyone who is pending instead. Default: false.",
            "type": "boolean"
          },
          "event_id": {
            "description": "event_id from list_events.",
            "type": "string"
          },
          "guest_ids": {
            "description": "Pending guest_id values from list_guests (status pending).",
            "items": {
              "type": "string"
            },
            "maxItems": 500,
            "minItems": 1,
            "type": "array"
          }
        },
        "required": [
          "event_id"
        ],
        "type": "object"
      },
      "name": "approve_guests"
    },
    {
      "description": "Cancel an event. Partiful notifies the guests. Cancels the event as Cancel event on its page does: the page stays up marked canceled. By default Partiful texts the guests on the list with your message, so this reaches real people; notify_guests false cancels without telling anyone. An event that is already canceled is refused. It cannot be undone here. Hosts only. By default you confirm each call; you can switch that off for this tool. Waits for the owner's approval.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "event_id": {
            "description": "event_id from list_events.",
            "type": "string"
          },
          "message": {
            "description": "Note to guests sent with the cancellation.",
            "maxLength": 480,
            "type": "string"
          },
          "notify_guests": {
            "description": "Let Partiful tell the guests that the event is canceled. Default: true.",
            "type": "boolean"
          }
        },
        "required": [
          "event_id"
        ],
        "type": "object"
      },
      "name": "cancel_event"
    },
    {
      "description": "Mark guests as checked in at the door, or undo it. Checks the given guests in, as the host's check-in list does, or takes the check-in back with undo. Guests get no message. Ids that are not on the guest list are refused. Returns how many guests changed and how many are checked in now. Hosts only.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "event_id": {
            "description": "event_id from list_events.",
            "type": "string"
          },
          "guest_ids": {
            "description": "guest_id values from list_guests.",
            "items": {
              "type": "string"
            },
            "maxItems": 500,
            "minItems": 1,
            "type": "array"
          },
          "undo": {
            "description": "Remove the check-in instead. Default: false.",
            "type": "boolean"
          }
        },
        "required": [
          "event_id",
          "guest_ids"
        ],
        "type": "object"
      },
      "name": "check_in_guests"
    },
    {
      "description": "The apps of the user's workspace and whether each works now: access granted or requested, the app account in the user's Cloud Browser (connected, signed out, signed in but not connected), and the one step the user has to take, with the console link. Free. Needs the user's Cotlet API key or sign-in.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "app": {
            "description": "Only this app, e.g. skool.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "name": "cotlet_apps"
    },
    {
      "description": "Clicks a link, button or other element of the current page in the user's Partiful Cloud Browser, by its number in the page's element list, and returns the URL and title after the click. It acts as the user on that site. Buttons that pay or buy and buttons on account or sign-in pages are refused. Every started minute of the session costs credits; it ends when closed or 3 minutes after the last call in the browser.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "element": {
            "description": "The element's number in the element list of the current page.",
            "minimum": 1,
            "type": "integer"
          }
        },
        "required": [
          "element"
        ],
        "type": "object"
      },
      "name": "cotlet_browser_click"
    },
    {
      "description": "Ends the session in the user's Partiful Cloud Browser: the browser keeps its cookies, goes to sleep and the per-minute charge stops. Returns the session's minutes and credits.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {},
        "type": "object"
      },
      "name": "cotlet_browser_close"
    },
    {
      "description": "Opens a public http or https address in the user's Partiful Cloud Browser and returns the URL and title it ended on. Only Partiful pages open. Every started minute of the session costs credits; it ends when closed or 3 minutes after the last call in the browser.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "url": {
            "description": "A public http or https address, e.g. https://example.com. In an app's browser, a page of that app.",
            "format": "uri",
            "type": "string"
          }
        },
        "required": [
          "url"
        ],
        "type": "object"
      },
      "name": "cotlet_browser_navigate"
    },
    {
      "description": "Wakes the user's Partiful Cloud Browser, a real Chrome hosted on Cotlet and signed in to Partiful as the user. Use it for what the Partiful tools do not cover. Opens `url` when given and returns the page's URL and title. The user watches every step live. Every started minute of the session costs credits; it ends when closed or 3 minutes after the last call in the browser.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "url": {
            "description": "A public http or https address, e.g. https://example.com. In an app's browser, a page of that app.",
            "format": "uri",
            "type": "string"
          }
        },
        "type": "object"
      },
      "name": "cotlet_browser_open"
    },
    {
      "description": "Presses one key on the current page in the user's Partiful Cloud Browser, on the element that has focus: Tab to the next field, Enter to send, Escape to close a dialog or pop-up, arrows to move through a suggestion list. Returns the URL and title after it. Enter on account pages is refused. Every started minute of the session costs credits; it ends when closed or 3 minutes after the last call in the browser.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "key": {
            "description": "The key.",
            "enum": [
              "Enter",
              "Tab",
              "Shift+Tab",
              "Escape",
              "Backspace",
              "Delete",
              "Space",
              "ArrowDown",
              "ArrowUp",
              "ArrowLeft",
              "ArrowRight",
              "PageDown",
              "PageUp",
              "Home",
              "End"
            ],
            "type": "string"
          }
        },
        "required": [
          "key"
        ],
        "type": "object"
      },
      "name": "cotlet_browser_press"
    },
    {
      "description": "Returns the current page of the user's Partiful Cloud Browser: its readable text, up to 20,000 characters, and a numbered list of its links, buttons and fields. Field values, cookies and storage are never returned. On a page longer than that, both start near where it is scrolled to. Every started minute of the session costs credits; it ends when closed or 3 minutes after the last call in the browser.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {},
        "type": "object"
      },
      "name": "cotlet_browser_read"
    },
    {
      "description": "Returns a JPEG image of the visible part of the current page in the user's Partiful Cloud Browser, with its URL and title: boards, canvases and layouts that the page text does not show. Every started minute of the session costs credits; it ends when closed or 3 minutes after the last call in the browser.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {},
        "type": "object"
      },
      "name": "cotlet_browser_screenshot"
    },
    {
      "description": "Scrolls the current page in the user's Partiful Cloud Browser with the mouse wheel, as a person does: down or up by `screens` viewport heights (default 0.8), to the top or the bottom, or until element `element` is in view. Content that loads on scroll appears, and the next read lists it. Returns the URL, title and scroll position (at_top, at_bottom). Every started minute of the session costs credits; it ends when closed or 3 minutes after the last call in the browser.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "direction": {
            "description": "Where to scroll. Default: down.",
            "enum": [
              "down",
              "up",
              "top",
              "bottom"
            ],
            "type": "string"
          },
          "element": {
            "description": "Scroll until this element of the element list is in view.",
            "minimum": 1,
            "type": "integer"
          },
          "screens": {
            "description": "How far, in viewport heights, for down and up. Default: 0.8.",
            "exclusiveMinimum": 0,
            "maximum": 10,
            "type": "number"
          }
        },
        "type": "object"
      },
      "name": "cotlet_browser_scroll"
    },
    {
      "description": "Chooses an option of a drop-down list on the current page in the user's Partiful Cloud Browser, by the list's number in the element list and the option's label as read lists it (or its value). Returns the URL and title after it. Card fields and account pages are refused. Every started minute of the session costs credits; it ends when closed or 3 minutes after the last call in the browser.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "element": {
            "description": "The element's number in the element list of the current page.",
            "minimum": 1,
            "type": "integer"
          },
          "option": {
            "description": "The option.",
            "maxLength": 300,
            "type": "string"
          }
        },
        "required": [
          "element",
          "option"
        ],
        "type": "object"
      },
      "name": "cotlet_browser_select"
    },
    {
      "description": "Types text into a field of the current page in the user's Partiful Cloud Browser, by the field's number in the page's element list, and with `submit` presses Enter. Returns the URL and title after it. Password, card and one-time code fields and sign-in pages are refused: the user fills those in themselves. Every started minute of the session costs credits; it ends when closed or 3 minutes after the last call in the browser.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "element": {
            "description": "The element's number in the element list of the current page.",
            "minimum": 1,
            "type": "integer"
          },
          "submit": {
            "description": "Press Enter after typing, e.g. to search.",
            "type": "boolean"
          },
          "text": {
            "description": "The text to type.",
            "maxLength": 5000,
            "type": "string"
          }
        },
        "required": [
          "element",
          "text"
        ],
        "type": "object"
      },
      "name": "cotlet_browser_type"
    },
    {
      "description": "Puts files into a file field of the current page in the user's Partiful Cloud Browser, or into the file picker that an upload button opens, by its number in the element list. A file is given as {\"url\": \"https://...\"} for a file online or {\"file_id\": \"...\"} for one uploaded to Cotlet first; up to 10 files, 20 MB each. Returns the URL and title after it. Every started minute of the session costs credits; it ends when closed or 3 minutes after the last call in the browser.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "element": {
            "description": "The element's number in the element list of the current page.",
            "minimum": 1,
            "type": "integer"
          },
          "files": {
            "description": "The files.",
            "items": {
              "additionalProperties": false,
              "properties": {
                "file_id": {
                  "description": "A file uploaded to Cotlet.",
                  "type": "string"
                },
                "url": {
                  "description": "A public file URL.",
                  "format": "uri",
                  "type": "string"
                }
              },
              "type": "object"
            },
            "maxItems": 10,
            "minItems": 1,
            "type": "array"
          }
        },
        "required": [
          "element",
          "files"
        ],
        "type": "object"
      },
      "name": "cotlet_browser_upload"
    },
    {
      "description": "Status of an earlier Cotlet call, by its call_id: pending (waits for the owner's approval in the Cotlet console), approved, running, success, rejected, expired, blocked or failed. For a call that answered with status pending or running.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "call_id": {
            "description": "call_id from the earlier call",
            "type": "string"
          }
        },
        "required": [
          "call_id"
        ],
        "type": "object"
      },
      "name": "cotlet_get_call"
    },
    {
      "description": "Sends a report straight to the Cotlet team: a tool that failed or returned wrong data, an error you could not get past, or a tool, field or app the task needed and Cotlet lacks. The report carries the error text and call_id when there is one, never passwords or tokens. Needs the user's Cotlet API key or sign-in.",
      "inputSchema": {
        "additionalProperties": false,
        "description": "Body of POST /api/v1/reports and the arguments of the MCP tool cotlet_report_issue.",
        "properties": {
          "app": {
            "anyOf": [
              {
                "maxLength": 80,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "description": "App slug the report is about, e.g. 'skool'.",
            "title": "App"
          },
          "call_id": {
            "anyOf": [
              {
                "format": "uuid",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "description": "call_id of the call that went wrong, if any.",
            "title": "Call Id"
          },
          "client": {
            "anyOf": [
              {
                "maxLength": 80,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "description": "Agent or tool sending this, e.g. 'Claude Code'.",
            "title": "Client"
          },
          "description": {
            "description": "What you tried, what you expected and what happened, with the error text if there was one. No passwords, tokens or other secrets.",
            "maxLength": 5000,
            "minLength": 10,
            "title": "Description",
            "type": "string"
          },
          "kind": {
            "description": "bug: a tool did the wrong thing or returned wrong data. error: a call failed or returned an error you could not get past. feature_request: something new the user wants. missing_feature: an app is here but lacks a tool, field or option the task needed. other: anything else.",
            "enum": [
              "bug",
              "error",
              "feature_request",
              "missing_feature",
              "other"
            ],
            "title": "Kind",
            "type": "string"
          },
          "title": {
            "description": "One line, e.g. 'skool_list_members stops after 50 members'.",
            "maxLength": 200,
            "minLength": 3,
            "title": "Title",
            "type": "string"
          },
          "tool": {
            "anyOf": [
              {
                "maxLength": 160,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "description": "Tool or endpoint name, e.g. 'skool_list_members'.",
            "title": "Tool"
          }
        },
        "required": [
          "kind",
          "title",
          "description"
        ],
        "title": "AgentReportCreate",
        "type": "object"
      },
      "name": "cotlet_report_issue"
    },
    {
      "description": "Requests access to apps for the user's workspace, as Request access in the console: a live app is granted at once, any other goes to the Cotlet team, who answer within 72 hours. Takes app slugs as listed at https://cotlet.dev/api/v1/apps. Free. Needs the user's Cotlet API key or sign-in.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "apps": {
            "description": "App slugs, e.g. [\"skool\", \"substack\"].",
            "items": {
              "type": "string"
            },
            "maxItems": 10,
            "minItems": 1,
            "type": "array"
          },
          "use_case": {
            "description": "What the user wants the agent to do in these apps, in their words.",
            "maxLength": 1000,
            "type": "string"
          }
        },
        "required": [
          "apps"
        ],
        "type": "object"
      },
      "name": "cotlet_request_apps"
    },
    {
      "description": "Returns a one-time upload_url and a file_id for a local file (an image for a post, an attachment). The file is sent to upload_url with an HTTP PUT; an argument that takes a file accepts {\"file_id\": \"...\"}. Up to 25 MB, the URL works once. Free. Needs the user's Cotlet API key or sign-in.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "content_type": {
            "description": "MIME type, e.g. image/jpeg.",
            "type": "string"
          },
          "name": {
            "description": "File name, e.g. photo.jpg.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "name": "cotlet_upload_file"
    },
    {
      "description": "The Cotlet account this connection acts as: email, workspace, access status, the API key or OAuth client in use with its scope, the apps the workspace may call and its credit balance. Free. Needs the user's Cotlet API key or sign-in.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {},
        "type": "object"
      },
      "name": "cotlet_whoami"
    },
    {
      "description": "New event page. Nobody is invited until you call invite_guests. Creates and publishes an event page hosted by this account, as Create on partiful.com does, with Partiful's default theme. It is private (only people with the link) unless visibility is public. Nobody is invited or texted; share url or call invite_guests. Times without an offset are read in timezone. Guest Approval and a guest limit exclude each other, so a call with both is refused. Returns the new event.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "description": {
            "description": "Event details shown on the page.",
            "maxLength": 5000,
            "type": "string"
          },
          "end_at": {
            "description": "End, ISO 8601. Optional; must be after start_at.",
            "type": "string"
          },
          "guest_approval": {
            "description": "Guests ask to join and you approve them (Guest Approval). Clears max_guests.",
            "type": "boolean"
          },
          "location": {
            "description": "Address, place name or link.",
            "maxLength": 300,
            "type": "string"
          },
          "max_guests": {
            "description": "Guest limit; RSVPs over it go to the waitlist. null removes the limit.",
            "minimum": 1,
            "type": [
              "integer",
              "null"
            ]
          },
          "questions": {
            "description": "Guest Questionnaire, short-answer questions asked at RSVP. An empty list turns it off.",
            "items": {
              "maxLength": 200,
              "minLength": 1,
              "type": "string"
            },
            "maxItems": 10,
            "type": "array"
          },
          "rsvp_deadline": {
            "description": "Last moment guests can RSVP, ISO 8601.",
            "type": "string"
          },
          "start_at": {
            "description": "Start, ISO 8601. Without an offset it is read in the event's time zone.",
            "type": "string"
          },
          "timezone": {
            "description": "IANA zone the event is shown in, e.g. America/New_York. Default: the browser's zone.",
            "type": "string"
          },
          "title": {
            "description": "Event title.",
            "maxLength": 200,
            "minLength": 1,
            "type": "string"
          },
          "visibility": {
            "description": "private: only people with the link (default). public: anyone on or off Partiful.",
            "enum": [
              "private",
              "public"
            ],
            "type": "string"
          }
        },
        "required": [
          "title",
          "start_at"
        ],
        "type": "object"
      },
      "name": "create_event"
    },
    {
      "description": "Delete an event you host for everyone, with its guest list. Deletes the event as Delete event in its settings does: the page, guest list, photos and messages are gone for everyone and cannot be restored. Guests who RSVPd may be told by Partiful. To keep the page and tell guests, use cancel_event. Hosts only. By default you confirm each call; you can switch that off for this tool. Waits for the owner's approval.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "event_id": {
            "description": "event_id from list_events.",
            "type": "string"
          }
        },
        "required": [
          "event_id"
        ],
        "type": "object"
      },
      "name": "delete_event"
    },
    {
      "description": "Copy an event with its settings to a new date. The copy has no guests yet. Makes a copy as Duplicate on the event page does: title, description, location, theme, questionnaire and RSVP settings, no guests and no messages. The copy starts at start_at and keeps the original's length; Partiful does not copy the RSVP deadline. Nobody is invited. Returns the new event. Hosts only.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "event_id": {
            "description": "event_id from list_events.",
            "type": "string"
          },
          "start_at": {
            "description": "Start of the copy, ISO 8601. Without an offset it is read in the event's time zone.",
            "type": "string"
          },
          "title": {
            "description": "Title of the copy. Default: the same.",
            "maxLength": 200,
            "minLength": 1,
            "type": "string"
          }
        },
        "required": [
          "event_id",
          "start_at"
        ],
        "type": "object"
      },
      "name": "duplicate_event"
    },
    {
      "description": "The guest list as CSV, the same file as the Export CSV button. Returns the file the host's Export CSV button downloads, for the chosen RSVP statuses. Columns are Partiful's: Name, Status, Checked in, Check-in Time, RSVP date, then one column per Guest Questionnaire question. Status is Partiful's label, for example Approved on a Guest Approval event. The file text comes back in csv, not as a link, with rows (guests in the file) and a suggested filename. The file has no guest ids, emails or phone numbers; for guest ids use list_guests. Hosts only.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "event_id": {
            "description": "event_id from list_events.",
            "type": "string"
          },
          "statuses": {
            "description": "RSVP statuses to include: going, maybe, cant_go, invited, waitlist, pending. Default: all.",
            "items": {
              "enum": [
                "going",
                "maybe",
                "cant_go",
                "invited",
                "waitlist",
                "pending"
              ],
              "type": "string"
            },
            "type": "array"
          }
        },
        "required": [
          "event_id"
        ],
        "type": "object"
      },
      "name": "export_guest_list"
    },
    {
      "description": "Full event: title, description, start and end, location, RSVP deadline, guest limit, Guest Approval and waitlist settings, link. Returns one event as its page shows it to the host, with guests per RSVP status and the Guest Questionnaire questions. Times are in the event's time zone. Works for any event the account can open; the write tools need an event it hosts.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "event_id": {
            "description": "event_id from list_events.",
            "type": "string"
          }
        },
        "required": [
          "event_id"
        ],
        "type": "object"
      },
      "name": "get_event"
    },
    {
      "description": "Invite past guests and mutuals through Partiful, or anyone by email. Sends invites as the host's Invite screen does, so they reach real people: Partiful users from list_past_guests get Partiful's invite, people in emails get an email with the event link and your note. There is no way to invite a phone number: Partiful takes phone contacts only in its app. Email invitees still sign in with a phone number to RSVP. Partiful allows 1,000 invites per event, 500 of them by email. A canceled event is refused. invited_total is the event's Invited count after the call. Hosts only. By default you confirm each call; you can switch that off for this tool. Waits for the owner's approval.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "emails": {
            "description": "People to invite by email, with the name the invite greets.",
            "items": {
              "additionalProperties": false,
              "properties": {
                "email": {
                  "format": "email",
                  "type": "string"
                },
                "name": {
                  "description": "Shown on the invite.",
                  "minLength": 1,
                  "type": "string"
                }
              },
              "required": [
                "email",
                "name"
              ],
              "type": "object"
            },
            "maxItems": 500,
            "type": "array"
          },
          "event_id": {
            "description": "event_id from list_events.",
            "type": "string"
          },
          "message": {
            "description": "Personal note sent with the invites.",
            "maxLength": 480,
            "type": "string"
          },
          "user_ids": {
            "description": "user_id values from list_past_guests.",
            "items": {
              "type": "string"
            },
            "maxItems": 1000,
            "type": "array"
          }
        },
        "required": [
          "event_id"
        ],
        "type": "object"
      },
      "name": "invite_guests"
    },
    {
      "description": "Events you host, with date, status and guest counts. Returns the events this account hosts or cohosts, as the Hosting tab of the home page lists them: start and end in the event's time zone, active or canceled, and guests per RSVP status. Events you were only invited to are left out. Upcoming come soonest first, past most recent first. Use event_id in the other tools.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "cursor": {
            "description": "next_cursor from the previous call.",
            "type": "string"
          },
          "limit": {
            "description": "1 to 50. Default: 20.",
            "type": "integer"
          },
          "when": {
            "description": "upcoming, past or all. Default: upcoming.",
            "enum": [
              "upcoming",
              "past",
              "all"
            ],
            "type": "string"
          }
        },
        "required": [],
        "type": "object"
      },
      "name": "list_events"
    },
    {
      "description": "Guests of an event with RSVP status, check-in and Guest Questionnaire answers. Returns the guest list the host sees, oldest RSVP first: name, RSVP status, party size with plus-one names, check-in, RSVP note and questionnaire answers. Hosts only. going includes guests approved on a Guest Approval event. guest_id goes to approve_guests and check_in_guests; total counts the guests that match the filters.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "checked_in": {
            "description": "Only guests who are checked in (true) or not (false).",
            "type": "boolean"
          },
          "cursor": {
            "description": "next_cursor from the previous call.",
            "type": "string"
          },
          "event_id": {
            "description": "event_id from list_events.",
            "type": "string"
          },
          "limit": {
            "description": "1 to 200. Default: 100.",
            "type": "integer"
          },
          "status": {
            "description": "all, going, maybe, cant_go, invited, waitlist or pending. Default: all.",
            "enum": [
              "all",
              "going",
              "maybe",
              "cant_go",
              "invited",
              "waitlist",
              "pending"
            ],
            "type": "string"
          }
        },
        "required": [
          "event_id"
        ],
        "type": "object"
      },
      "name": "list_guests"
    },
    {
      "description": "People you can invite: your past guests and mutuals. Returns the people Partiful offers on an event's Invite screen: past guests of your events and mutuals from events you went to, with how many events you shared. Give not_on_event_id to leave out people already on that event; there is no filter by one past event. query matches part of the name. user_id goes to invite_guests. A new account has nobody yet, and shared_events or last_shared_event stay 0 or null when Partiful leaves them out.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "cursor": {
            "description": "next_cursor from the previous call.",
            "type": "string"
          },
          "limit": {
            "description": "1 to 200. Default: 50.",
            "type": "integer"
          },
          "not_on_event_id": {
            "description": "Leave out people already on this event (event_id), as its Invite list does.",
            "type": "string"
          },
          "query": {
            "description": "Only names containing this text.",
            "type": "string"
          }
        },
        "required": [],
        "type": "object"
      },
      "name": "list_past_guests"
    },
    {
      "description": "Text a message to guests by RSVP status. Partiful allows up to 10 Text Blasts per event. Sends a Text Blast as the host's Send Text Blast does: by text and email to every guest with the chosen RSVP statuses, push for guests with the app, and shown in the event's feed unless show_on_event_page is false. Real people get it at once and it cannot be taken back. Up to 480 characters. recipients and by_status count the guests with those statuses at the moment of sending; a choice that reaches nobody is refused before you confirm. Partiful allows 10 blasts per event and refuses a blast to Invited when that group holds more than 100 guests. The answer does not say how many blasts are left. Hosts only. By default you confirm each call; you can switch that off for this tool. Waits for the owner's approval.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "event_id": {
            "description": "event_id from list_events.",
            "type": "string"
          },
          "message": {
            "description": "Message text.",
            "maxLength": 480,
            "minLength": 1,
            "type": "string"
          },
          "show_on_event_page": {
            "description": "Also show the blast in the event's activity feed. Default: true.",
            "type": "boolean"
          },
          "statuses": {
            "description": "Who receives it: going, maybe, cant_go, invited, waitlist, pending.",
            "items": {
              "enum": [
                "going",
                "maybe",
                "cant_go",
                "invited",
                "waitlist",
                "pending"
              ],
              "type": "string"
            },
            "minItems": 1,
            "type": "array"
          }
        },
        "required": [
          "event_id",
          "message",
          "statuses"
        ],
        "type": "object"
      },
      "name": "send_text_blast"
    },
    {
      "description": "Change the details or settings of an event you host. Changes only the fields you give, as the event's Edit page and settings panel do: title, times, time zone, location, description, RSVP deadline, guest limit, Guest Approval and the Guest Questionnaire. Fields left out keep their value; a call with no field is refused. Turning Guest Approval on removes the guest limit and the waitlist, and the first guest limit turns the waitlist on. New questions replace the questionnaire for guests who RSVP from then on. Returns the event after the change, with updated listing the fields you gave. Hosts only.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "description": {
            "description": "Event details shown on the page.",
            "maxLength": 5000,
            "type": "string"
          },
          "end_at": {
            "description": "End, ISO 8601. Optional; must be after start_at.",
            "type": "string"
          },
          "event_id": {
            "description": "event_id from list_events.",
            "type": "string"
          },
          "guest_approval": {
            "description": "Guests ask to join and you approve them (Guest Approval). Clears max_guests.",
            "type": "boolean"
          },
          "location": {
            "description": "Address, place name or link.",
            "maxLength": 300,
            "type": "string"
          },
          "max_guests": {
            "description": "Guest limit; RSVPs over it go to the waitlist. null removes the limit.",
            "minimum": 1,
            "type": [
              "integer",
              "null"
            ]
          },
          "questions": {
            "description": "Guest Questionnaire, short-answer questions asked at RSVP. An empty list turns it off.",
            "items": {
              "maxLength": 200,
              "minLength": 1,
              "type": "string"
            },
            "maxItems": 10,
            "type": "array"
          },
          "rsvp_deadline": {
            "description": "Last moment guests can RSVP, ISO 8601.",
            "type": "string"
          },
          "start_at": {
            "description": "Start, ISO 8601. Without an offset it is read in the event's time zone.",
            "type": "string"
          },
          "timezone": {
            "description": "IANA zone the event is shown in, e.g. America/New_York.",
            "type": "string"
          },
          "title": {
            "description": "Event title.",
            "maxLength": 200,
            "minLength": 1,
            "type": "string"
          }
        },
        "required": [
          "event_id"
        ],
        "type": "object"
      },
      "name": "update_event"
    }
  ]
}

What the leaf hashes

{"body":"36762d95df857e0aedfa6503211e9c6620f73a30191f0a84499105c6a279f171","id":565029,"kind":"mcp.tools","method":"probe.mcp/1","observed_us":1793137988636070,"prev":null,"subject":"910887ab-f0f1-4ea0-ae19-7d54d63d51fd","subject_kind":"endpoint"}

Proof

Fold these into the leaf in order, hashing each sorted pair with keccak256, to reach the root of (273461 rows).

  1. 0xd6139c100202d3579ad0a1c11b3a32225e547fe6502cd87ac2c6657981601ed0
  2. 0x71bffcef46fef8ed5bfd82ca7b5b80272a99eedd27e495d61e68885b6268f6ef
  3. 0xcbc7f1a5735c7fd71885cf1f7c99138d4bf410b76452a3a8259e8a2e413aae3d
  4. 0x83f811d8ffd46b9404d24b7803abc8b9cf5271419624388aa2f6426df7188777
  5. 0xa64aa112efe244678565a0eed07272d25b542f77d9db11e591cd2417d8bfbf47
  6. 0x26229be35d5b9449dad4c981826bf6fff200fe040f9568ce27993e439b29ccd5
  7. 0x312b93ea11a8f0fa4ff2e33c94adf97127b35914f670dbd450b3f84022e4e1f3
  8. 0x10f8a7a3705a7b2831a1316c10f12ee7be8bec07be6b0ffcc3e722558ed78c59
  9. 0x664f3e9fb0f4d9e128e30de9f33bcb2f13d0ce3e5a7b95af863a9e39103e72f5
  10. 0x2cedb898615f2b572a9828bf03b8b4565aa7a62a1eb3073840f0181529184e03
  11. 0x0c83e32e6b84db0bb021929c13eebf1647014f39c62859879ee0a904e7595a5b
  12. 0xde4e8f5f4fa654e4fdaf9393a62fe8d551a621b11ce6193db126f9c7825b0974
  13. 0x3b3e4fecead12aaf883ab4f21b6e21efddd0a8d055ced058cb62bcdca8a6c9d6
  14. 0x8f676edfb4faaa290229d8f4f69ab721fc627424463d62f5146b3d1ca7f2f0c6
  15. 0x969cd44e5a4e8dc3110540398fbf689659eb51df735c1cda5d8f021ef9ff5683
  16. 0xa94627de1af0e823832e05a9069b304ecccb8c0cdb8f9cfc4f2039bfb9799dc5
  17. 0xdf1105afdc109de3c09a98fc8a3864159ad964e6f49b635c105a27a1e1f14310
  18. 0x2bf8151e5f157dd183b9de6fa00469551932a7a6e3f33a694895000ac9061197
  19. 0x9fc354c0ea3efc3f1b6548bb77ea902a50f2c9647647ea61592efce2bd795699
Day root
0xdd77e5e99da32c3f154180d63e3c3e6fe11e896a2c6896412ef6b5c4bcf7e795
Chained
0x23bb4dfd09f55c15ac3962f53578e02c6114d5bfd9bb451cf8794fb6e2817ef4
Published
On Arc Testnet, block 69414147: 0xb2ebd83aafeb765a0ce66e76aefb133ed06606c98038fd56191e2bcd1dcb77b4

How to check it · This row as JSON