{"id":568178,"recorded_at":"2026-10-27T22:09:03.956373Z","observed_at":"2026-10-27T22:09:03.956303Z","subject_kind":"endpoint","subject":"56aef9cf-b61b-438c-b20c-c8a1950b3f25","kind":"mcp.tools","method":"probe.mcp/1","body":{"count":23,"tools":[{"description":"Adds one item to the plan's shared checklist: one task, ingredient or thing to bring per call. Use when the user wants something added to the to-do or packing list.","inputSchema":{"additionalProperties":false,"properties":{"participant_id":{"description":"From create_plan or join_plan.","type":"string"},"participant_token":{"description":"From create_plan or join_plan.","type":"string"},"plan":{"description":"Saved plan link (e.g. https://lesgooo.fun/ab12/when) or its 4-character plan ID. Links without a plan ID (e.g. https://lesgooo.fun/when) are unsaved local drafts and are not accepted.","type":"string"},"text":{"description":"One independently checkable item, single line, max 500 chars. Not a list of multiple tasks/ingredients.","type":"string"}},"required":["plan","participant_id","participant_token","text"],"type":"object"},"name":"add_checklist_item"},{"description":"Records a shared expense split equally: description, amount, currency, who paid (defaults to the participant) and who shares it (defaults to everyone). It records the cost only and moves no money. Use when the user reports something they or someone in the group paid for.","inputSchema":{"additionalProperties":false,"properties":{"allow_duplicate":{"description":"Only if the user confirms a second, identical expense within 10 minutes (otherwise it is treated as a retry).","type":"boolean"},"amount":{"description":"Total, max 2 decimals (e.g. 42.5). Send a plain number.","type":"number"},"currency":{"description":"ISO code, e.g. CZK or EUR. Sets the plan's currency if it has no expenses yet; otherwise must match it (see get_plan currency).","type":"string"},"description":{"description":"What it was for, e.g. \"Groceries\" (max 120 chars).","type":"string"},"paid_by_participant_id":{"description":"Who paid (participant_id from get_plan, or their exact name). Defaults to you.","type":"string"},"participant_id":{"description":"From create_plan or join_plan.","type":"string"},"participant_token":{"description":"From create_plan or join_plan.","type":"string"},"plan":{"description":"Saved plan link (e.g. https://lesgooo.fun/ab12/when) or its 4-character plan ID. Links without a plan ID (e.g. https://lesgooo.fun/when) are unsaved local drafts and are not accepted.","type":"string"},"split_among":{"description":"Who shares the cost (participant_id values or exact names). Defaults to everyone.","items":{"type":"string"},"type":"array"}},"required":["plan","participant_id","participant_token","description","amount"],"type":"object"},"name":"add_expense"},{"description":"Suggests a place for the group to vote on (Where). By default it searches Google Places and returns up to five candidates without saving (status needs_selection); calling it again with the chosen google_place_id saves the place with its official details, map link and photo. source=manual saves a supplied name, address or link without a lookup. Duplicates are merged. Use when the user proposes a venue or destination.","inputSchema":{"additionalProperties":false,"properties":{"address":{"description":"Optional address (max 500 chars).","type":"string"},"google_maps_url":{"description":"Optional Google Maps link (google.com/maps or maps.app.goo.gl). Links with coordinates (…/@50.08,14.42,…) also show a map preview.","type":"string"},"google_place_id":{"description":"Exact place ID from returned Google candidates; official details are loaded server-side (max 160 chars).","type":"string"},"link":{"description":"Optional link to any other page about the place (http/https), instead of google_maps_url.","type":"string"},"name":{"description":"Requested place name, including accents (max 300 chars). A selected Google result supplies its official name.","type":"string"},"participant_id":{"description":"From create_plan or join_plan.","type":"string"},"participant_token":{"description":"From create_plan or join_plan.","type":"string"},"plan":{"description":"Saved plan link (e.g. https://lesgooo.fun/ab12/when) or its 4-character plan ID. Links without a plan ID (e.g. https://lesgooo.fun/when) are unsaved local drafts and are not accepted.","type":"string"},"query":{"description":"Optional Google autocomplete query including the known city/address (max 160 chars); otherwise name/address are used.","type":"string"},"source":{"description":"Default auto uses Google first. Manual explicitly saves the supplied name/address/link without a paid lookup.","enum":["auto","manual"],"type":"string"}},"required":["plan","participant_id","participant_token","name"],"type":"object"},"name":"add_place"},{"description":"Marks a checklist item done (done=true) or open again (done=false). Use when the user says a task is finished or needs reopening.","inputSchema":{"additionalProperties":false,"properties":{"done":{"type":"boolean"},"item_id":{"description":"From get_checklist or add_checklist_item (the exact item text also works).","type":"string"},"participant_id":{"description":"From create_plan or join_plan.","type":"string"},"participant_token":{"description":"From create_plan or join_plan.","type":"string"},"plan":{"description":"Saved plan link (e.g. https://lesgooo.fun/ab12/when) or its 4-character plan ID. Links without a plan ID (e.g. https://lesgooo.fun/when) are unsaved local drafts and are not accepted.","type":"string"}},"required":["plan","participant_id","participant_token","item_id","done"],"type":"object"},"name":"check_item"},{"description":"Creates a new saved lesgooo group plan with the user as its first participant. Use when the user wants to start planning something new. Returns the shareable plan links and the participant's private credentials (participant_id, participant_token) needed for later changes. Title and name are optional. Sends no invitations or notifications.","inputSchema":{"additionalProperties":false,"properties":{"request_id":{"description":"Optional UUID v4 for atomic creation. An identical UUID and identical fields (including omissions) replay the same creation; a changed payload is rejected.","type":"string"},"title":{"description":"User-supplied short plan name (max 120 chars). Omitted when unknown; temporary Event label until collected after the requested action.","type":"string"},"your_name":{"description":"User-supplied participant name (max 80 chars). Omitted when unknown; temporary Organizer participant until their name is collected after the requested action.","type":"string"}},"required":[],"type":"object"},"name":"create_plan"},{"description":"Resolve an explicitly supplied lesgooo saved-plan link or exact ID for the desktop mention picker. Empty or general searches return no results; never enumerate plans.","inputSchema":{"additionalProperties":false,"properties":{"query":{"maxLength":300,"type":"string"}},"required":["query"],"type":"object"},"name":"find_plan_mentions"},{"description":"Reads the plan's shared checklist: open and done items with their item_id. Use when the user asks what still needs doing or what is on the list.","inputSchema":{"additionalProperties":false,"properties":{"plan":{"description":"Saved plan link (e.g. https://lesgooo.fun/ab12/when) or its 4-character plan ID. Links without a plan ID (e.g. https://lesgooo.fun/when) are unsaved local drafts and are not accepted.","type":"string"}},"required":["plan"],"type":"object"},"name":"get_checklist"},{"description":"Reads the plan's shared costs: recorded expenses and payments, each participant's balance and the suggested transfers to settle up, in the plan's currency. Use when the user asks who paid what or who owes whom.","inputSchema":{"additionalProperties":false,"properties":{"plan":{"description":"Saved plan link (e.g. https://lesgooo.fun/ab12/when) or its 4-character plan ID. Links without a plan ID (e.g. https://lesgooo.fun/when) are unsaved local drafts and are not accepted.","type":"string"}},"required":["plan"],"type":"object"},"name":"get_expenses"},{"description":"Reads a saved plan: title, Event details, participants with their all-day and exact-time availability and RSVP answers, best dates and shared free-time windows, suggested places with votes, and the currency. Use when the user shares a plan link or asks about a plan's current state. time_zone resolves today's date; since returns changes after an earlier server_time.","inputSchema":{"additionalProperties":false,"properties":{"include_all_dates":{"description":"For calendar UI: return all dates within the existing bounded read budget, instead of the concise first 60 per person.","type":"boolean"},"plan":{"description":"Saved plan link (e.g. https://lesgooo.fun/ab12/when) or its 4-character plan ID. Links without a plan ID (e.g. https://lesgooo.fun/when) are unsaved local drafts and are not accepted.","type":"string"},"since":{"description":"Optional ISO timestamp (server_time from an earlier get_plan).","type":"string"},"time_zone":{"description":"The user's IANA time zone, e.g. Europe/Prague.","type":"string"}},"required":["plan"],"type":"object"},"name":"get_plan"},{"description":"Adds the user to a saved plan under their name, or selects the existing participant with that name, and returns that person's private credentials. Use when the user wants to take part in an existing plan or act as a specific participant in it. With existing credentials it renames that same participant instead. It does not verify identity or grant organizer rights.","inputSchema":{"additionalProperties":false,"properties":{"existing_participant_id":{"description":"Exact existing participant ID from get_plan or received user UI selection; requires selection=existing and matching name. No rename.","type":"string"},"name":{"description":"The person's name as the group knows them (max 80 chars).","type":"string"},"participant_id":{"description":"From create_plan or join_plan.","type":"string"},"participant_token":{"description":"From create_plan or join_plan.","type":"string"},"plan":{"description":"Saved plan link (e.g. https://lesgooo.fun/ab12/when) or its 4-character plan ID. Links without a plan ID (e.g. https://lesgooo.fun/when) are unsaved local drafts and are not accepted.","type":"string"},"selection":{"description":"Without credentials: auto matches or adds; existing never adds; new never takes another person's matching name. Default auto.","enum":["auto","existing","new"],"type":"string"}},"required":["plan","name"],"type":"object"},"name":"join_plan"},{"description":"Opens the interactive lesgooo planner (When, Where, Event, Checklist, Splitwise) in the conversation, optionally on a saved plan and module and as a previously selected participant. Without a plan it shows an unsaved local draft. Opening saves nothing. Use when the user wants to see or edit the plan visually.","inputSchema":{"additionalProperties":false,"properties":{"module":{"enum":["when","where","rsvp","checklist","splitwise"],"type":"string"},"participant_id":{"description":"Previously selected participant in this plan; requires participant_token.","type":"string"},"participant_token":{"description":"Token returned by join_plan/create_plan for this participant and plan; requires participant_id.","type":"string"},"plan":{"type":"string"}},"type":"object"},"name":"open_planner"},{"description":"Open local widget preferences. Defaults and recent history stay on this device; does not change a shared plan.","inputSchema":{"additionalProperties":false,"properties":{},"type":"object"},"name":"open_preferences"},{"description":"Read the plugin settings layout. There are no account settings; the action opens device-local preferences.","inputSchema":{"additionalProperties":false,"properties":{},"type":"object"},"name":"read_plugin_settings"},{"description":"Records that the participant has already paid someone back (settling up); the amount defaults to what they owe that person. It records a completed payment only and moves no money. Use when the user says the money was actually sent.","inputSchema":{"additionalProperties":false,"properties":{"allow_duplicate":{"description":"Only if the user confirms a second, identical payment within 10 minutes (otherwise it is treated as a retry).","type":"boolean"},"amount":{"description":"Optional; defaults to the suggested settle-up amount.","type":"number"},"participant_id":{"description":"From create_plan or join_plan.","type":"string"},"participant_token":{"description":"From create_plan or join_plan.","type":"string"},"plan":{"description":"Saved plan link (e.g. https://lesgooo.fun/ab12/when) or its 4-character plan ID. Links without a plan ID (e.g. https://lesgooo.fun/when) are unsaved local drafts and are not accepted.","type":"string"},"to_participant_id":{"description":"Who received the money (participant_id, or their exact name).","type":"string"}},"required":["plan","participant_id","participant_token","to_participant_id"],"type":"object"},"name":"record_payment"},{"description":"Deletes an expense, payment, checklist item or place that this participant added; entries added by others cannot be removed. Use when the user asks to delete a specific entry, for example to correct a mistake.","inputSchema":{"additionalProperties":false,"properties":{"id":{"description":"expense_id / payment_id (get_expenses), item_id (get_checklist) or place_id (get_plan). For items and places the exact text/name also works.","type":"string"},"kind":{"enum":["expense","payment","checklist_item","place"],"type":"string"},"participant_id":{"description":"From create_plan or join_plan.","type":"string"},"participant_token":{"description":"From create_plan or join_plan.","type":"string"},"plan":{"description":"Saved plan link (e.g. https://lesgooo.fun/ab12/when) or its 4-character plan ID. Links without a plan ID (e.g. https://lesgooo.fun/when) are unsaved local drafts and are not accepted.","type":"string"}},"required":["plan","participant_id","participant_token","kind","id"],"type":"object"},"name":"remove_entry"},{"description":"Changes one participant's availability: all-day dates and/or exact free-time windows (ISO start and end with offset, plus the IANA time_zone). mode=add merges, remove subtracts, replace overwrites. Use when the user says which days or hours they are or are no longer free. It does not set the agreed Event date or an RSVP.","inputSchema":{"additionalProperties":false,"properties":{"dates":{"items":{"pattern":"^\\d{4}-\\d{2}-\\d{2}$","type":"string"},"maxItems":370,"type":"array"},"mode":{"description":"add/remove change supplied days/windows; replace is a full replacement when time_slots is supplied. Default replace (legacy all-day behavior).","enum":["replace","add","remove"],"type":"string"},"participant_id":{"description":"From create_plan or join_plan.","type":"string"},"participant_token":{"description":"From create_plan or join_plan.","type":"string"},"plan":{"description":"Saved plan link (e.g. https://lesgooo.fun/ab12/when) or its 4-character plan ID. Links without a plan ID (e.g. https://lesgooo.fun/when) are unsaved local drafts and are not accepted.","type":"string"},"time_slots":{"description":"Optional exact windows. For hours-only changes pass dates=[] and mode=add/remove; replace changes the entire availability. End is exclusive.","items":{"additionalProperties":false,"properties":{"end":{"description":"ISO timestamp with Z or UTC offset, after start, max 7 days.","type":"string"},"start":{"description":"ISO timestamp with Z or UTC offset.","type":"string"}},"required":["start","end"],"type":"object"},"maxItems":300,"type":"array"},"time_zone":{"description":"The user's IANA time zone, e.g. Europe/Prague.","type":"string"}},"required":["plan","participant_id","participant_token","dates"],"type":"object"},"name":"set_availability"},{"description":"Records whether the participant is coming to the plan's Event: yes, no, or clear to remove the answer. For a repeating event it answers one occurrence (the next one by default, or occurrence_date). Use when the user says they are or are not attending.","inputSchema":{"additionalProperties":false,"properties":{"occurrence_date":{"description":"Repeating events only: the date of the occurrence to answer for.","pattern":"^\\d{4}-\\d{2}-\\d{2}$","type":"string"},"participant_id":{"description":"From create_plan or join_plan.","type":"string"},"participant_token":{"description":"From create_plan or join_plan.","type":"string"},"plan":{"description":"Saved plan link (e.g. https://lesgooo.fun/ab12/when) or its 4-character plan ID. Links without a plan ID (e.g. https://lesgooo.fun/when) are unsaved local drafts and are not accepted.","type":"string"},"status":{"enum":["yes","no","clear"],"type":"string"}},"required":["plan","participant_id","participant_token","status"],"type":"object"},"name":"set_rsvp"},{"description":"Updates the shared Event details everyone sees: title, date and time (local time, no time zone; no start_time means all day), location and description. Omitted fields stay unchanged; an empty string clears a field. Use when the user sets or changes the agreed event details or renames the plan.","inputSchema":{"additionalProperties":false,"properties":{"description":{"description":"Details for the group (max 4000 chars).","type":"string"},"end_date":{"pattern":"^\\d{4}-\\d{2}-\\d{2}$","type":"string"},"end_time":{"pattern":"^\\d{2}:\\d{2}$","type":"string"},"location":{"description":"Place as plain text (max 500 chars).","type":"string"},"participant_id":{"description":"From create_plan or join_plan.","type":"string"},"participant_token":{"description":"From create_plan or join_plan.","type":"string"},"plan":{"description":"Saved plan link (e.g. https://lesgooo.fun/ab12/when) or its 4-character plan ID. Links without a plan ID (e.g. https://lesgooo.fun/when) are unsaved local drafts and are not accepted.","type":"string"},"start_date":{"pattern":"^\\d{4}-\\d{2}-\\d{2}$","type":"string"},"start_time":{"description":"HH:MM, local time.","pattern":"^\\d{2}:\\d{2}$","type":"string"},"title":{"description":"Plan / event name (max 120 chars).","type":"string"}},"required":["plan","participant_id","participant_token"],"type":"object"},"name":"update_event"},{"description":"No primitive account settings are available. An empty update is a no-op; device preferences are changed in the widget.","inputSchema":{"additionalProperties":false,"properties":{"set":{"additionalProperties":false,"properties":{},"type":"object"}},"required":["set"],"type":"object"},"name":"update_plugin_settings"},{"description":"Up-votes, down-votes or clears the participant's vote on a suggested place. Use when the user expresses a preference for or against a place in the plan.","inputSchema":{"additionalProperties":false,"properties":{"participant_id":{"description":"From create_plan or join_plan.","type":"string"},"participant_token":{"description":"From create_plan or join_plan.","type":"string"},"place_id":{"description":"From get_plan places[].place_id or add_place (the exact place name also works).","type":"string"},"plan":{"description":"Saved plan link (e.g. https://lesgooo.fun/ab12/when) or its 4-character plan ID. Links without a plan ID (e.g. https://lesgooo.fun/when) are unsaved local drafts and are not accepted.","type":"string"},"vote":{"enum":["up","down","clear"],"type":"string"}},"required":["plan","participant_id","participant_token","place_id","vote"],"type":"object"},"name":"vote_place"},{"description":"App-only Places search/details and link previews. The backend retains feature flags, monthly provider counters and timeouts. Never calls a paid API from the browser.","inputSchema":{"additionalProperties":false,"properties":{"payload":{"type":"object"},"service":{"enum":["fetchPlacesAutocompleteV2","fetchPlaceDetailsV2","fetchLinkPreviewV2","fetchPreviewImage"],"type":"string"}},"required":["service","payload"],"type":"object"},"name":"widget_lookup"},{"description":"App-only identity picker. Bind the name explicitly selected in the shared web UI. Does not change schedule data.","inputSchema":{"additionalProperties":false,"properties":{"participant_id":{"type":"string"},"plan":{"type":"string"}},"required":["plan","participant_id"],"type":"object"},"name":"widget_select_participant"},{"description":"App-only transport for explicit interactions with shared web components. Reuses the web write gateway, validation and budgets. Requires the selected participant token for saved-plan edits.","inputSchema":{"additionalProperties":false,"properties":{"operation":{"type":"string"},"participant_id":{"type":"string"},"participant_token":{"type":"string"},"payload":{"type":"object"},"plan":{"type":"string"},"target_participant_id":{"type":"string"},"target_participant_token":{"type":"string"}},"required":["operation","payload"],"type":"object"},"name":"widget_write"}]},"body_sha256":"5eb6cb7673e3b408388da7ef79a5d733a296c5ebb7984cc707e0f9763284f889","prev_id":null,"leaf":"0x8b0491a99589a17715bd2bff1c8ac477d2f20898fa4e7cfb4b5aacf52c2c5196","leaf_text":"{\"body\":\"5eb6cb7673e3b408388da7ef79a5d733a296c5ebb7984cc707e0f9763284f889\",\"id\":568178,\"kind\":\"mcp.tools\",\"method\":\"probe.mcp/1\",\"observed_us\":1793138943956303,\"prev\":null,\"subject\":\"56aef9cf-b61b-438c-b20c-c8a1950b3f25\",\"subject_kind\":\"endpoint\"}","day":{"day":"2026-10-27","leaves":273461,"root":"0xdd77e5e99da32c3f154180d63e3c3e6fe11e896a2c6896412ef6b5c4bcf7e795","chained":"0x23bb4dfd09f55c15ac3962f53578e02c6114d5bfd9bb451cf8794fb6e2817ef4","anchor_chain":"eip155:5042002","anchor_tx":"0xb2ebd83aafeb765a0ce66e76aefb133ed06606c98038fd56191e2bcd1dcb77b4","anchor_block":69414147},"proof":["0x8b04d8b1a08de41c3f910403ddc1d2e7caa7938dc0bc30e84328b1b8457977cb","0x505207a360077473d6338de538bf894e2e05ddd22d55fa2577b999ebb66df898","0xbb5e2c714d434501e5a2925e2306d8187cf276aed1d005c3ebdae8a165b333ef","0x7f68587e4d1b32bf648253b22bfbc43a9a17eed80191aa687c10e003a155fd16","0xf6f81ab0d3b1197a0f036ff7804020130e92896e2529b49ce4ffc31bfb4452f4","0xdd62da3d36784c0eacfe7eb40a6cff9e0d197e9f1cff750048536d3af1ce51ca","0x31dd4e7fd3b4688ee320ad4ea239cf057a0d695d6bb6d0bda60605d166ca1d08","0x8f5f1cd942648c2bac3919a1c4622778f5146cdb483b7044409d473ddeb8c93c","0xc52ef749083ddebe0f2a6e09f8f704ba07c0170930e7c6d99e0d2689e47e89f0","0x5645f68f1fb0e8c2e54f461dbe91bce0595402bb486da126088cf1c275dd2050","0xcdbeb854b5cb2391772ef949ab5c1e3c24cc8221d97cd112ccb987b02e3d89da","0xe9b891332733aa3fa69ace7f82b036df13816078968e2c10034f79c2255498d0","0xea3d566bf95ca7a3a7f6de9c4f77180bd8c5ffd160486a27d870e8a2fb6d0b9e","0x06e3b43165f5b3c31d850bc32f20b2e25b844564c4e042c141b9748c26a5a600","0xb4f7223140c8a36cb87a63d77cf617086d9968dc4658f03e102571ebe06e9ed6","0xfecf3d4646dd4984a13dd715499e842c3fde63692336d97394c2bfd8e877ca5d","0xf30fddbf4811226c58e8f0daf36fddd79fc5f1356b592bb1d99a8061ddbabe66","0x2bf8151e5f157dd183b9de6fa00469551932a7a6e3f33a694895000ac9061197","0x9fc354c0ea3efc3f1b6548bb77ea902a50f2c9647647ea61592efce2bd795699"]}