{"ok":true,"site":{"host":"plymove.com","url":"https://plymove.com/","type":"live","desc":"PlyMove is a pedagogical chess engine. Stockfish finds what is best; PlyMove identifies what is worth teaching to a specific learner.","tools":[{"name":"plymove.get_product_info","kind":"answer","impl":"imperative","description":"Return concise facts about PlyMove (pedagogical chess intelligence): purpose, capabilities, inputs, and high-level access modes.","inputSchema":{"type":"object","properties":{},"additionalProperties":false},"executable":true,"handlerField":"execute"},{"name":"plymove.get_access_info","kind":"answer","impl":"imperative","description":"Return how to access PlyMove: MCP Streamable HTTP (API key or x402), REST endpoints with sync/async + poll contract, and the HTTP agent gateway. Never returns secrets.","inputSchema":{"type":"object","properties":{},"additionalProperties":false},"executable":true,"handlerField":"execute"},{"name":"plymove.get_pricing","kind":"answer","impl":"imperative","description":"Return structured public pricing: prepaid pack ($10 → 1000 units), x402 at 1.5× unit price, per-tool units, and pricing_page URL. Prefer this over navigating for price facts.","inputSchema":{"type":"object","properties":{},"additionalProperties":false},"executable":true,"handlerField":"execute"},{"name":"plymove.contact_sales","kind":"transact","impl":"imperative","description":"Submit a sales/API-access contact request via the same /api/contact backend as the human form.","inputSchema":{"type":"object","properties":{"name":{"type":"string","description":"Contact name","minLength":1,"maxLength":120},"email":{"type":"string","format":"email","pattern":"^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$","description":"Business email","maxLength":200},"company":{"type":"string","description":"Company or project (optional)","maxLength":160},"use_case":{"type":"string","enum":["api","mcp","embedded","batch","volume","partnership","other"],"description":"Topic / use case"},"message":{"type":"string","description":"Message body","minLength":1,"maxLength":4000}},"required":["name","email","use_case","message"],"additionalProperties":false},"executable":true,"handlerField":"execute"},{"name":"page.navigate","kind":"act","impl":"imperative","description":"Navigate within plymove.com to an allowed path. Cross-origin URLs are rejected. Optional hash via path like /docs#mcp is accepted at runtime when path is /docs.","inputSchema":{"type":"object","properties":{"path":{"type":"string","description":"Site-relative path only. Allowed: /, /developers, /docs, /pricing, /contact, /status, /legal/privacy, /legal/terms. Optional hash (e.g. /docs#mcp).","pattern":"^/(|developers|docs|pricing|contact|status|legal/privacy|legal/terms)(#[\\w:-]+)?$"}},"required":["path"],"additionalProperties":false},"executable":true,"handlerField":"execute"},{"name":"page.scroll_to_section","kind":"act","impl":"imperative","description":"Smooth-scroll the current page to a DOM element id (without #).","inputSchema":{"type":"object","properties":{"id":{"type":"string","pattern":"^[a-zA-Z][\\w:-]*$","description":"DOM element id, e.g. mcp, rest-api, buy-credits"}},"required":["id"],"additionalProperties":false},"executable":true,"handlerField":"execute"},{"name":"plymove.open_developer_docs","kind":"act","impl":"imperative","description":"Open PlyMove developer documentation (or pricing/developers/contact). Use get_pricing for price facts; use this to navigate humans/agents to docs sections.","inputSchema":{"type":"object","properties":{"section":{"type":"string","enum":["getting-started","mcp","rest","payments","pricing","developers","contact","api"],"description":"Docs or site section to open"}},"additionalProperties":false},"executable":true,"handlerField":"execute"},{"name":"plymove.explain_position","kind":"answer","impl":"imperative","description":"Sync: explain a chess position for a learner Elo (concepts, candidates, teaching value). Calls mcp.plymove.com. Paid (API key or x402). FEN required.","inputSchema":{"type":"object","properties":{"fen":{"type":"string","minLength":15,"maxLength":100,"pattern":"^([rnbqkpRNBQKP1-8]+\\/){7}[rnbqkpRNBQKP1-8]+ [wb] ([KQkq]+|-) ([a-h][36]|-) \\d+ \\d+$","description":"Chess position in standard FEN (six fields: piece placement, active color, castling, en passant, halfmove, fullmove)."},"target_elo":{"type":"integer","minimum":400,"maximum":3500,"description":"Target learner Elo (400–3500)."}},"required":["fen","target_elo"],"additionalProperties":false},"executable":true,"handlerField":"execute"},{"name":"plymove.compare_moves","kind":"answer","impl":"imperative","description":"Sync: compare candidate SAN moves from a FEN for a learner Elo. Calls mcp.plymove.com. Paid (API key or x402). Distinct from explain_position (multi-move comparison).","inputSchema":{"type":"object","properties":{"fen":{"type":"string","minLength":15,"maxLength":100,"pattern":"^([rnbqkpRNBQKP1-8]+\\/){7}[rnbqkpRNBQKP1-8]+ [wb] ([KQkq]+|-) ([a-h][36]|-) \\d+ \\d+$","description":"Chess position in standard FEN (six fields: piece placement, active color, castling, en passant, halfmove, fullmove)."},"moves":{"type":"array","items":{"type":"string","minLength":2,"maxLength":10,"pattern":"^(O-O(-O)?[+#]?|[NBRQK]?[a-h]?[1-8]?x?[a-h][1-8](=[NBRQ])?[+#]?)$","description":"One move in Standard Algebraic Notation (SAN), e.g. Nf3, exd5, O-O. Not UCI."},"minItems":2,"maxItems":8,"description":"Two or more candidate moves in SAN (not UCI)."},"target_elo":{"type":"integer","minimum":400,"maximum":3500,"description":"Target learner Elo (400–3500)."}},"required":["fen","moves","target_elo"],"additionalProperties":false},"executable":true,"handlerField":"execute"},{"name":"plymove.find_teaching_moments","kind":"answer","impl":"imperative","description":"Return ranked teaching moments for a full PGN (not full annotation). Core job is async; this WebMCP tool blocks until the MCP gateway returns the final moments list (no client-side job polling). Paid. Prefer explain_game for full annotated commentary.","inputSchema":{"type":"object","properties":{"pgn":{"type":"string","minLength":20,"maxLength":200000,"description":"Full game in PGN (headers optional). Must include move text such as 1.e4 e5. Not a single FEN."},"target_elo":{"type":"integer","minimum":400,"maximum":3500,"description":"Target learner Elo (400–3500)."}},"required":["pgn","target_elo"],"additionalProperties":false},"executable":true,"handlerField":"execute"},{"name":"plymove.explain_game","kind":"answer","impl":"imperative","description":"Full-game learner-specific explanations / annotated teaching for a PGN. Core job is async; this WebMCP tool blocks until completion and returns the final analysis (no client-side job polling). Paid. Prefer find_teaching_moments for a short ranked moment list only.","inputSchema":{"type":"object","properties":{"pgn":{"type":"string","minLength":20,"maxLength":200000,"description":"Full game in PGN (headers optional). Must include move text such as 1.e4 e5. Not a single FEN."},"target_elo":{"type":"integer","minimum":400,"maximum":3500,"description":"Target learner Elo (400–3500)."}},"required":["pgn","target_elo"],"additionalProperties":false},"executable":true,"handlerField":"execute"}],"favicon":"/favicons/plymove.com.png","apiSurface":"spec","_scrape":{"etag":null,"lastModified":null,"scrapedAt":"2026-08-27T07:41:02.092Z"},"category":"AI & Agents","toolCount":11}}