MCPサーバー

lesgooo.fun

fun.lesgooo/lesgooo
生産性 旅行・ホスピタリティ 公開・接続可能 MCP 2025-11-25

このMCPでできること

Coordinates group plans with shared dates, RSVPs, place voting, checklists, event details, expenses, and payment settlement.

add_checklist_item
Add a checklist item
Add an item to the plan's shared checklist (e.g. "Bring the grill"). Acts as the participant.
入力スキーマ
{'type': 'object', 'required': ['plan', 'participant_id', 'participant_token', 'text'], 'properties': {'plan': {'type': 'string', 'description': 'Plan link (e.g. https://lesgooo.fun/ab12/when) or its 4-character id.'}, 'text': {'type': 'string', 'description': 'Item text (max 500 chars).'}, 'participant_id': {'type': 'string', 'description': 'From create_plan or join_plan.'}, 'participant_token': {'type': 'string', 'description': 'From create_plan or join_plan.'}}, 'additionalProperties': False}
add_expense
Add an expense
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', 'required': ['plan', 'participant_id', 'participant_token', 'description', 'amount'], 'properties': {'plan': {'type': 'string', 'description': 'Plan link (e.g. https://lesgooo.fun/ab12/when) or its 4-character id.'}, '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)."}, 'description': {'type': 'string', 'description': 'What it was for, e.g. "Groceries" (max 120 chars).'}, 'split_among': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Who shares the cost (participant_id values or exact names). Defaults to everyone.'}, 'participant_id': {'type': 'string', 'description': 'From create_plan or join_plan.'}, 'allow_duplicate': {'type': 'boolean', 'description': 'Only if the user confirms a second, identical expense within 10 minutes (otherwise it is treated as a retry).'}, 'participant_token': {'type': 'string', 'description': 'From create_plan or join_plan.'}, 'paid_by_participant_id': {'type': 'string', 'description': 'Who paid (participant_id from get_plan, or their exact name). Defaults to you.'}}, 'additionalProperties': False}
add_place
Suggest a place
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', 'required': ['plan', 'participant_id', 'participant_token', 'name'], 'properties': {'link': {'type': 'string', 'description': 'Optional link to any other page about the place (http/https), instead of google_maps_url.'}, 'name': {'type': 'string', 'description': 'Place name (max 300 chars).'}, 'plan': {'type': 'string', 'description': 'Plan link (e.g. https://lesgooo.fun/ab12/when) or its 4-character id.'}, 'address': {'type': 'string', 'description': 'Optional address (max 500 chars).'}, 'participant_id': {'type': 'string', 'description': 'From create_plan or join_plan.'}, '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.'}, 'participant_token': {'type': 'string', 'description': 'From create_plan or join_plan.'}}, 'additionalProperties': False}
check_item
Tick off a checklist item
Mark a checklist item done (done: true) or open again (done: false), by item_id from get_checklist.
破壊的操作あり 冪等
入力スキーマ
{'type': 'object', 'required': ['plan', 'participant_id', 'participant_token', 'item_id', 'done'], 'properties': {'done': {'type': 'boolean'}, 'plan': {'type': 'string', 'description': 'Plan link (e.g. https://lesgooo.fun/ab12/when) or its 4-character id.'}, 'item_id': {'type': 'string', 'description': 'From get_checklist or add_checklist_item (the exact item text also works).'}, 'participant_id': {'type': 'string', 'description': 'From create_plan or join_plan.'}, 'participant_token': {'type': 'string', 'description': 'From create_plan or join_plan.'}}, 'additionalProperties': False}
collect_plan_details
Choose plan details
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.
読み取り専用
入力スキーマ
{'type': 'object', 'required': ['plan', 'action'], 'properties': {'plan': {'type': 'string'}, 'action': {'enum': ['availability', 'rsvp', 'place', 'expense', 'event'], 'type': 'string'}}, 'additionalProperties': False}
create_plan
Create a plan
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', 'required': ['title'], '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).'}, 'request_id': {'type': 'string', 'description': 'Optional UUID v4 for an atomic create with your_name. Keep the same UUID and fields on retry; never reuse it for a different plan.'}}, 'additionalProperties': False}
find_plan_mentions
Find a plan by link
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.
読み取り専用
入力スキーマ
{'type': 'object', 'required': ['query'], 'properties': {'query': {'type': 'string', 'maxLength': 300}}, 'additionalProperties': False}
get_checklist
Read the checklist
Read the plan's shared checklist: open and done items, with item_id.
読み取り専用
入力スキーマ
{'type': 'object', 'required': ['plan'], 'properties': {'plan': {'type': 'string', 'description': 'Plan link (e.g. https://lesgooo.fun/ab12/when) or its 4-character id.'}}, 'additionalProperties': False}
get_expenses
Read shared costs
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', 'required': ['plan'], 'properties': {'plan': {'type': 'string', 'description': 'Plan link (e.g. https://lesgooo.fun/ab12/when) or its 4-character id.'}}, 'additionalProperties': False}
get_plan
Read a plan
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', 'required': ['plan'], '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).'}, 'include_all_dates': {'type': 'boolean', 'description': 'For calendar UI: return all dates within the existing bounded read budget, instead of the concise first 60 per person.'}}, 'additionalProperties': False}
join_plan
Join a plan
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', 'required': ['plan', 'name'], 'properties': {'name': {'type': 'string', 'description': "The person's name as the group knows them (max 80 chars)."}, 'plan': {'type': 'string', 'description': 'Plan link (e.g. https://lesgooo.fun/ab12/when) or its 4-character id.'}}, 'additionalProperties': False}
open_planner
Group plan
Open the interactive lesgooo planner beside the conversation. Optionally choose a saved plan link and module. Without a plan, show create/open controls; never create a plan automatically.
読み取り専用
入力スキーマ
{'type': 'object', 'properties': {'plan': {'type': 'string'}, 'module': {'enum': ['when', 'where', 'rsvp', 'checklist', 'splitwise'], 'type': 'string'}}, 'additionalProperties': False}
open_preferences
Device preferences
Open local widget preferences. Defaults and recent history stay on this device; does not change a shared plan.
読み取り専用
入力スキーマ
{'type': 'object', 'properties': {}, 'additionalProperties': False}
read_plugin_settings
Read the plugin settings layout. There are no account settings; the action opens device-local preferences.
読み取り専用
入力スキーマ
{'type': 'object', 'properties': {}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', 'required': ['schema', 'values'], 'properties': {'layout': {'type': 'array', 'items': {'type': 'object'}}, 'schema': {'type': 'object'}, 'values': {'type': 'object'}}}
record_payment
Record a payment
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', 'required': ['plan', 'participant_id', 'participant_token', 'to_participant_id'], 'properties': {'plan': {'type': 'string', 'description': 'Plan link (e.g. https://lesgooo.fun/ab12/when) or its 4-character id.'}, 'amount': {'type': 'number', 'description': 'Optional; defaults to the suggested settle-up amount.'}, 'participant_id': {'type': 'string', 'description': 'From create_plan or join_plan.'}, 'allow_duplicate': {'type': 'boolean', 'description': 'Only if the user confirms a second, identical payment within 10 minutes (otherwise it is treated as a retry).'}, '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).'}}, 'additionalProperties': False}
remove_entry
Remove something you added
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', 'required': ['plan', 'participant_id', 'participant_token', 'kind', 'id'], 'properties': {'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.'}, 'kind': {'enum': ['expense', 'payment', 'checklist_item', 'place'], 'type': 'string'}, '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.'}}, 'additionalProperties': False}
set_availability
Set available days
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', 'required': ['plan', 'participant_id', 'participant_token', 'dates'], 'properties': {'mode': {'enum': ['replace', 'add', 'remove'], 'type': 'string'}, 'plan': {'type': 'string', 'description': 'Plan link (e.g. https://lesgooo.fun/ab12/when) or its 4-character id.'}, 'dates': {'type': 'array', 'items': {'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$'}, 'maxItems': 370}, 'participant_id': {'type': 'string', 'description': 'From create_plan or join_plan.'}, 'participant_token': {'type': 'string', 'description': 'From create_plan or join_plan.'}}, 'additionalProperties': False}
set_rsvp
Answer the RSVP
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', 'required': ['plan', 'participant_id', 'participant_token', 'status'], 'properties': {'plan': {'type': 'string', 'description': 'Plan link (e.g. https://lesgooo.fun/ab12/when) or its 4-character id.'}, 'status': {'enum': ['yes', 'no', 'clear'], 'type': 'string'}, 'participant_id': {'type': 'string', 'description': 'From create_plan or join_plan.'}, 'occurrence_date': {'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$', 'description': 'Repeating events only: the date of the occurrence to answer for.'}, 'participant_token': {'type': 'string', 'description': 'From create_plan or join_plan.'}}, 'additionalProperties': False}
update_event
Update the event
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', 'required': ['plan', 'participant_id', 'participant_token'], 'properties': {'plan': {'type': 'string', 'description': 'Plan link (e.g. https://lesgooo.fun/ab12/when) or its 4-character id.'}, 'title': {'type': 'string', 'description': 'Plan / event name (max 120 chars).'}, '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).'}, '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.'}, 'description': {'type': 'string', 'description': 'Details for the group (max 4000 chars).'}, 'participant_id': {'type': 'string', 'description': 'From create_plan or join_plan.'}, 'participant_token': {'type': 'string', 'description': 'From create_plan or join_plan.'}}, 'additionalProperties': False}
update_plugin_settings
No primitive account settings are available. An empty update is a no-op; device preferences are changed in the widget.
読み取り専用
入力スキーマ
{'type': 'object', 'required': ['set'], 'properties': {'set': {'type': 'object', 'properties': {}, 'additionalProperties': False}}, 'additionalProperties': False}
出力スキーマ
{'type': 'object', 'required': ['values'], 'properties': {'values': {'type': 'object'}}}
vote_place
Vote on a place
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', 'required': ['plan', 'participant_id', 'participant_token', 'place_id', 'vote'], 'properties': {'plan': {'type': 'string', 'description': 'Plan link (e.g. https://lesgooo.fun/ab12/when) or its 4-character id.'}, 'vote': {'enum': ['up', 'down', 'clear'], 'type': 'string'}, 'place_id': {'type': 'string', 'description': 'From get_plan places[].place_id or add_place (the exact place name also works).'}, 'participant_id': {'type': 'string', 'description': 'From create_plan or join_plan.'}, 'participant_token': {'type': 'string', 'description': 'From create_plan or join_plan.'}}, 'additionalProperties': False}
追加
collect_plan_details
2026年10月1日2:42
追加
update_plugin_settings
2026年10月1日2:42
追加
read_plugin_settings
2026年10月1日2:42
追加
open_preferences
2026年10月1日2:42
追加
find_plan_mentions
2026年10月1日2:42
追加
open_planner
2026年10月1日2:42
変更
get_plan
2026年10月1日2:42
変更
create_plan
2026年10月1日2:42
変更
get_expenses
2026年9月27日2:40
変更
check_item
2026年9月27日2:40
変更
get_checklist
2026年9月27日2:40
変更
vote_place
2026年9月27日2:40
変更
set_rsvp
2026年9月27日2:40
変更
get_plan
2026年9月27日2:40
追加
remove_entry
2026年9月25日2:40
追加
record_payment
2026年9月25日2:40
追加
add_expense
2026年9月25日2:40
追加
get_expenses
2026年9月25日2:40
追加
update_event
2026年9月25日2:40
追加
check_item
2026年9月25日2:40
追加
add_checklist_item
2026年9月25日2:40
追加
get_checklist
2026年9月25日2:40
追加
vote_place
2026年9月25日2:40
追加
add_place
2026年9月25日2:40
追加
set_rsvp
2026年9月25日2:40
追加
set_availability
2026年9月25日2:40
追加
join_plan
2026年9月25日2:40
追加
get_plan
2026年9月25日2:40
追加
create_plan
2026年9月25日2:40