{"ok":true,"site":{"host":"gaffer-psi.vercel.app","url":"https://gaffer-psi.vercel.app/","type":"live","desc":"Gaffer is a Fantasy Premier League planning board where a human and an AI agent build the squad together, over WebMCP. The agent reads the draft squad you made by hand, and the registered tools are…","tools":[{"name":"get_squad_state","kind":"answer","impl":"imperative","description":"Read the user's Fantasy Premier League squad exactly as it stands on screen right now, including unsaved changes they have just made by hand and have not confirmed anywhere. Returns all 15 players with club, position, price in millions, form, availability and their next three fixtures with difficulty; who is in the starting XI versus on the bench; the captain and vice-captain; money left in the bank; free transfers remaining; chips already used and still available; every transfer pending in this session with its points cost; and any rule violations or injury warnings. Call this before proposing anything, and again whenever the user says they have changed something themselves.","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"search_players","kind":"answer","impl":"imperative","description":"Search the Premier League player pool for transfer targets, sorted by recent form. All prices are in millions of pounds. If you omit max_price it defaults to what the user can actually afford for the player they are replacing, so results are always buyable. Unavailable players (injured, suspended, transferred out of the league) are excluded unless you ask for them. Returns name, club, position, price, form, total points, ownership and the next three fixtures with difficulty rated 1 (easiest) to 5 (hardest).","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{"position":{"type":"string","enum":["GK","DEF","MID","FWD"],"description":"Restrict to one position."},"max_price":{"type":"number","description":"Maximum price in millions, e.g. 8.5."},"min_form":{"type":"number","description":"Minimum form rating, e.g. 5."},"team":{"type":"string","description":"Three-letter club code, e.g. ARS, MCI, LIV."},"replacing_player_id":{"type":"number","description":"Id of the squad player being replaced. Sets the budget to that player's price plus the bank, and flags any result that would break the three-per-club limit."},"exclude_unavailable":{"type":"boolean","description":"Defaults to true."},"limit":{"type":"number","description":"Maximum results, default 10."}}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"load_manager_team","kind":"act","impl":"imperative","description":"Load a real Fantasy Premier League squad onto the board from that manager's team id, the number in the URL when they view their team on the FPL site. This fetches the squad they have *saved*: their fifteen players, bank, captain and vice-captain. It replaces whatever is currently on the board, discarding any unsaved planning, so confirm with the user before calling it if they have already made changes. Ask them for their team id rather than guessing one.","inputSchema":{"type":"object","properties":{"entry_id":{"type":"number","description":"The manager's FPL team id, e.g. 6731094."}},"required":["entry_id"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"set_planning_gameweek","kind":"act","impl":"declarative","description":"Change which gameweek the planning board is set to, between 1 and 38. Use this when the user wants to plan for a different week than the one currently shown.","inputSchema":{"type":"object","properties":{"gameweek":{"type":"number"}}},"__source":"spec","__declarative":true}],"category":"Media & Personal","favicon":"/favicons/gaffer-psi.vercel.app.svg","apiSurface":"spec","toolCount":4}}