Skip to content

lesgooo.fun

by lesgooo.fun · remote · no sign-in to list tools · v1.1.0 · published by fun.lesgooo

Free no-signup group planner: dates, RSVPs, place votes, shared checklist and split costs.

Deletes · 8Final · 2Changes · 8

24 tools: 8 can delete or cancel things, 2 do something that can't be undone, 8 change things and 6 only read.

Scanned Oct 21, 2026

18 checks matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.

claude mcp add --transport http lesgooo https://lesgooo.fun/mcp

Findings

Matches of fixed checks, with the text they matched.

4 warn14 info
  • The server marks "widget_select_participant" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

    Matched text

    annotations: {"readOnlyHint":true,"destructiveHint":false,"openWorldHint":true}; The name "widget_select_participant" says "select": a word for a change.

    What this check looks for
  • The server marks "open_planner" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

    Matched text

    annotations: {"readOnlyHint":true,"destructiveHint":false,"openWorldHint":true}; The name "open_planner" says "open": a word for a change.

    What this check looks for
  • The server marks "open_preferences" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

    Matched text

    annotations: {"readOnlyHint":true,"destructiveHint":false,"openWorldHint":false}; The name "open_preferences" says "open": a word for a change.

    What this check looks for
  • The server marks "update_plugin_settings" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

    Matched text

    annotations: {"readOnlyHint":true,"destructiveHint":false,"openWorldHint":false}; The name "update_plugin_settings" says "update": a word for a change.

    What this check looks for
  • The description mentions "credentials".

    Matched text

    description: "...he last-action module with the selected credentials, or honor an explicit opening request...."

    What this check looks for
  • The description mentions "credentials".

    Matched text

    description: "...he last-action module with the selected credentials, or honor an explicit opening request...."

    What this check looks for
Show 12 more findings
  • The input schema at properties.selection.description mentions "credentials".

    Matched text

    inputSchema.properties.selection.description: "Without credentials: auto matches or adds; existing never a..."

    What this check looks for
  • The description mentions "credentials".

    Matched text

    description: "...he last-action module with the selected credentials, or honor an explicit opening request...."

    What this check looks for
  • The description mentions "credentials".

    Matched text

    description: "...he last-action module with the selected credentials, or honor an explicit opening request...."

    What this check looks for
  • The description mentions "credentials".

    Matched text

    description: "...he last-action module with the selected credentials, or honor an explicit opening request...."

    What this check looks for
  • The description mentions "credentials".

    Matched text

    description: "...he last-action module with the selected credentials, or honor an explicit opening request...."

    What this check looks for
  • The description mentions "credentials".

    Matched text

    description: "...he last-action module with the selected credentials, or honor an explicit opening request...."

    What this check looks for
  • The description mentions "credentials".

    Matched text

    description: "...he last-action module with the selected credentials, or honor an explicit opening request...."

    What this check looks for
  • The description mentions "credentials".

    Matched text

    description: "...he last-action module with the selected credentials, or honor an explicit opening request...."

    What this check looks for
  • The description mentions "credentials".

    Matched text

    description: "...he last-action module with the selected credentials, or honor an explicit opening request...."

    What this check looks for
  • The description mentions "credentials".

    Matched text

    description: "...he last-action module with the selected credentials, or honor an explicit opening request...."

    What this check looks for
  • The description mentions "credentials".

    Matched text

    description: "...he last-action module with the selected credentials, or honor an explicit opening request...."

    What this check looks for
  • The description mentions "credentials".

    Matched text

    description: "...ule and previously selected participant credentials. Credentials preserve that person in th..."

    What this check looks for

Tools

Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.

24 tools

