lesgooo.fun
Measured conclusion: Deep-tested. L2 outcome: tools_ok.
Free no-signup group planner: dates, RSVPs, place votes, shared checklist and split costs.
| Author | fun.lesgooo |
|---|---|
| Access | remote |
| Publisher key required | No |
| Measured state | Deep-tested |
| L1 liveness | alive |
| L1 latency | 2682 ms |
| Last measured | 2026-10-24 |
Add to your agent
Copy this into your MCP client config:
{
"mcpServers": {
"lesgooo.fun": {
"url": "https://lesgooo.fun/mcp",
"transport": "streamable-http"
}
}
}
Measured tools (23)
create_planCreates 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.
Parameters:
title— string — User-supplied short plan name (max 120 chars). Omitted when unknown; temporary Event label until collected after the requested action.your_name— string — User-supplied participant name (max 80 chars). Omitted when unknown; temporary Organizer participant until their name is collected after the requested action.request_id— string — Optional UUID v4 for atomic creation. An identical UUID and identical fields (including omissions) replay the same creation; a changed payload is rejected.
Hints: read-only no · destructive no · idempotent no · open-world yes
get_planread-onlyReads 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.
Parameters:
plan(required) — string — 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.since— string — Optional ISO timestamp (server_time from an earlier get_plan).time_zone— string — The user's IANA time zone, e.g. Europe/Prague.include_all_dates— boolean — For calendar UI: return all dates within the existing bounded read budget, instead of the concise first 60 per person.
Hints: read-only yes · destructive no · idempotent not declared · open-world yes
join_plandestructiveAdds 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.
Parameters:
plan(required) — string — 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.name(required) — string — The person's name as the group knows them (max 80 chars).selection— string — Without credentials: auto matches or adds; existing never adds; new never takes another person's matching name. Default auto.participant_id— string — From create_plan or join_plan.participant_token— string — From create_plan or join_plan.existing_participant_id— string — Exact existing participant ID from get_plan or received user UI selection; requires selection=existing and matching name. No rename.
Hints: read-only no · destructive yes · idempotent yes · open-world yes
set_availabilitydestructiveChanges 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.
Parameters:
plan(required) — string — 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.participant_id(required) — string — From create_plan or join_plan.participant_token(required) — string — From create_plan or join_plan.dates(required) — arraymode— string — add/remove change supplied days/windows; replace is a full replacement when time_slots is supplied. Default replace (legacy all-day behavior).time_zone— string — The user's IANA time zone, e.g. Europe/Prague.time_slots— array — Optional exact windows. For hours-only changes pass dates=[] and mode=add/remove; replace changes the entire availability. End is exclusive.
Hints: read-only no · destructive yes · idempotent yes · open-world yes
set_rsvpdestructiveRecords 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.
Parameters:
plan(required) — string — 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.participant_id(required) — string — From create_plan or join_plan.participant_token(required) — string — From create_plan or join_plan.status(required) — stringoccurrence_date— string — Repeating events only: the date of the occurrence to answer for.
Hints: read-only no · destructive yes · idempotent yes · open-world yes
add_placeSuggests 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.
Parameters:
plan(required) — string — 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.participant_id(required) — string — From create_plan or join_plan.participant_token(required) — string — From create_plan or join_plan.name(required) — string — Requested place name, including accents (max 300 chars). A selected Google result supplies its official name.link— string — Optional link to any other page about the place (http/https), instead of google_maps_url.query— string — Optional Google autocomplete query including the known city/address (max 160 chars); otherwise name/address are used.source— string — Default auto uses Google first. Manual explicitly saves the supplied name/address/link without a paid lookup.address— string — Optional address (max 500 chars).google_maps_url— string — Optional Google Maps link (google.com/maps or maps.app.goo.gl). Links with coordinates (…/@50.08,14.42,…) also show a map preview.google_place_id— string — Exact place ID from returned Google candidates; official details are loaded server-side (max 160 chars).
Hints: read-only no · destructive no · idempotent yes · open-world yes
vote_placedestructiveUp-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.
Parameters:
plan(required) — string — 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.participant_id(required) — string — From create_plan or join_plan.participant_token(required) — string — From create_plan or join_plan.place_id(required) — string — From get_plan places[].place_id or add_place (the exact place name also works).vote(required) — string
Hints: read-only no · destructive yes · idempotent yes · open-world yes
get_checklistread-onlyReads 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.
Parameters:
plan(required) — string — 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.
Hints: read-only yes · destructive no · idempotent not declared · open-world yes
add_checklist_itemAdds 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.
Parameters:
plan(required) — string — 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.participant_id(required) — string — From create_plan or join_plan.participant_token(required) — string — From create_plan or join_plan.text(required) — string — One independently checkable item, single line, max 500 chars. Not a list of multiple tasks/ingredients.
Hints: read-only no · destructive no · idempotent no · open-world yes
check_itemdestructiveMarks a checklist item done (done=true) or open again (done=false). Use when the user says a task is finished or needs reopening.
Parameters:
plan(required) — string — 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.participant_id(required) — string — From create_plan or join_plan.participant_token(required) — string — From create_plan or join_plan.item_id(required) — string — From get_checklist or add_checklist_item (the exact item text also works).done(required) — boolean
Hints: read-only no · destructive yes · idempotent yes · open-world yes
update_eventdestructiveUpdates 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.
Parameters:
plan(required) — string — 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.participant_id(required) — string — From create_plan or join_plan.participant_token(required) — string — From create_plan or join_plan.title— string — Plan / event name (max 120 chars).end_date— stringend_time— stringlocation— string — Place as plain text (max 500 chars).start_date— stringstart_time— string — HH:MM, local time.description— string — Details for the group (max 4000 chars).
Hints: read-only no · destructive yes · idempotent yes · open-world yes
get_expensesread-onlyReads 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.
Parameters:
plan(required) — string — 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.
Hints: read-only yes · destructive no · idempotent not declared · open-world yes
add_expenseRecords 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.
Parameters:
plan(required) — string — 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.participant_id(required) — string — From create_plan or join_plan.participant_token(required) — string — From create_plan or join_plan.description(required) — string — What it was for, e.g. "Groceries" (max 120 chars).amount(required) — number — Total, max 2 decimals (e.g. 42.5). Send a plain number.currency— string — 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).split_among— array — Who shares the cost (participant_id values or exact names). Defaults to everyone.allow_duplicate— boolean — Only if the user confirms a second, identical expense within 10 minutes (otherwise it is treated as a retry).paid_by_participant_id— string — Who paid (participant_id from get_plan, or their exact name). Defaults to you.
Hints: read-only no · destructive no · idempotent no · open-world yes
record_paymentRecords 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.
Parameters:
plan(required) — string — 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.participant_id(required) — string — From create_plan or join_plan.participant_token(required) — string — From create_plan or join_plan.to_participant_id(required) — string — Who received the money (participant_id, or their exact name).amount— number — Optional; defaults to the suggested settle-up amount.allow_duplicate— boolean — Only if the user confirms a second, identical payment within 10 minutes (otherwise it is treated as a retry).
Hints: read-only no · destructive no · idempotent no · open-world yes
remove_entrydestructiveDeletes 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.
Parameters:
plan(required) — string — 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.participant_id(required) — string — From create_plan or join_plan.participant_token(required) — string — From create_plan or join_plan.kind(required) — stringid(required) — string — 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.
Hints: read-only no · destructive yes · idempotent yes · open-world yes
widget_writedestructiveApp-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.
Parameters:
operation(required) — stringpayload(required) — objectplan— stringparticipant_id— stringparticipant_token— stringtarget_participant_id— stringtarget_participant_token— string
Hints: read-only no · destructive yes · idempotent not declared · open-world yes
widget_select_participantread-onlyApp-only identity picker. Bind the name explicitly selected in the shared web UI. Does not change schedule data.
Parameters:
plan(required) — stringparticipant_id(required) — string
Hints: read-only yes · destructive no · idempotent not declared · open-world yes
widget_lookupread-onlyApp-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.
Parameters:
service(required) — stringpayload(required) — object
Hints: read-only yes · destructive no · idempotent not declared · open-world yes
open_plannerread-onlyOpens 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.
Parameters:
plan— stringmodule— stringparticipant_id— string — Previously selected participant in this plan; requires participant_token.participant_token— string — Token returned by join_plan/create_plan for this participant and plan; requires participant_id.
Hints: read-only yes · destructive no · idempotent not declared · open-world yes
find_plan_mentionsread-onlyResolve 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.
Parameters:
query(required) — string
Hints: read-only yes · destructive no · idempotent not declared · open-world yes
open_preferencesread-onlyOpen local widget preferences. Defaults and recent history stay on this device; does not change a shared plan.
Hints: read-only yes · destructive no · idempotent not declared · open-world no
read_plugin_settingsread-onlyRead the plugin settings layout. There are no account settings; the action opens device-local preferences.
Hints: read-only yes · destructive no · idempotent not declared · open-world no
update_plugin_settingsread-onlyNo primitive account settings are available. An empty update is a no-op; device preferences are changed in the widget.
Parameters:
set(required) — object
Hints: read-only yes · destructive no · idempotent not declared · open-world no
Measured by MCPYP probing. Untested fields are omitted, never estimated. Listing is always free; MCPYP never proxies calls or stores user tokens.