lesgooo.fun

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

我該用這個嗎

品質與安全性

A
說明品質
99%
結構描述完整度
98%
命名品質
97%
汙染風險
100%
權限相符程度
100%
協定合規性
100%

根據工具定義與協定合規性的自動化分析。

上下文成本

~3,328Token(工具定義)
~1.7 KB典型回應大小
顯著的注意力影響(128k 上下文的 2.60%)

這是每次將伺服器的工具載入模型上下文時所消耗的約略 token 數量。數量越高,可用於其他工作的注意力就越少。

安裝

一鍵安裝

將以下內容加入你的 `claude_desktop_config.json` 檔案:

{
  "mcpServers": {
    "lesgooo": {
      "url": "https://lesgooo.fun/mcp"
    }
  }
}

遠端端點

https://lesgooo.fun/mcpstreamable-http

它能做什麼

工具清單

工具(15)

🟢 唯讀🟡 寫入🔴 刪除⚪ 未知
🟡create_plan(title, your_name)

Create a new lesgooo plan and get its shareable links. Optionally adds the user as the first participant (returns their participant_token). Only call after the user asked for it.

輸入結構描述

{
  "type": "object",
  "properties": {
    "title": {
      "type": "string",
      "description": "Short plan name, e.g. \"Weekend at the cabin\" (max 120 chars)."
    },
    "your_name": {
      "type": "string",
      "description": "Name of the person you act for; adds them as the first participant (max 80 chars)."
    }
  },
  "required": [
    "title"
  ],
  "additionalProperties": false
}
🟢get_plan(plan, since)

Read a plan: today's date, title, event details, participants and their available dates and RSVP, the best dates so far (with weekday), the places being voted on (with place_id) and the currency for shared costs. Pass since (the server_time of an earlier call) to also get a list of what changed: people, days, RSVPs, places, checklist, expenses and payments.

輸入結構描述

{
  "type": "object",
  "properties": {
    "plan": {
      "type": "string",
      "description": "Plan link (e.g. https://lesgooo.fun/ab12/when) or its 4-character id."
    },
    "since": {
      "type": "string",
      "description": "Optional ISO timestamp (server_time from an earlier get_plan)."
    }
  },
  "required": [
    "plan"
  ],
  "additionalProperties": false
}
⚪join_plan(plan, name)

Join a plan as the person you act for. If a participant with the same name already exists, you act as them (like picking your name in the app). Returns participant_id and participant_token. Confirm the name with the user first.

輸入結構描述

{
  "type": "object",
  "properties": {
    "plan": {
      "type": "string",
      "description": "Plan link (e.g. https://lesgooo.fun/ab12/when) or its 4-character id."
    },
    "name": {
      "type": "string",
      "description": "The person's name as the group knows them (max 80 chars)."
    }
  },
  "required": [
    "plan",
    "name"
  ],
  "additionalProperties": false
}
🔴set_availability(plan, participant_id, participant_token, dates, mode)

Set which days the person is free (YYYY-MM-DD, today up to 2 years ahead). mode: "replace" (default) sets exactly these days, "add" / "remove" change them. Only with the user's confirmation.

輸入結構描述

{
  "type": "object",
  "properties": {
    "plan": {
      "type": "string",
      "description": "Plan link (e.g. https://lesgooo.fun/ab12/when) or its 4-character id."
    },
    "participant_id": {
      "type": "string",
      "description": "From create_plan or join_plan."
    },
    "participant_token": {
      "type": "string",
      "description": "From create_plan or join_plan."
    },
    "dates": {
      "type": "array",
      "items": {
        "type": "string",
        "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
      },
      "maxItems": 370
    },
    "mode": {
      "type": "string",
      "enum": [
        "replace",
        "add",
        "remove"
      ]
    }
  },
  "required": [
    "plan",
    "participant_id",
    "participant_token",
    "dates"
  ],
  "additionalProperties": false
}
🔴set_rsvp(plan, participant_id, participant_token, status, occurrence_date)

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). Only with the user's confirmation.

輸入結構描述

{
  "type": "object",
  "properties": {
    "plan": {
      "type": "string",
      "description": "Plan link (e.g. https://lesgooo.fun/ab12/when) or its 4-character id."
    },
    "participant_id": {
      "type": "string",
      "description": "From create_plan or join_plan."
    },
    "participant_token": {
      "type": "string",
      "description": "From create_plan or join_plan."
    },
    "status": {
      "type": "string",
      "enum": [
        "yes",
        "no",
        "clear"
      ]
    },
    "occurrence_date": {
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
      "description": "Repeating events only: the date of the occurrence to answer for."
    }
  },
  "required": [
    "plan",
    "participant_id",
    "participant_token",
    "status"
  ],
  "additionalProperties": false
}
🟡add_place(plan, participant_id, participant_token, name, address, ...)