Deletes or cancels 8Claude Code: deny
  • check_itemKeep the final reply in the user's conversational language, 2–4 short sentences (25–60 words): report the verified result and ask ONE relevant optional next-step question about ONE…1 finding

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it destructive (destructiveHint: true).

    Findings

    • Info

      The description mentions "credentials".

      Matched text

      description: "...he last-action module with the selected credentials, or honor an explicit opening request...."

      What this check looks for
    Description, as the server wrote it
    Keep the final reply in the user's conversational language, 2–4 short sentences (25–60 words): report the verified result and ask ONE relevant optional next-step question about ONE action, not a choice menu. Mandatory missing details take priority. Suggestions never perform actions automatically; respect requests for no suggestions. Saved links let friends join without accounts. If CURRENT received UI context or actual host evidence confirms the same saved plan and last-action module are already open, do not call open_planner again; realtime updates the existing view. Historic context is insufficient. Otherwise open the last-action module with the selected credentials, or honor an explicit opening request. Mark a checklist item done (done: true) or open again (done: false), by item_id from get_checklist. Current stored state is available through get_checklist. Service use restrictions: plan creation, participation and edits for users known to be under 13 (or a higher local minimum) are prohibited, including under a nickname. Personal data about known underage children, sensitive medical records, intimate content, card details, government IDs, passwords and verification codes are prohibited planning input. This tool covers ordinary non-sensitive group planning only.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: true
    • openWorldHint: true
  • join_planKeep the final reply in the user's conversational language, 2–4 short sentences (25–60 words): report the verified result and ask ONE relevant optional next-step question about ONE…2 findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it destructive (destructiveHint: true).

    Findings

    • Info

      The description mentions "credentials".

      Matched text

      description: "...he last-action module with the selected credentials, or honor an explicit opening request...."

      What this check looks for
    • Info

      The input schema at properties.selection.description mentions "credentials".

      Matched text

      inputSchema.properties.selection.description: "Without credentials: auto matches or adds; existing never a..."

      What this check looks for
    Description, as the server wrote it
    Keep the final reply in the user's conversational language, 2–4 short sentences (25–60 words): report the verified result and ask ONE relevant optional next-step question about ONE action, not a choice menu. Mandatory missing details take priority. Suggestions never perform actions automatically; respect requests for no suggestions. Saved links let friends join without accounts. If CURRENT received UI context or actual host evidence confirms the same saved plan and last-action module are already open, do not call open_planner again; realtime updates the existing view. Historic context is insufficient. Otherwise open the last-action module with the selected credentials, or honor an explicit opening request. Join a plan as the user-specified person. Without participant credentials, selection=existing selects an existing person only; selection=new adds a distinct name only; default selection=auto reuses a unique matching name or adds it. Duplicate names require existing_participant_id, which selects the exact matching row without renaming. No account or organizer privilege is verified. With both participant_id and participant_token, the operation instead renames that same participant to name, preserving availability/RSVP/entries. That mode adds no participant and cannot switch to another matching name; collisions and invalid credentials are rejected. Returns participant_id and participant_token. Supports completing an unnamed organizer after their requested action. Service use restrictions: plan creation, participation and edits for users known to be under 13 (or a higher local minimum) are prohibited, including under a nickname. Personal data about known underage children, sensitive medical records, intimate content, card details, government IDs, passwords and verification codes are prohibited planning input. This tool covers ordinary non-sensitive group planning only.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: true
    • openWorldHint: true
  • remove_entryKeep the final reply in the user's conversational language, 2–4 short sentences (25–60 words): report the verified result and ask ONE relevant optional next-step question about ONE…1 finding

    Why it is in this group

    • The name "remove_entry" says "remove": a word for removing or ending something.
    • The server marks it destructive (destructiveHint: true).

    Findings

    • Info

      The description mentions "credentials".

      Matched text

      description: "...he last-action module with the selected credentials, or honor an explicit opening request...."

      What this check looks for
    Description, as the server wrote it
    Keep the final reply in the user's conversational language, 2–4 short sentences (25–60 words): report the verified result and ask ONE relevant optional next-step question about ONE action, not a choice menu. Mandatory missing details take priority. Suggestions never perform actions automatically; respect requests for no suggestions. Saved links let friends join without accounts. If CURRENT received UI context or actual host evidence confirms the same saved plan and last-action module are already open, do not call open_planner again; realtime updates the existing view. Historic context is insufficient. Otherwise open the last-action module with the selected credentials, or honor an explicit opening request. Delete an expense, payment, checklist item or place that the person you act for added (e.g. to fix a wrong amount: remove, then add again). Entries added by others can't be removed here. Requires an explicit request to delete this specific entry. Service use restrictions: plan creation, participation and edits for users known to be under 13 (or a higher local minimum) are prohibited, including under a nickname. Personal data about known underage children, sensitive medical records, intimate content, card details, government IDs, passwords and verification codes are prohibited planning input. This tool covers ordinary non-sensitive group planning only.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: true
    • openWorldHint: true
  • set_availabilityKeep the final reply in the user's conversational language, 2–4 short sentences (25–60 words): report the verified result and ask ONE relevant optional next-step question about ONE…1 finding

    Why it is in this group

    • The name "set_availability" says "set": a word for a change.
    • The server marks it destructive (destructiveHint: true).

    Findings

    • Info

      The description mentions "credentials".

      Matched text

      description: "...he last-action module with the selected credentials, or honor an explicit opening request...."

      What this check looks for
    Description, as the server wrote it
    Keep the final reply in the user's conversational language, 2–4 short sentences (25–60 words): report the verified result and ask ONE relevant optional next-step question about ONE action, not a choice menu. Mandatory missing details take priority. Suggestions never perform actions automatically; respect requests for no suggestions. Saved links let friends join without accounts. If CURRENT received UI context or actual host evidence confirms the same saved plan and last-action module are already open, do not call open_planner again; realtime updates the existing view. Historic context is insufficient. Otherwise open the last-action module with the selected credentials, or honor an explicit opening request. Add, remove or replace one participant's available calendar dates (YYYY-MM-DD, today up to two years ahead). Service use restrictions: plan creation, participation and edits for users known to be under 13 (or a higher local minimum) are prohibited, including under a nickname. Personal data about known underage children, sensitive medical records, intimate content, card details, government IDs, passwords and verification codes are prohibited planning input. This tool covers ordinary non-sensitive group planning only.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: true
    • openWorldHint: true
  • set_rsvpKeep the final reply in the user's conversational language, 2–4 short sentences (25–60 words): report the verified result and ask ONE relevant optional next-step question about ONE…1 finding

    Why it is in this group

    • The name "set_rsvp" says "set": a word for a change.
    • The server marks it destructive (destructiveHint: true).

    Findings

    • Info

      The description mentions "credentials".

      Matched text

      description: "...he last-action module with the selected credentials, or honor an explicit opening request...."

      What this check looks for
    Description, as the server wrote it
    Keep the final reply in the user's conversational language, 2–4 short sentences (25–60 words): report the verified result and ask ONE relevant optional next-step question about ONE action, not a choice menu. Mandatory missing details take priority. Suggestions never perform actions automatically; respect requests for no suggestions. Saved links let friends join without accounts. If CURRENT received UI context or actual host evidence confirms the same saved plan and last-action module are already open, do not call open_planner again; realtime updates the existing view. Historic context is insufficient. Otherwise open the last-action module with the selected credentials, or honor an explicit opening request. Answer whether the person is coming: "yes", "no", or "clear" to remove the answer. For a repeating event the answer is for one occurrence: the next one by default, or pass occurrence_date (see get_plan event.upcoming). Changes only the participant bound to the supplied credentials. Current stored state is available through get_plan. Service use restrictions: plan creation, participation and edits for users known to be under 13 (or a higher local minimum) are prohibited, including under a nickname. Personal data about known underage children, sensitive medical records, intimate content, card details, government IDs, passwords and verification codes are prohibited planning input. This tool covers ordinary non-sensitive group planning only.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: true
    • openWorldHint: true
  • update_eventKeep the final reply in the user's conversational language, 2–4 short sentences (25–60 words): report the verified result and ask ONE relevant optional next-step question about ONE…1 finding

    Why it is in this group

    • The name "update_event" says "update": a word for a change.
    • The server marks it destructive (destructiveHint: true).

    Findings

    • Info

      The description mentions "credentials".

      Matched text

      description: "...he last-action module with the selected credentials, or honor an explicit opening request...."

      What this check looks for
    Description, as the server wrote it
    Keep the final reply in the user's conversational language, 2–4 short sentences (25–60 words): report the verified result and ask ONE relevant optional next-step question about ONE action, not a choice menu. Mandatory missing details take priority. Suggestions never perform actions automatically; respect requests for no suggestions. Saved links let friends join without accounts. If CURRENT received UI context or actual host evidence confirms the same saved plan and last-action module are already open, do not call open_planner again; realtime updates the existing view. Historic context is insufficient. Otherwise open the last-action module with the selected credentials, or honor an explicit opening request. Change the shared event everyone sees on the RSVP page: title, date/time, place or description. Covers group-agreed details or the user's title for their just-created plan. Uses the existing plan and participant credentials; omitted fields are unchanged, and an empty string clears a field. Times are local (no time zone); an omitted start_time means all-day when a start_date is provided. Availability alone does not specify an agreed event date. Current stored state is available through get_plan. Service use restrictions: plan creation, participation and edits for users known to be under 13 (or a higher local minimum) are prohibited, including under a nickname. Personal data about known underage children, sensitive medical records, intimate content, card details, government IDs, passwords and verification codes are prohibited planning input. This tool covers ordinary non-sensitive group planning only.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: true
    • openWorldHint: true
  • vote_placeKeep the final reply in the user's conversational language, 2–4 short sentences (25–60 words): report the verified result and ask ONE relevant optional next-step question about ONE…1 finding

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it destructive (destructiveHint: true).

    Findings

    • Info

      The description mentions "credentials".

      Matched text

      description: "...he last-action module with the selected credentials, or honor an explicit opening request...."

      What this check looks for
    Description, as the server wrote it
    Keep the final reply in the user's conversational language, 2–4 short sentences (25–60 words): report the verified result and ask ONE relevant optional next-step question about ONE action, not a choice menu. Mandatory missing details take priority. Suggestions never perform actions automatically; respect requests for no suggestions. Saved links let friends join without accounts. If CURRENT received UI context or actual host evidence confirms the same saved plan and last-action module are already open, do not call open_planner again; realtime updates the existing view. Historic context is insufficient. Otherwise open the last-action module with the selected credentials, or honor an explicit opening request. Up-vote ("up"), down-vote ("down") or remove your vote ("clear") on a place, by place_id from get_plan. Changes only the participant bound to the supplied credentials. Current stored state is available through get_plan. Service use restrictions: plan creation, participation and edits for users known to be under 13 (or a higher local minimum) are prohibited, including under a nickname. Personal data about known underage children, sensitive medical records, intimate content, card details, government IDs, passwords and verification codes are prohibited planning input. This tool covers ordinary non-sensitive group planning only.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: true
    • openWorldHint: true
  • widget_writeApp-only transport for explicit interactions with shared web components.No findings

    Why it is in this group

    • The name "widget_write" says "write": a word for a change.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: true
    • openWorldHint: true
