{"ok":true,"site":{"host":"glimpse-webmcp.vercel.app","url":"https://glimpse-webmcp.vercel.app/","type":"live","desc":"A dating app with no profiles. Answer a question, guess how she'd answer it, say how sure you are. Find out where your read on someone is wrong.","tools":[{"name":"get_task_shape","kind":"answer","impl":"imperative","description":"What glimpse is, where this person is in it, and what would help next. Call this first.","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{},"required":[],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"get_onboarding","kind":"answer","impl":"imperative","description":"The onboarding steps, what has been filled in, and what is still missing. The story is typed by the person; preferences and availability can be set by you.","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{},"required":[],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"synthesize_story","kind":"act","impl":"imperative","description":"Loads the three demo photos onto the onboarding tiles and asks Gemini to draft a first-person story from them into the composer. Call this when they want their photos to write a starting story. They (or you, with append_story) can then edit it.","annotations":{"readOnlyHint":false},"inputSchema":{"type":"object","properties":{},"required":[],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"append_story","kind":"act","impl":"imperative","description":"Adds a sentence or two to the onboarding story in the composer. Use this after a draft exists, with what they told you: who they would like to meet, a detail Gemini missed, a correction. Do not invent; only add what they said.","annotations":{"readOnlyHint":false},"inputSchema":{"type":"object","properties":{"addition":{"type":"string","description":"One or two sentences they asked to add, in first person. Example: \"I am hoping to meet someone who likes quiet weekends and long walks.\""}},"required":["addition"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"set_preferences","kind":"act","impl":"imperative","description":"Sets who the person would like to meet: an age range, a maximum distance, and what they are looking for. Structured only; ask them, do not decide for them.","annotations":{"readOnlyHint":false},"inputSchema":{"type":"object","properties":{"ageMin":{"type":"integer","minimum":21,"maximum":60,"description":"Youngest age they would like to meet."},"ageMax":{"type":"integer","minimum":21,"maximum":60,"description":"Oldest age they would like to meet."},"distanceKm":{"type":"integer","minimum":1,"maximum":40,"description":"How far away, in kilometres."},"lookingFor":{"type":"string","enum":["real","see","friends"],"description":"What they are here for."}},"required":[],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"set_availability","kind":"answer","impl":"imperative","description":"Sets when the person is usually free, as a list of slot ids. Nobody else sees this; it is only used to find windows that suit both people.","annotations":{"readOnlyHint":false},"inputSchema":{"type":"object","properties":{"slots":{"type":"array","items":{"type":"string","enum":["weekday-lunch","thu-eve","fri-eve","sat-morn","sat-aft","sat-eve","sun-morn","sun-aft"]},"description":"Slot ids they are usually free for."}},"required":["slots"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"save_sketch","kind":"act","impl":"imperative","description":"Finishes onboarding with what the person has typed and what has been set. If something is missing, this says which. It does not write the story.","annotations":{"readOnlyHint":false},"inputSchema":{"type":"object","properties":{},"required":[],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"open_composer","kind":"act","impl":"imperative","description":"Focuses a field so the person can type: their story during onboarding, or the answer or guess in a round. It does not accept text and nothing submits through it.","annotations":{"readOnlyHint":false},"inputSchema":{"type":"object","properties":{"threadId":{"type":"string","description":"The conversation id, as returned by find_matches or start_conversation. If only one conversation is open it can be omitted."},"field":{"type":"string","enum":["story","answer","guess"],"description":"Which field to focus."}},"required":["field"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"}],"category":"Media & Personal","favicon":"/favicons/glimpse-webmcp.vercel.app.svg","apiSurface":"spec","toolCount":8}}