Suggest a place the group can vote on (Where tab). Give a name and optionally an address plus either a Google Maps link or any other web link (Mapy.cz, Airbnb, Booking, the venue's website). Duplicates are merged. Acts as the participant.

輸入結構描述

{
  "type": "object",
  "properties": {
    "plan": {
      "type": "string",
      "description": "Plan link (e.g. https://lesgooo.fun/ab12/when) or its 4-character id."
    },
    "participant_id": {
      "type": "string",
      "description": "From create_plan or join_plan."
    },
    "participant_token": {
      "type": "string",
      "description": "From create_plan or join_plan."
    },
    "name": {
      "type": "string",
      "description": "Place name (max 300 chars)."
    },
    "address": {
      "type": "string",
      "description": "Optional address (max 500 chars)."
    },
    "google_maps_url": {
      "type": "string",
      "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."
    },
    "link": {
      "type": "string",
      "description": "Optional link to any other page about the place (http/https), instead of google_maps_url."
    }
  },
  "required": [
    "plan",
    "participant_id",
    "participant_token",
    "name"
  ],
  "additionalProperties": false
}
🔴vote_place(plan, participant_id, participant_token, place_id, vote)

Up-vote ("up"), down-vote ("down") or remove your vote ("clear") on a place, by place_id from get_plan. Only with the user's confirmation.

輸入結構描述

{
  "type": "object",
  "properties": {
    "plan": {
      "type": "string",
      "description": "Plan link (e.g. https://lesgooo.fun/ab12/when) or its 4-character id."
    },
    "participant_id": {
      "type": "string",
      "description": "From create_plan or join_plan."
    },
    "participant_token": {
      "type": "string",
      "description": "From create_plan or join_plan."
    },
    "place_id": {
      "type": "string",
      "description": "From get_plan places[].place_id or add_place (the exact place name also works)."
    },
    "vote": {
      "type": "string",
      "enum": [
        "up",
        "down",
        "clear"
      ]
    }
  },
  "required": [
    "plan",
    "participant_id",
    "participant_token",
    "place_id",
    "vote"
  ],
  "additionalProperties": false
}
🟢get_checklist(plan)

Read the plan's shared checklist: open and done items, with item_id.

輸入結構描述

{
  "type": "object",
  "properties": {
    "plan": {
      "type": "string",
      "description": "Plan link (e.g. https://lesgooo.fun/ab12/when) or its 4-character id."
    }
  },
  "required": [
    "plan"
  ],
  "additionalProperties": false
}
🟡add_checklist_item(plan, participant_id, participant_token, text)

Add an item to the plan's shared checklist (e.g. "Bring the grill"). Acts as the participant.

輸入結構描述

{
  "type": "object",
  "properties": {
    "plan": {
      "type": "string",
      "description": "Plan link (e.g. https://lesgooo.fun/ab12/when) or its 4-character id."
    },
    "participant_id": {
      "type": "string",
      "description": "From create_plan or join_plan."
    },
    "participant_token": {
      "type": "string",
      "description": "From create_plan or join_plan."
    },
    "text": {
      "type": "string",
      "description": "Item text (max 500 chars)."
    }
  },
  "required": [
    "plan",
    "participant_id",
    "participant_token",
    "text"
  ],
  "additionalProperties": false
}
🔴check_item(plan, participant_id, participant_token, item_id, done)

Mark a checklist item done (done: true) or open again (done: false), by item_id from get_checklist.

輸入結構描述

{
  "type": "object",
  "properties": {
    "plan": {
      "type": "string",
      "description": "Plan link (e.g. https://lesgooo.fun/ab12/when) or its 4-character id."
    },
    "participant_id": {
      "type": "string",
      "description": "From create_plan or join_plan."
    },
    "participant_token": {
      "type": "string",
      "description": "From create_plan or join_plan."
    },
    "item_id": {
      "type": "string",
      "description": "From get_checklist or add_checklist_item (the exact item text also works)."
    },
    "done": {
      "type": "boolean"
    }
  },
  "required": [
    "plan",
    "participant_id",
    "participant_token",
    "item_id",
    "done"
  ],
  "additionalProperties": false
}
🔴update_event(plan, participant_id, participant_token, title, start_date, ...)

Change the shared event everyone sees on the RSVP page: title, date/time, place or description. Only after the group agreed. Times are local (no time zone); omit start_time for an all-day event. Send only the fields to change; an empty string clears a field.

輸入結構描述

{
  "type": "object",
  "properties": {
    "plan": {
      "type": "string",
      "description": "Plan link (e.g. https://lesgooo.fun/ab12/when) or its 4-character id."
    },
    "participant_id": {
      "type": "string",
      "description": "From create_plan or join_plan."
    },
    "participant_token": {
      "type": "string",
      "description": "From create_plan or join_plan."
    },
    "title": {
      "type": "string",
      "description": "Plan / event name (max 120 chars)."
    },
    "start_date": {
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
    },
    "start_time": {
      "type": "string",
      "pattern": "^\\d{2}:\\d{2}$",
      "description": "HH:MM, local time."
    },
    "end_date": {
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
    },
    "end_time": {
      "type": "string",
      "pattern": "^\\d{2}:\\d{2}$"
    },
    "location": {
      "type": "string",
      "description": "Place as plain text (max 500 chars)."
    },
    "description": {
      "type": "string",
      "description": "Details for the group (max 4000 chars)."
    }
  },
  "required": [
    "plan",
    "participant_id",
    "participant_token"
  ],
  "additionalProperties": false
}
🟢get_expenses(plan)

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.

輸入結構描述

{
  "type": "object",
  "properties": {
    "plan": {
      "type": "string",
      "description": "Plan link (e.g. https://lesgooo.fun/ab12/when) or its 4-character id."
    }
  },
  "required": [
    "plan"
  ],
  "additionalProperties": false
}
🟡add_expense(plan, participant_id, participant_token, description, amount, ...)

Record a shared expense, split equally. paid_by defaults to the person you act for; split_among defaults to everyone in the plan. Always confirm the amount and who shares it with the user first.

輸入結構描述

{
  "type": "object",
  "properties": {
    "plan": {
      "type": "string",
      "description": "Plan link (e.g. https://lesgooo.fun/ab12/when) or its 4-character id."
    },
    "participant_id": {
      "type": "string",
      "description": "From create_plan or join_plan."
    },
    "participant_token": {
      "type": "string",
      "description": "From create_plan or join_plan."
    },
    "description": {
      "type": "string",
      "description": "What it was for, e.g. \"Groceries\" (max 120 chars)."
    },
    "amount": {
      "type": "number",
      "description": "Total, max 2 decimals (e.g. 42.5). Send a plain number."
    },
    "currency": {
      "type": "string",
      "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)."
    },
    "paid_by_participant_id": {
      "type": "string",
      "description": "Who paid (participant_id from get_plan, or their exact name). Defaults to you."
    },
    "split_among": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Who shares the cost (participant_id values or exact names). Defaults to everyone."
    },
    "allow_duplicate": {
      "type": "boolean",
      "description": "Only if the user confirms a second, identical expense within 10 minutes (otherwise it is treated as a retry)."
    }
  },
  "required": [
    "plan",
    "participant_id",
    "participant_token",
    "description",
    "amount"
  ],
  "additionalProperties": false
}
🟢record_payment(plan, participant_id, participant_token, to_participant_id, amount, ...)

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.