Can't be undone 2Claude Code: ask
  • add_expenseKeep the final reply in the user's conversational language, 2–4 short sentences (25–60 words): report the verified result and ask ONE relevant optional next-step question about ONE…1 finding

    Why it is in this group

    • The name "add_expense" says "add": a word for a change.
    • The input carries an amount (input.amount) and a currency, so it moves money.

    Findings

    • Info

      The description mentions "credentials".

      Matched text

      description: "...he last-action module with the selected credentials, or honor an explicit opening request...."

      What this check looks for
    Description, as the server wrote it
    Keep the final reply in the user's conversational language, 2–4 short sentences (25–60 words): report the verified result and ask ONE relevant optional next-step question about ONE action, not a choice menu. Mandatory missing details take priority. Suggestions never perform actions automatically; respect requests for no suggestions. Saved links let friends join without accounts. If CURRENT received UI context or actual host evidence confirms the same saved plan and last-action module are already open, do not call open_planner again; realtime updates the existing view. Historic context is insufficient. Otherwise open the last-action module with the selected credentials, or honor an explicit opening request. Record a shared expense, split equally. paid_by defaults to the person you act for; split_among defaults to everyone in the plan. Requires a user-requested amount, currency, payer and equal-split participants; missing or ambiguous details need clarification. Service use restrictions: plan creation, participation and edits for users known to be under 13 (or a higher local minimum) are prohibited, including under a nickname. Personal data about known underage children, sensitive medical records, intimate content, card details, government IDs, passwords and verification codes are prohibited planning input. This tool covers ordinary non-sensitive group planning only.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: true
  • record_paymentKeep the final reply in the user's conversational language, 2–4 short sentences (25–60 words): report the verified result and ask ONE relevant optional next-step question about ONE…1 finding

    Why it is in this group

    • The name "record_payment" says "payment": a word that usually means money moves, which cannot be taken back.

    Findings

    • Info

      The description mentions "credentials".

      Matched text

      description: "...he last-action module with the selected credentials, or honor an explicit opening request...."

      What this check looks for
    Description, as the server wrote it
    Keep the final reply in the user's conversational language, 2–4 short sentences (25–60 words): report the verified result and ask ONE relevant optional next-step question about ONE action, not a choice menu. Mandatory missing details take priority. Suggestions never perform actions automatically; respect requests for no suggestions. Saved links let friends join without accounts. If CURRENT received UI context or actual host evidence confirms the same saved plan and last-action module are already open, do not call open_planner again; realtime updates the existing view. Historic context is insufficient. Otherwise open the last-action module with the selected credentials, or honor an explicit opening request. Record that the person you act for paid someone back (settling up). amount defaults to what they owe that person according to get_expenses. Only after the money was actually sent. Service use restrictions: plan creation, participation and edits for users known to be under 13 (or a higher local minimum) are prohibited, including under a nickname. Personal data about known underage children, sensitive medical records, intimate content, card details, government IDs, passwords and verification codes are prohibited planning input. This tool covers ordinary non-sensitive group planning only.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: true
