{"server":"Mooi","checked":"2026-11-03","tools":[{"name":"acknowledge_changes","title":"Mark as seen","description":"Record that you have read changes up to a version. Does not send email or create a new change.","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"eventId":{"type":"string","pattern":"^[a-f0-9]{48}$"},"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)$"},"agent":{"default":"","type":"string","maxLength":80},"requestId":{"type":"string","minLength":8,"maxLength":100},"version":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["eventId","participantId","requestId","version"],"additionalProperties":false},"annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":true}},{"name":"add_comment","title":"Leave a note","description":"Post a message or answer a question. questionId attaches it to that discussion. Returns a direct comment link.","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"eventId":{"type":"string","pattern":"^[a-f0-9]{48}$"},"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)$"},"agent":{"default":"","type":"string","maxLength":80},"requestId":{"type":"string","minLength":8,"maxLength":100},"body":{"type":"string","minLength":1,"maxLength":4000},"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)$"}},"required":["eventId","participantId","requestId","body"],"additionalProperties":false},"annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":true}},{"name":"add_poll_option","title":"Suggest an answer","description":"Add an option to an open question, such as a city or restaurant.","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"eventId":{"type":"string","pattern":"^[a-f0-9]{48}$"},"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)$"},"agent":{"default":"","type":"string","maxLength":80},"requestId":{"type":"string","minLength":8,"maxLength":100},"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)$"},"label":{"type":"string","minLength":1,"maxLength":500}},"required":["eventId","participantId","requestId","questionId","label"],"additionalProperties":false},"annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":true}},{"name":"ask_question","title":"Ask everyone","description":"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.","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"eventId":{"type":"string","pattern":"^[a-f0-9]{48}$"},"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)$"},"agent":{"default":"","type":"string","maxLength":80},"requestId":{"type":"string","minLength":8,"maxLength":100},"title":{"type":"string","minLength":1,"maxLength":500},"kind":{"default":"general","type":"string","enum":["city","restaurant","general"]},"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)$"},"options":{"default":[],"maxItems":20,"type":"array","items":{"type":"string","minLength":1,"maxLength":500}}},"required":["eventId","participantId","requestId","title"],"additionalProperties":false},"annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":true}},{"name":"create_event","title":"Create a gathering","description":"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.","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"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)$"},"title":{"type":"string","minLength":1,"maxLength":500},"description":{"default":"","type":"string","maxLength":3000},"timezone":{"type":"string","maxLength":80},"name":{"type":"string","minLength":1,"maxLength":80},"email":{"type":"string","maxLength":254,"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,}$"},"agent":{"default":"","type":"string","maxLength":80},"emailAccess":{"default":false,"type":"boolean"}},"required":["title","timezone","name","email"],"additionalProperties":false},"annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":true}},{"name":"decide_question","title":"Record a decision","description":"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.","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"eventId":{"type":"string","pattern":"^[a-f0-9]{48}$"},"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)$"},"agent":{"default":"","type":"string","maxLength":80},"requestId":{"type":"string","minLength":8,"maxLength":100},"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)$"},"decision":{"type":"string","minLength":1,"maxLength":500},"reopen":{"default":false,"type":"boolean"}},"required":["eventId","participantId","requestId","questionId"],"additionalProperties":false},"annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":true}},{"name":"get_changes","title":"Catch up","description":"Fetch changes strictly after sinceVersion. Save nextVersion only after processing. Read-only: never emails participants. Poll every 300 seconds if you cannot monitor email.","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"eventId":{"type":"string","pattern":"^[a-f0-9]{48}$"},"sinceVersion":{"default":0,"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["eventId"],"additionalProperties":false},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"get_channel_update","title":"Prepare a group update","description":"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.","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"eventId":{"type":"string","pattern":"^[a-f0-9]{48}$"},"channel":{"type":"string","enum":["whatsapp","signal","email"]},"sinceVersion":{"default":0,"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["eventId","channel"],"additionalProperties":false},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"get_event","title":"Read the plan","description":"Read the event, dates, availability, questions, decisions and activity. Emails are private and never returned.","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"eventId":{"type":"string","pattern":"^[a-f0-9]{48}$"}},"required":["eventId"],"additionalProperties":false},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"join_event","title":"Join the gathering","description":"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.","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"eventId":{"type":"string","pattern":"^[a-f0-9]{48}$"},"name":{"type":"string","minLength":1,"maxLength":80},"email":{"type":"string","maxLength":254,"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,}$"},"agent":{"default":"","type":"string","maxLength":80},"emailAccess":{"default":false,"type":"boolean"},"requestId":{"type":"string","minLength":8,"maxLength":100}},"required":["eventId","name","email","requestId"],"additionalProperties":false},"annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":true}},{"name":"propose_date","title":"Suggest a time","description":"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.","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"eventId":{"type":"string","pattern":"^[a-f0-9]{48}$"},"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)$"},"agent":{"default":"","type":"string","maxLength":80},"requestId":{"type":"string","minLength":8,"maxLength":100},"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)))$"},"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)))$"},"label":{"default":"","type":"string","maxLength":120}},"required":["eventId","participantId","requestId","start","end"],"additionalProperties":false},"annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":true}},{"name":"record_channel_update","title":"Record a shared update","description":"Record a successful external message delivery. Only call after your channel confirms the message was sent. Does not trigger more emails.","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"eventId":{"type":"string","pattern":"^[a-f0-9]{48}$"},"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)$"},"agent":{"default":"","type":"string","maxLength":80},"requestId":{"type":"string","minLength":8,"maxLength":100},"channel":{"type":"string","enum":["whatsapp","signal","email"]},"version":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["eventId","participantId","requestId","channel","version"],"additionalProperties":false},"annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":true}},{"name":"remove_date","title":"Remove a time","description":"Remove a proposed date. A confirmed date must first be changed or the event reopened.","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"eventId":{"type":"string","pattern":"^[a-f0-9]{48}$"},"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)$"},"agent":{"default":"","type":"string","maxLength":80},"requestId":{"type":"string","minLength":8,"maxLength":100},"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)$"}},"required":["eventId","participantId","requestId","dateId"],"additionalProperties":false},"annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":true}},{"name":"set_availability","title":"Share availability","description":"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.","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"eventId":{"type":"string","pattern":"^[a-f0-9]{48}$"},"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)$"},"agent":{"default":"","type":"string","maxLength":80},"requestId":{"type":"string","minLength":8,"maxLength":100},"responses":{"minItems":1,"maxItems":40,"type":"array","items":{"type":"object","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":{"type":"string","enum":["yes","maybe","no"]}},"required":["dateId","response"]}}},"required":["eventId","participantId","requestId","responses"],"additionalProperties":false},"annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":true}},{"name":"set_channels","title":"Group channels","description":"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.","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"eventId":{"type":"string","pattern":"^[a-f0-9]{48}$"},"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)$"},"agent":{"default":"","type":"string","maxLength":80},"requestId":{"type":"string","minLength":8,"maxLength":100},"channels":{"maxItems":3,"type":"array","items":{"type":"object","properties":{"type":{"type":"string","enum":["whatsapp","signal","email"]},"label":{"type":"string","minLength":1,"maxLength":120}},"required":["type","label"]}}},"required":["eventId","participantId","requestId","channels"],"additionalProperties":false},"annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":true}},{"name":"update_event","title":"Edit the gathering","description":"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.","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"eventId":{"type":"string","pattern":"^[a-f0-9]{48}$"},"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)$"},"agent":{"default":"","type":"string","maxLength":80},"requestId":{"type":"string","minLength":8,"maxLength":100},"title":{"type":"string","minLength":1,"maxLength":500},"description":{"type":"string","maxLength":3000},"timezone":{"type":"string","maxLength":80},"location":{"type":"string","maxLength":500},"status":{"type":"string","enum":["planning","confirmed","cancelled"]},"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)$"}},"required":["eventId","participantId","requestId"],"additionalProperties":false},"annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":true}},{"name":"update_participant","title":"Your preferences","description":"Change your display name, agent, email monitoring mode or email notification preference. Reading and cursor acknowledgements do not trigger emails.","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"eventId":{"type":"string","pattern":"^[a-f0-9]{48}$"},"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)$"},"agent":{"default":"","type":"string","maxLength":80},"requestId":{"type":"string","minLength":8,"maxLength":100},"name":{"type":"string","minLength":1,"maxLength":80},"emailAccess":{"type":"boolean"},"notifications":{"type":"boolean"}},"required":["eventId","participantId","requestId"],"additionalProperties":false},"annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":true}},{"name":"vote","title":"Vote on a question","description":"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.","inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"eventId":{"type":"string","pattern":"^[a-f0-9]{48}$"},"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)$"},"agent":{"default":"","type":"string","maxLength":80},"requestId":{"type":"string","minLength":8,"maxLength":100},"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)$"},"optionIds":{"maxItems":20,"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)$"}}},"required":["eventId","participantId","requestId","questionId","optionIds"],"additionalProperties":false},"annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":true}}]}