輸入結構描述

{
  "type": "object",
  "properties": {
    "plan": {
      "type": "string",
      "description": "Plan link (e.g. https://lesgooo.fun/ab12/when) or its 4-character id."
    },
    "participant_id": {
      "type": "string",
      "description": "From create_plan or join_plan."
    },
    "participant_token": {
      "type": "string",
      "description": "From create_plan or join_plan."
    },
    "to_participant_id": {
      "type": "string",
      "description": "Who received the money (participant_id, or their exact name)."
    },
    "amount": {
      "type": "number",
      "description": "Optional; defaults to the suggested settle-up amount."
    },
    "allow_duplicate": {
      "type": "boolean",
      "description": "Only if the user confirms a second, identical payment within 10 minutes (otherwise it is treated as a retry)."
    }
  },
  "required": [
    "plan",
    "participant_id",
    "participant_token",
    "to_participant_id"
  ],
  "additionalProperties": false
}
🔴remove_entry(plan, participant_id, participant_token, kind, id)

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. Always confirm with the user first.

輸入結構描述

{
  "type": "object",
  "properties": {
    "plan": {
      "type": "string",
      "description": "Plan link (e.g. https://lesgooo.fun/ab12/when) or its 4-character id."
    },
    "participant_id": {
      "type": "string",
      "description": "From create_plan or join_plan."
    },
    "participant_token": {
      "type": "string",
      "description": "From create_plan or join_plan."
    },
    "kind": {
      "type": "string",
      "enum": [
        "expense",
        "payment",
        "checklist_item",
        "place"
      ]
    },
    "id": {
      "type": "string",
      "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."
    }
  },
  "required": [
    "plan",
    "participant_id",
    "participant_token",
    "kind",
    "id"
  ],
  "additionalProperties": false
}

社群

為此伺服器評分

證據

近期觀測

已驗證未記錄版本15 個工具
已驗證未記錄版本15 個工具