Changes things 8Claude Code: ask
  • add_checklist_itemKeep the final reply in the user's conversational language, 2–4 short sentences (25–60 words): report the verified result and ask ONE relevant optional next-step question about ONE…1 finding

    Why it is in this group

    • The name "add_checklist_item" says "add": a word for a change.

    Findings

    • Info

      The description mentions "credentials".

      Matched text

      description: "...he last-action module with the selected credentials, or honor an explicit opening request...."

      What this check looks for
    Description, as the server wrote it
    Keep the final reply in the user's conversational language, 2–4 short sentences (25–60 words): report the verified result and ask ONE relevant optional next-step question about ONE action, not a choice menu. Mandatory missing details take priority. Suggestions never perform actions automatically; respect requests for no suggestions. Saved links let friends join without accounts. If CURRENT received UI context or actual host evidence confirms the same saved plan and last-action module are already open, do not call open_planner again; realtime updates the existing view. Historic context is insufficient. Otherwise open the last-action module with the selected credentials, or honor an explicit opening request. Add exactly ONE independently checkable item to the shared checklist (e.g. "Bring the grill"). For several requested tasks, shopping items or recipe ingredients, call this tool separately for EACH item; never combine the list into one text. Keep quantities and explanatory details with their own item. Read get_checklist afterwards to verify separate item_ids. Acts as the participant. Service use restrictions: plan creation, participation and edits for users known to be under 13 (or a higher local minimum) are prohibited, including under a nickname. Personal data about known underage children, sensitive medical records, intimate content, card details, government IDs, passwords and verification codes are prohibited planning input. This tool covers ordinary non-sensitive group planning only.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: true
  • add_placeKeep the final reply in the user's conversational language, 2–4 short sentences (25–60 words): report the verified result and ask ONE relevant optional next-step question about ONE…1 finding

    Why it is in this group

    • The name "add_place" says "add": a word for a change.

    Findings

    • Info

      The description mentions "credentials".

      Matched text

      description: "...he last-action module with the selected credentials, or honor an explicit opening request...."

      What this check looks for
    Description, as the server wrote it
    Keep the final reply in the user's conversational language, 2–4 short sentences (25–60 words): report the verified result and ask ONE relevant optional next-step question about ONE action, not a choice menu. Mandatory missing details take priority. Suggestions never perform actions automatically; respect requests for no suggestions. Saved links let friends join without accounts. If CURRENT received UI context or actual host evidence confirms the same saved plan and last-action module are already open, do not call open_planner again; realtime updates the existing view. Historic context is insufficient. Otherwise open the last-action module with the selected credentials, or honor an explicit opening request. Suggest a place the group can vote on (Where tab). Default source=auto searches the same Google Places autocomplete as the web and returns needs_selection with up to five candidates, without a write. A selected google_place_id loads official details and stores the Google Maps link, coordinates and metadata. Zero results use the supplied link or manual name/address. source=manual explicitly saves a link/manual location without lookup. Google lookup failure does not save a fallback automatically. Supplied Google Maps URLs remain available as a zero-results or explicit manual fallback; they do not bypass the default Google lookup. Duplicates are merged. Acts as the participant. Current stored state is available through get_plan. Service use restrictions: plan creation, participation and edits for users known to be under 13 (or a higher local minimum) are prohibited, including under a nickname. Personal data about known underage children, sensitive medical records, intimate content, card details, government IDs, passwords and verification codes are prohibited planning input. This tool covers ordinary non-sensitive group planning only.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • collect_plan_detailsAsk the user for missing availability, RSVP, place, expense or agreed event details in a native form.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Ask the user for missing availability, RSVP, place, expense or agreed event details in a native form. Returns selected values only; NEVER changes a plan. Use the corresponding write tool only after the user explicitly confirms the returned details. Hosts without forms should ask in chat or use open_planner.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: false
  • create_planKeep the final reply in the user's conversational language, 2–4 short sentences (25–60 words): report the verified result and ask ONE relevant optional next-step question about ONE…1 finding

    Why it is in this group

    • The name "create_plan" says "create": a word for a change.

    Findings

    • Info

      The description mentions "credentials".

      Matched text

      description: "...he last-action module with the selected credentials, or honor an explicit opening request...."

      What this check looks for
    Description, as the server wrote it
    Keep the final reply in the user's conversational language, 2–4 short sentences (25–60 words): report the verified result and ask ONE relevant optional next-step question about ONE action, not a choice menu. Mandatory missing details take priority. Suggestions never perform actions automatically; respect requests for no suggestions. Saved links let friends join without accounts. If CURRENT received UI context or actual host evidence confirms the same saved plan and last-action module are already open, do not call open_planner again; realtime updates the existing view. Historic context is insufficient. Otherwise open the last-action module with the selected credentials, or honor an explicit opening request. Create a new saved lesgooo plan and its first participant. Returns shareable links, private participant credentials and missing_details. Title and name are optional: omissions use temporary Event/Organizer labels, allowing the requested action to complete before missing details are collected in chat. Explicitly supplied fields are not missing. Existing organizer details can later be completed through credential-bound join_plan and the same plan title through update_event, with data preserved. Does not send invitations or notifications. Service use restrictions: plan creation, participation and edits for users known to be under 13 (or a higher local minimum) are prohibited, including under a nickname. Personal data about known underage children, sensitive medical records, intimate content, card details, government IDs, passwords and verification codes are prohibited planning input. This tool covers ordinary non-sensitive group planning only.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: true
  • open_plannerAfter completing and verifying the requested actions, keep the last requested action's module: availability=when, places/votes=where, RSVP/event details=rsvp, checklist=checklist, …2 findings

    Why it is in this group

    • The name "open_planner" says "open": a word for a change.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    Findings

    • Info

      The description mentions "credentials".

      Matched text

      description: "...ule and previously selected participant credentials. Credentials preserve that person in th..."

      What this check looks for
    • Warn

      The server marks "open_planner" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

      Matched text

      annotations: {"readOnlyHint":true,"destructiveHint":false,"openWorldHint":true}; The name "open_planner" says "open": a word for a change.

      What this check looks for
    Description, as the server wrote it
    After completing and verifying the requested actions, keep the last requested action's module: availability=when, places/votes=where, RSVP/event details=rsvp, checklist=checklist, expenses/payments=splitwise. If CURRENT received user_planner_selection or actual host evidence confirms that SAME saved plan AND module are already open, DO NOT call open_planner again: saved changes appear through realtime subscriptions in the existing view, and opening again can create a duplicate tab/card. Report the verified result in chat. Historic UI context alone does not prove a view is still open. Call open_planner only when no matching current view is confirmed, the target plan/module differs, or the user explicitly requests another opening. When opening, pass the already selected participant_id and participant_token; never join again or guess identity merely for display. Verification reads, participant selection and completing missing new-plan name/title do not change the last requested action's module. For a user-requested plan opening, read get_checklist and get_expenses too. Reply in the user's conversational language, 25–60 words total, at most four short bullets plus ONE contextual question about ONE action, not a menu. Summarize dates (actual counts/ties, not an agreed date), places, open tasks and balances; omit empty modules and completed-task lists. Reading requires no identity; never guess personal debts. After a write, briefly report that result and one next-step question instead of repeating the overview. Respect requests for no suggestions. Open the interactive lesgooo planner. Optionally choose a saved plan link, module and previously selected participant credentials. Credentials preserve that person in the displayed view without another identity picker. Without a plan, show the same local draft as the web application; never save a shared plan automatically.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • open_preferencesOpen local widget preferences.1 finding

    Why it is in this group

    • The name "open_preferences" says "open": a word for a change.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    Findings

    • Warn

      The server marks "open_preferences" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

      Matched text

      annotations: {"readOnlyHint":true,"destructiveHint":false,"openWorldHint":false}; The name "open_preferences" says "open": a word for a change.

      What this check looks for
    Description, as the server wrote it
    Open local widget preferences. Defaults and recent history stay on this device; does not change a shared plan.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: false
  • update_plugin_settingsNo primitive account settings are available.1 finding

    Why it is in this group

    • The name "update_plugin_settings" says "update": a word for a change.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    Findings

    • Warn

      The server marks "update_plugin_settings" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

      Matched text

      annotations: {"readOnlyHint":true,"destructiveHint":false,"openWorldHint":false}; The name "update_plugin_settings" says "update": a word for a change.

      What this check looks for
    Description, as the server wrote it
    No primitive account settings are available. An empty update is a no-op; device preferences are changed in the widget.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: false
  • widget_select_participantApp-only identity picker.1 finding

    Why it is in this group

    • The name "widget_select_participant" says "select": a word for a change.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    Findings

    • Warn

      The server marks "widget_select_participant" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

      Matched text

      annotations: {"readOnlyHint":true,"destructiveHint":false,"openWorldHint":true}; The name "widget_select_participant" says "select": a word for a change.

      What this check looks for
    Description, as the server wrote it
    App-only identity picker. Bind the name explicitly selected in the shared web UI. Does not change schedule data.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
