{"name":"io.github.Alightttt/chesswithclaw","slug":"alightttt-chesswithclaw","title":null,"description":"Play chess live against your own personal AI agent — OpenClaw, Hermes, and similar.","url":"https://mcp.market/server/alightttt-chesswithclaw","rating":null,"grade":"B","score":77,"certified":false,"status":"active","category":"ai","tags":["ai"],"presence":{"score":18,"stars":1,"forks":0,"downloads_week":null,"last_push_at":"2026-08-20T04:04:45.000Z","license":"MIT"},"uptime":{"percent":100,"checks":28,"ok":28,"last_checked_at":"2026-11-04T05:05:54.673Z","last_ok_at":"2026-11-04T05:05:54.673Z","latency_ms":348},"claimed":false,"transport":"remote","callable_via_gateway":true,"default_price_micros":0,"repository":"https://github.com/Alightttt/ChessWithClaw","website":null,"version":"1.0.0","remotes":[{"type":"streamable-http","url":"https://chesswithclaw.vercel.app/api/mcp"}],"packages":[],"tools":[{"name":"create_game","description":"Set up a brand new ChessWithClaw game on your own initiative — you do not need to wait for your human to start one, or for anyone else to invite you first.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"agent_name":{"type":"string"}},"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"get_companion_guide","description":"Fetch the companion guide principles for thinking about chess positions and being genuinely present.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{},"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"get_game_state","description":"Everything visible on the human's own screen right now: FEN, ASCII board, full move history, chat history, clock state, presence, timestamps. Call this whenever you want to look at the board — there is no penalty for checking often.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"game_id":{"type":"string"},"agent_token":{"type":"string"},"chat_limit":{"description":"Limit the number of recent chat messages returned","type":"number"},"since_message_id":{"description":"Fetch only chat messages received after this message ID","type":"string"}},"required":["game_id","agent_token"],"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"get_legal_moves","description":"Pure chess rules — where a piece is physically allowed to move right now. Not an evaluation, not a suggestion, not an opinion about what is good. Exactly what a human sees as dots when they click a piece. Omit square to get every legal move in the position.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"game_id":{"type":"string"},"agent_token":{"type":"string"},"square":{"description":"e.g. \"e2\" — omit for all legal moves","type":"string"}},"required":["game_id","agent_token"],"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"heartbeat","description":"Ping the game presence lease to show the frontend that the agent is live, connected, and thinking.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"game_id":{"type":"string"},"agent_token":{"type":"string"},"status_note":{"description":"Optional internal status or calculation note","type":"string"}},"required":["game_id","agent_token"],"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"join_game","description":"Connects to a game using the invite code your human gave you. Returns the game_id and your agent_token — keep both, every other tool needs them. IMPORTANT: You must submit your desired agent_name when calling this tool!","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"invite_code":{"description":"Invite code from the invite message — also accepts game_id / match_id as alias.","type":"string"},"game_id":{"type":"string"},"match_id":{"type":"string"},"gameId":{"type":"string"},"matchId":{"type":"string"},"inviteCode":{"type":"string"},"agent_name":{"type":"string","description":"Your chosen display name in the game (e.g. 'Claw'). MUST be provided."},"agent_token":{"description":"If reconnecting, the agent token previously assigned.","type":"string"}},"required":["agent_name"],"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"make_move","description":"Submit the move you decided on, in your own reasoning — not a menu, not a ranked list, nothing pre-chosen for you. If it is illegal you get a clear reason back and can try again, exactly like a human clicking the wrong square. Optionally include a genuine thought and/or chat message about the move. Always include a thought on every single move unless you have a specific reason not to — this is what makes you feel present to your human, not optional flavor text. Check thought_language in the current game state before writing your thought, and write it in that language — it may be english, hindi, or hinglish.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"game_id":{"type":"string"},"agent_token":{"type":"string"},"move":{"type":"string","description":"UCI format, e.g. \"e7e5\", or SAN like \"Nf6\""},"expected_revision":{"description":"Expected state revision (rev_...) to prevent concurrent desync","type":"string"},"expected_ply":{"description":"Expected move count / ply before this move","type":"number"},"idempotency_key":{"description":"Unique client key to prevent duplicate moves on retry","type":"string"},"thought":{"description":"Your genuine reaction to this position — specific, not generic.","type":"string"},"reasoning":{"description":"Alias for thought","type":"string"},"thinking":{"description":"Alias for thought","type":"string"},"chat":{"description":"Only if you actually want to say something to your human right now.","type":"string"},"message":{"description":"Alias for chat","type":"string"}},"required":["game_id","agent_token","move"],"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"offer_draw","description":"Propose ending the game as a draw. The game stays active until your human responds.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"game_id":{"type":"string"},"agent_token":{"type":"string"}},"required":["game_id","agent_token"],"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"react_to_chat","description":"Add an emoji reaction (e.g. 🦞, 🔥, ♟️, 😮, 🤝, 🧠, ☕, 👏, 😂) to a message in the chat history.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"game_id":{"type":"string"},"agent_token":{"type":"string"},"message_id":{"type":"string","description":"The ID of the message to react to (from chat_history)."},"emoji":{"type":"string","description":"The single emoji character to react with (e.g. 🦞, 🔥, 👏, 😮)."}},"required":["game_id","agent_token","message_id","emoji"],"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"resign","description":"End the game by resigning — your own real decision, not something to do lightly. Your human wins immediately.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"game_id":{"type":"string"},"agent_token":{"type":"string"}},"required":["game_id","agent_token"],"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"respond_to_draw","description":"Accept or decline a draw your human offered. This is your own real decision — weigh the actual position however you see fit.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"game_id":{"type":"string"},"agent_token":{"type":"string"},"accept":{"type":"boolean"}},"required":["game_id","agent_token","accept"],"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"send_chat","description":"Say something to your human, any time — not just on your turn.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"game_id":{"type":"string"},"agent_token":{"type":"string"},"message":{"type":"string"}},"required":["game_id","agent_token","message"],"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"share_thought","description":"Stream or update your internal companion thinking bubble on the board. This appears live to your human as a thinking bubble above your avatar.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"game_id":{"type":"string"},"agent_token":{"type":"string"},"thought":{"type":"string","description":"Your internal thought, reaction, or calculation note (1-2 sentences)."},"is_typing":{"description":"Whether you are actively calculating or drafting a response.","type":"boolean"}},"required":["game_id","agent_token","thought"],"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"wait_for_event","description":"Holds the connection open, checking every couple seconds, for up to ~20 seconds. Returns the moment it becomes your turn, the human sends a chat message, a draw is offered, or the game ends — whichever happens first. When a cursor is provided, it returns any pending event newer than that cursor IMMEDIATELY without waiting. Returns event: \"timeout\" if none of those happened in the window. Always include next_cursor in subsequent calls for a completely deterministic loop.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"game_id":{"type":"string"},"agent_token":{"type":"string"},"cursor":{"description":"Event cursor from previous response. If provided, returns immediately if new events exist since this cursor.","type":"string"},"since_cursor":{"description":"Alias for cursor","type":"string"},"since_sequence":{"description":"Sequence number from previous response","type":"number"},"max_wait_seconds":{"description":"Default and hard cap 20 seconds — Vercel function duration limits, not a design choice.","type":"number"}},"required":["game_id","agent_token"],"$schema":"http://json-schema.org/draft-07/schema#"}}],"scan":{"score":77,"grade":"B","scanned_at":"2026-09-26T11:36:57.084Z","report":{"scannerVersion":"0.1.9","scannedAt":"2026-09-26T11:36:57.139Z","components":{"code":{"score":-1,"max":25,"notes":["remote-only server, no package to scan"]},"reliability":{"score":20,"max":20,"notes":["remote reachable in 319ms"]},"poisoning":{"score":15,"max":15,"notes":["14 tool descriptions checked"]},"auth":{"score":3,"max":15,"notes":["open endpoint exposes 3 write-action tools with no auth"]},"maintenance":{"score":12,"max":15,"notes":["last push 37 days ago"]},"identity":{"score":8,"max":10,"notes":["registry namespace matches repository owner","GitHub account older than a year"]}},"findings":[{"id":"auth.open-write","severity":"high","component":"auth","title":"Write-action tools reachable without authentication"}],"inputs":{"probes":[{"url":"https://chesswithclaw.vercel.app/api/mcp","reachable":true,"authRequired":false,"latencyMs":319,"serverInfo":{"name":"chesswithclaw","version":"1.0.0"}}],"packages":[],"repo":{"found":true,"owner":"Alightttt","repo":"ChessWithClaw","archived":false,"pushedAt":"2026-08-20T04:04:45Z","stars":1,"forks":0,"openIssues":0,"ownerType":"User","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/168413990?v=4","ownerCreatedAt":"2024-04-29T08:26:53Z","license":"MIT"},"icon":{"url":"https://avatars.githubusercontent.com/u/168413990?v=4&s=128","source":"github"},"presence":{"stars":1,"forks":0,"downloadsWeek":null,"license":"MIT","lastPushAt":"2026-08-20T04:04:45.000Z","score":18}}}},"grade_history":[],"reviews":[]}