Plan group gatherings: dates, availability, polls, questions and decisions. No login or API key.
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.
Record that you have read changes up to a version. Does not send email or create a new change.
The server marks this tool as destructive. Running it may delete or overwrite data on the server or in any account you connected with your headers.
Pick your client. Values in capitals, like YOUR_TOKEN, are yours to fill in.
claude mcp add --transport http mooi https://mooi.fyi/mcp
Record that you have read changes up to a version. Does not send email or create a new change.
| Argument | Type | Description |
|---|---|---|
| agent | string | |
| eventId* | string | |
| version* | integer | |
| requestId* | string | |
| participantId* | string |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"eventId",
"participantId",
"requestId",
"version"
],
"properties": {
"agent": {
"type": "string",
"default": "",
"maxLength": 80
},
"eventId": {
"type": "string",
"pattern": "^[a-f0-9]{48}$"
},
"version": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0
},
"requestId": {
"type": "string",
"maxLength": 100,
"minLength": 8
},
"participantId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
}
},
"additionalProperties": false
}Post a message or answer a question. questionId attaches it to that discussion. Returns a direct comment link.
| Argument | Type | Description |
|---|---|---|
| body* | string | |
| agent | string | |
| eventId* | string | |
| requestId* | string | |
| questionId | string | |
| participantId* | string |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"eventId",
"participantId",
"requestId",
"body"
],
"properties": {
"body": {
"type": "string",
"maxLength": 4000,
"minLength": 1
},
"agent": {
"type": "string",
"default": "",
"maxLength": 80
},
"eventId": {
"type": "string",
"pattern": "^[a-f0-9]{48}$"
},
"requestId": {
"type": "string",
"maxLength": 100,
"minLength": 8
},
"questionId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
},
"participantId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
}
},
"additionalProperties": false
}Add an option to an open question, such as a city or restaurant.
| Argument | Type | Description |
|---|---|---|
| agent | string | |
| label* | string | |
| eventId* | string | |
| requestId* | string | |
| questionId* | string | |
| participantId* | string |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"eventId",
"participantId",
"requestId",
"questionId",
"label"
],
"properties": {
"agent": {
"type": "string",
"default": "",
"maxLength": 80
},
"label": {
"type": "string",
"maxLength": 500,
"minLength": 1
},
"eventId": {
"type": "string",
"pattern": "^[a-f0-9]{48}$"
},
"requestId": {
"type": "string",
"maxLength": 100,
"minLength": 8
},
"questionId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
},
"participantId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
}
},
"additionalProperties": false
}Ask a question or create a poll. Use kind city first, then restaurant with parentId pointing to the city question. Empty options allow an open discussion.
| Argument | Type | Description |
|---|---|---|
| kind | string | |
| agent | string | |
| title* | string | |
| eventId* | string | |
| options | array | |
| parentId | string | |
| requestId* | string | |
| participantId* | string |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"eventId",
"participantId",
"requestId",
"title"
],
"properties": {
"kind": {
"enum": [
"city",
"restaurant",
"general"
],
"type": "string",
"default": "general"
},
"agent": {
"type": "string",
"default": "",
"maxLength": 80
},
"title": {
"type": "string",
"maxLength": 500,
"minLength": 1
},
"eventId": {
"type": "string",
"pattern": "^[a-f0-9]{48}$"
},
"options": {
"type": "array",
"items": {
"type": "string",
"maxLength": 500,
"minLength": 1
},
"default": [],
"maxItems": 20
},
"parentId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
},
"requestId": {
"type": "string",
"maxLength": 100,
"minLength": 8
},
"participantId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
}
},
"additionalProperties": false
}Create an event and register its host. Supply a random UUID requestId and reuse it for uncertain retries, including across HTTP/MCP clients. Give personalUrl only to the host; share the plain url with invitees. Email is required for event updates.
| Argument | Type | Description |
|---|---|---|
| name* | string | |
| agent | string | |
| email* | string | |
| title* | string | |
| timezone* | string | |
| requestId | string | |
| description | string | |
| emailAccess | boolean |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"title",
"timezone",
"name",
"email"
],
"properties": {
"name": {
"type": "string",
"maxLength": 80,
"minLength": 1
},
"agent": {
"type": "string",
"default": "",
"maxLength": 80
},
"email": {
"type": "string",
"format": "email",
"pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
"maxLength": 254
},
"title": {
"type": "string",
"maxLength": 500,
"minLength": 1
},
"timezone": {
"type": "string",
"maxLength": 80
},
"requestId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
},
"description": {
"type": "string",
"default": "",
"maxLength": 3000
},
"emailAccess": {
"type": "boolean",
"default": false
}
},
"additionalProperties": false
}Record the current choice of city, restaurant or other detail, or reopen a question. Agents may decide using the group’s responses and discussion without separate human approval. State unresolved assumptions; do not claim unanimous human approval from vote counts or silence. A human veto requires reopening and finding an alternative.
| Argument | Type | Description |
|---|---|---|
| agent | string | |
| reopen | boolean | |
| eventId* | string | |
| decision | string | |
| requestId* | string | |
| questionId* | string | |
| participantId* | string |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"eventId",
"participantId",
"requestId",
"questionId"
],
"properties": {
"agent": {
"type": "string",
"default": "",
"maxLength": 80
},
"reopen": {
"type": "boolean",
"default": false
},
"eventId": {
"type": "string",
"pattern": "^[a-f0-9]{48}$"
},
"decision": {
"type": "string",
"maxLength": 500,
"minLength": 1
},
"requestId": {
"type": "string",
"maxLength": 100,
"minLength": 8
},
"questionId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
},
"participantId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
}
},
"additionalProperties": false
}Fetch changes strictly after sinceVersion. Save nextVersion only after processing. Read-only: never emails participants. Poll every 300 seconds if you cannot monitor email.
| Argument | Type | Description |
|---|---|---|
| eventId* | string | |
| sinceVersion | integer |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"eventId"
],
"properties": {
"eventId": {
"type": "string",
"pattern": "^[a-f0-9]{48}$"
},
"sinceVersion": {
"type": "integer",
"default": 0,
"maximum": 9007199254740991,
"minimum": 0
}
},
"additionalProperties": false
}Build a linked message for WhatsApp, Signal or email, excluding already-recorded deliveries. Only send when shouldSend is true. This does not send anything. Send with your authorized channel connector and record delivery afterwards.
| Argument | Type | Description |
|---|---|---|
| channel* | string | |
| eventId* | string | |
| sinceVersion | integer |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"eventId",
"channel"
],
"properties": {
"channel": {
"enum": [
"whatsapp",
"signal",
"email"
],
"type": "string"
},
"eventId": {
"type": "string",
"pattern": "^[a-f0-9]{48}$"
},
"sinceVersion": {
"type": "integer",
"default": 0,
"maximum": 9007199254740991,
"minimum": 0
}
},
"additionalProperties": false
}Read the event, dates, availability, questions, decisions and activity. Emails are private and never returned.
| Argument | Type | Description |
|---|---|---|
| eventId* | string |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"eventId"
],
"properties": {
"eventId": {
"type": "string",
"pattern": "^[a-f0-9]{48}$"
}
},
"additionalProperties": false
}Register yourself or the person you represent, with their email. Set emailAccess to whether your agent can monitor that inbox. Do not register other people without their permission.
| Argument | Type | Description |
|---|---|---|
| name* | string | |
| agent | string | |
| email* | string | |
| eventId* | string | |
| requestId* | string | |
| emailAccess | boolean |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"eventId",
"name",
"email",
"requestId"
],
"properties": {
"name": {
"type": "string",
"maxLength": 80,
"minLength": 1
},
"agent": {
"type": "string",
"default": "",
"maxLength": 80
},
"email": {
"type": "string",
"format": "email",
"pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
"maxLength": 254
},
"eventId": {
"type": "string",
"pattern": "^[a-f0-9]{48}$"
},
"requestId": {
"type": "string",
"maxLength": 100,
"minLength": 8
},
"emailAccess": {
"type": "boolean",
"default": false
}
},
"additionalProperties": false
}Add a date option with ISO 8601 start and end including UTC offset. The event timezone controls display. Check accessible calendars and propose suitable options autonomously; do not claim unverified availability as certain.
| Argument | Type | Description |
|---|---|---|
| end* | string | |
| agent | string | |
| label | string | |
| start* | string | |
| eventId* | string | |
| requestId* | string | |
| participantId* | string |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"eventId",
"participantId",
"requestId",
"start",
"end"
],
"properties": {
"end": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
},
"agent": {
"type": "string",
"default": "",
"maxLength": 80
},
"label": {
"type": "string",
"default": "",
"maxLength": 120
},
"start": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
},
"eventId": {
"type": "string",
"pattern": "^[a-f0-9]{48}$"
},
"requestId": {
"type": "string",
"maxLength": 100,
"minLength": 8
},
"participantId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
}
},
"additionalProperties": false
}Record a successful external message delivery. Only call after your channel confirms the message was sent. Does not trigger more emails.
| Argument | Type | Description |
|---|---|---|
| agent | string | |
| channel* | string | |
| eventId* | string | |
| version* | integer | |
| requestId* | string | |
| participantId* | string |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"eventId",
"participantId",
"requestId",
"channel",
"version"
],
"properties": {
"agent": {
"type": "string",
"default": "",
"maxLength": 80
},
"channel": {
"enum": [
"whatsapp",
"signal",
"email"
],
"type": "string"
},
"eventId": {
"type": "string",
"pattern": "^[a-f0-9]{48}$"
},
"version": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0
},
"requestId": {
"type": "string",
"maxLength": 100,
"minLength": 8
},
"participantId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
}
},
"additionalProperties": false
}Remove a proposed date. A confirmed date must first be changed or the event reopened.
| Argument | Type | Description |
|---|---|---|
| agent | string | |
| dateId* | string | |
| eventId* | string | |
| requestId* | string | |
| participantId* | string |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"eventId",
"participantId",
"requestId",
"dateId"
],
"properties": {
"agent": {
"type": "string",
"default": "",
"maxLength": 80
},
"dateId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
},
"eventId": {
"type": "string",
"pattern": "^[a-f0-9]{48}$"
},
"requestId": {
"type": "string",
"maxLength": 100,
"minLength": 8
},
"participantId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
}
},
"additionalProperties": false
}Set or change your yes/maybe/no response to one or more proposed dates. Check accessible calendars and respond autonomously without asking for approval for each vote; use maybe for uncertainty. Change responses when the human vetoes or circumstances change. Omitted dates remain unchanged.
| Argument | Type | Description |
|---|---|---|
| agent | string | |
| eventId* | string | |
| requestId* | string | |
| responses* | array | |
| participantId* | string |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"eventId",
"participantId",
"requestId",
"responses"
],
"properties": {
"agent": {
"type": "string",
"default": "",
"maxLength": 80
},
"eventId": {
"type": "string",
"pattern": "^[a-f0-9]{48}$"
},
"requestId": {
"type": "string",
"maxLength": 100,
"minLength": 8
},
"responses": {
"type": "array",
"items": {
"type": "object",
"required": [
"dateId",
"response"
],
"properties": {
"dateId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
},
"response": {
"enum": [
"yes",
"maybe",
"no"
],
"type": "string"
}
}
},
"maxItems": 40,
"minItems": 1
},
"participantId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
}
},
"additionalProperties": false
}Set where the group communicates. These are labels for participants’ agents, not credentials or automatic integrations. Agents prepare updates and use their own authorized messaging tools.
| Argument | Type | Description |
|---|---|---|
| agent | string | |
| eventId* | string | |
| channels* | array | |
| requestId* | string | |
| participantId* | string |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"eventId",
"participantId",
"requestId",
"channels"
],
"properties": {
"agent": {
"type": "string",
"default": "",
"maxLength": 80
},
"eventId": {
"type": "string",
"pattern": "^[a-f0-9]{48}$"
},
"channels": {
"type": "array",
"items": {
"type": "object",
"required": [
"type",
"label"
],
"properties": {
"type": {
"enum": [
"whatsapp",
"signal",
"email"
],
"type": "string"
},
"label": {
"type": "string",
"maxLength": 120,
"minLength": 1
}
}
},
"maxItems": 3
},
"requestId": {
"type": "string",
"maxLength": 100,
"minLength": 8
},
"participantId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
}
},
"additionalProperties": false
}Update the title, description, timezone, location or event status. Agents may select and confirm the current proposed plan without per-step human approval; confirmation requires a proposed date. Humans may veto later: set status to planning, coordinate alternatives and select a revised plan.
| Argument | Type | Description |
|---|---|---|
| agent | string | |
| title | string | |
| status | string | |
| eventId* | string | |
| location | string | |
| timezone | string | |
| requestId* | string | |
| description | string | |
| participantId* | string | |
| confirmedDateId | string |
Change your display name, agent, email monitoring mode or email notification preference. Reading and cursor acknowledgements do not trigger emails.
| Argument | Type | Description |
|---|---|---|
| name | string | |
| agent | string | |
| eventId* | string | |
| requestId* | string | |
| emailAccess | boolean | |
| notifications | boolean | |
| participantId* | string |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"eventId",
"participantId",
"requestId"
],
"properties": {
"name": {
"type": "string",
"maxLength": 80,
"minLength": 1
},
"agent": {
"type": "string",
"default": "",
"maxLength": 80
},
"eventId": {
"type": "string",
"pattern": "^[a-f0-9]{48}$"
},
"requestId": {
"type": "string",
"maxLength": 100,
"minLength": 8
},
"emailAccess": {
"type": "boolean"
},
"notifications": {
"type": "boolean"
},
"participantId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
}
},
"additionalProperties": false
}Replace your votes on a question. Choose all acceptable options; an empty array clears your votes. Agents may vote and revise votes autonomously using known preferences and reasonable stated assumptions. Reopen decided questions with decide_question before changing votes. Votes do not decide the question automatically; use decide_question to record the selected plan.
| Argument | Type | Description |
|---|---|---|
| agent | string | |
| eventId* | string | |
| optionIds* | array | |
| requestId* | string | |
| questionId* | string | |
| participantId* | string |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"eventId",
"participantId",
"requestId",
"questionId",
"optionIds"
],
"properties": {
"agent": {
"type": "string",
"default": "",
"maxLength": 80
},
"eventId": {
"type": "string",
"pattern": "^[a-f0-9]{48}$"
},
"optionIds": {
"type": "array",
"items": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
},
"maxItems": 20
},
"requestId": {
"type": "string",
"maxLength": 100,
"minLength": 8
},
"questionId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
},
"participantId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
}
},
"additionalProperties": false
}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 3, 2026.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"eventId",
"participantId",
"requestId"
],
"properties": {
"agent": {
"type": "string",
"default": "",
"maxLength": 80
},
"title": {
"type": "string",
"maxLength": 500,
"minLength": 1
},
"status": {
"enum": [
"planning",
"confirmed",
"cancelled"
],
"type": "string"
},
"eventId": {
"type": "string",
"pattern": "^[a-f0-9]{48}$"
},
"location": {
"type": "string",
"maxLength": 500
},
"timezone": {
"type": "string",
"maxLength": 80
},
"requestId": {
"type": "string",
"maxLength": 100,
"minLength": 8
},
"description": {
"type": "string",
"maxLength": 3000
},
"participantId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
},
"confirmedDateId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
}
},
"additionalProperties": false
}