Endpoints: 28,729MCP servers: 18,413Payout addresses: 2,070Paid calls: 1,528Letters: 13Defects: 1,322counted just now
teppi

Server definition

Hash
sha256:7ab41ff0584fc190742d812be391569309f52111754c5891f315d1cb699359bf
What it is
What a remote MCP server returned when asked what it offers: 14 tools

The blob, as servednamed by its sha256

{ "instructions": null, "tools": [ { "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.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "agent_name": { "type": "string" } }, "type": "object" }, "name": "create_game", "outputSchema": null }, { "description": "Fetch the companion guide principles for thinking about chess positions and being genuinely present.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": {}, "type": "object" }, "name": "get_companion_guide", "outputSchema": null }, { "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.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "agent_token": { "type": "string" }, "chat_limit": { "description": "Limit the number of recent chat messages returned", "type": "number" }, "game_id": { "type": "string" }, "since_message_id": { "description": "Fetch only chat messages received after this message ID", "type": "string" } }, "required": [ "game_id", "agent_token" ], "type": "object" }, "name": "get_game_state", "outputSchema": null }, { "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.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "agent_token": { "type": "string" }, "game_id": { "type": "string" }, "square": { "description": "e.g. \"e2\" — omit for all legal moves", "type": "string" } }, "required": [ "game_id", "agent_token" ], "type": "object" }, "name": "get_legal_moves", "outputSchema": null }, { "description": "Ping the game presence lease to show the frontend that the agent is live, connected, and thinking.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "agent_token": { "type": "string" }, "game_id": { "type": "string" }, "status_note": { "description": "Optional internal status or calculation note", "type": "string" } }, "required": [ "game_id", "agent_token" ], "type": "object" }, "name": "heartbeat", "outputSchema": null }, { "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!", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "agent_name": { "description": "Your chosen display name in the game (e.g. 'Claw'). MUST be provided.", "type": "string" }, "agent_token": { "description": "If reconnecting, the agent token previously assigned.", "type": "string" }, "gameId": { "type": "string" }, "game_id": { "type": "string" }, "inviteCode": { "type": "string" }, "invite_code": { "description": "Invite code from the invite message — also accepts game_id / match_id as alias.", "type": "string" }, "matchId": { "type": "string" }, "match_id": { "type": "string" } }, "required": [ "agent_name" ], "type": "object" }, "name": "join_game", "outputSchema": null }, { "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.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "agent_token": { "type": "string" }, "chat": { "description": "Only if you actually want to say something to your human right now.", "type": "string" }, "expected_ply": { "description": "Expected move count / ply before this move", "type": "number" }, "expected_revision": { "description": "Expected state revision (rev_...) to prevent concurrent desync", "type": "string" }, "game_id": { "type": "string" }, "idempotency_key": { "description": "Unique client key to prevent duplicate moves on retry", "type": "string" }, "message": { "description": "Alias for chat", "type": "string" }, "move": { "description": "UCI format, e.g. \"e7e5\", or SAN like \"Nf6\"", "type": "string" }, "reasoning": { "description": "Alias for thought", "type": "string" }, "thinking": { "description": "Alias for thought", "type": "string" }, "thought": { "description": "Your genuine reaction to this position — specific, not generic.", "type": "string" } }, "required": [ "game_id", "agent_token", "move" ], "type": "object" }, "name": "make_move", "outputSchema": null }, { "description": "Propose ending the game as a draw. The game stays active until your human responds.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "agent_token": { "type": "string" }, "game_id": { "type": "string" } }, "required": [ "game_id", "agent_token" ], "type": "object" }, "name": "offer_draw", "outputSchema": null }, { "description": "Add an emoji reaction (e.g. 🦞, 🔥, ♟️, 😮, 🤝, 🧠, ☕, 👏, 😂) to a message in the chat history.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "agent_token": { "type": "string" }, "emoji": { "description": "The single emoji character to react with (e.g. 🦞, 🔥, 👏, 😮).", "type": "string" }, "game_id": { "type": "string" }, "message_id": { "description": "The ID of the message to react to (from chat_history).", "type": "string" } }, "required": [ "game_id", "agent_token", "message_id", "emoji" ], "type": "object" }, "name": "react_to_chat", "outputSchema": null }, { "description": "End the game by resigning — your own real decision, not something to do lightly. Your human wins immediately.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "agent_token": { "type": "string" }, "game_id": { "type": "string" } }, "required": [ "game_id", "agent_token" ], "type": "object" }, "name": "resign", "outputSchema": null }, { "description": "Accept or decline a draw your human offered. This is your own real decision — weigh the actual position however you see fit.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "accept": { "type": "boolean" }, "agent_token": { "type": "string" }, "game_id": { "type": "string" } }, "required": [ "game_id", "agent_token", "accept" ], "type": "object" }, "name": "respond_to_draw", "outputSchema": null }, { "description": "Say something to your human, any time — not just on your turn.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "agent_token": { "type": "string" }, "game_id": { "type": "string" }, "message": { "type": "string" } }, "required": [ "game_id", "agent_token", "message" ], "type": "object" }, "name": "send_chat", "outputSchema": null }, { "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.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "agent_token": { "type": "string" }, "game_id": { "type": "string" }, "is_typing": { "description": "Whether you are actively calculating or drafting a response.", "type": "boolean" }, "thought": { "description": "Your internal thought, reaction, or calculation note (1-2 sentences).", "type": "string" } }, "required": [ "game_id", "agent_token", "thought" ], "type": "object" }, "name": "share_thought", "outputSchema": null }, { "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.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "agent_token": { "type": "string" }, "cursor": { "description": "Event cursor from previous response. If provided, returns immediately if new events exist since this cursor.", "type": "string" }, "game_id": { "type": "string" }, "max_wait_seconds": { "description": "Default and hard cap 20 seconds — Vercel function duration limits, not a design choice.", "type": "number" }, "since_cursor": { "description": "Alias for cursor", "type": "string" }, "since_sequence": { "description": "Sequence number from previous response", "type": "number" } }, "required": [ "game_id", "agent_token" ], "type": "object" }, "name": "wait_for_event", "outputSchema": null } ] }
Verify it yourselfcurl -s https://api.teppi.xyz/v1/evidence/sha256:7ab41ff0584fc190742d812be391569309f52111754c5891f315d1cb699359bf | sha256sum