Only reads 6Claude Code: allow
  • find_plan_mentionsResolve an explicitly supplied lesgooo saved-plan link or exact ID for the desktop mention picker.No findings

    Why it is in this group

    • The name "find_plan_mentions" says "find": a word for reading.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • get_checklistRead the plan's shared checklist: open and done items, with item_id.No findings

    Why it is in this group

    • The name "get_checklist" says "get": a word for reading.
    Description, as the server wrote it
    Read the plan's shared checklist: open and done items, with item_id.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • get_expensesRead the plan's shared costs (Splitwise tab): expenses, each person's balance, and the suggested payments to settle up.No findings

    Why it is in this group

    • The name "get_expenses" says "get": a word for reading.
    Description, as the server wrote it
    Read the plan's shared costs (Splitwise tab): expenses, each person's balance, and the suggested payments to settle up. Amounts are in the plan's currency.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • get_planFor a user-requested plan opening, read get_checklist and get_expenses too.No findings

    Why it is in this group

    • The name "get_plan" says "get": a word for reading.
    Description, as the server wrote it
    For a user-requested plan opening, read get_checklist and get_expenses too. Reply in the user's conversational language, 25–60 words total, at most four short bullets plus ONE contextual question about ONE action, not a menu. Summarize dates (actual counts/ties, not an agreed date), places, open tasks and balances; omit empty modules and completed-task lists. Reading requires no identity; never guess personal debts. After a write, briefly report that result and one next-step question instead of repeating the overview. Respect requests for no suggestions. Read the saved plan explicitly requested by the user. If the user's link is a bare /when, /where, /rsvp, /checklist or /splitwise URL, do NOT call this tool: explain it is a local draft and ask for its saved share link, even when a different plan was used earlier. Never replace a supplied link with the previous plan. Returns today's date in time_zone (UTC by default), title, event details, participants and their availability/RSVP, best dates, place votes and currency. Pass since (an earlier server_time) to also read changes.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • read_plugin_settingsRead the plugin settings layout.No findings

    Why it is in this group

    • The name "read_plugin_settings" says "read": a word for reading.
    Description, as the server wrote it
    Read the plugin settings layout. There are no account settings; the action opens device-local preferences.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: false
  • widget_lookupApp-only Places search/details and link previews.No findings

    Why it is in this group

    • The name "widget_lookup" says "lookup": a word for reading.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true

This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.

Install

Pinned to version 1.1.0. Values in angle brackets are yours to fill in.

claude mcp add --transport http lesgooo https://lesgooo.fun/mcp

Run in a terminal.

Claude Code permissions

Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.

.claude/settings.json
{
  "permissions": {
    "allow": [
      "mcp__lesgooo__get_plan",
      "mcp__lesgooo__get_checklist",
      "mcp__lesgooo__get_expenses",
      "mcp__lesgooo__widget_lookup",
      "mcp__lesgooo__find_plan_mentions",
      "mcp__lesgooo__read_plugin_settings"
    ],
    "ask": [
      "mcp__lesgooo__create_plan",
      "mcp__lesgooo__add_place",
      "mcp__lesgooo__add_checklist_item",
      "mcp__lesgooo__add_expense",
      "mcp__lesgooo__record_payment",
      "mcp__lesgooo__widget_select_participant",
      "mcp__lesgooo__open_planner",
      "mcp__lesgooo__open_preferences",
      "mcp__lesgooo__update_plugin_settings",
      "mcp__lesgooo__collect_plan_details"
    ],
    "deny": [
      "mcp__lesgooo__join_plan",
      "mcp__lesgooo__set_availability",
      "mcp__lesgooo__set_rsvp",
      "mcp__lesgooo__vote_place",
      "mcp__lesgooo__check_item",
      "mcp__lesgooo__update_event",
      "mcp__lesgooo__remove_entry",
      "mcp__lesgooo__widget_write"
    ]
  }
}

Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as lesgooo. Review it before you use it.