Tool tree
gradeNot graded
get_positionAnswer
Call this first. Read the xiangqi (Chinese chess) board exactly as the human sees it: pieces, side to move, move list in Chinese notation, game status, the on-screen evaluation, loose pieces, the current tool boundary, and a short agent quick start with the bundled photo sample.
View tool JSON
{
"name": "get_position",
"kind": "answer",
"impl": "imperative",
"description": "Call this first. Read the xiangqi (Chinese chess) board exactly as the human sees it: pieces, side to move, move list in Chinese notation, game status, the on-screen evaluation, loose pieces, the current tool boundary, and a short agent quick start with the bundled photo sample.",
"inputSchema": {
"type": "object",
"properties": {},
"additionalProperties": false
},
"page": "/chinese-chess-webmcp/"
}get_legal_movesAnswer
List every legal move for the side to move, in UCI and Chinese notation, with captures and checks. Rules-only; the engine is not consulted, so this says nothing about which move is good.
View tool JSON
{
"name": "get_legal_moves",
"kind": "answer",
"impl": "imperative",
"description": "List every legal move for the side to move, in UCI and Chinese notation, with captures and checks. Rules-only; the engine is not consulted, so this says nothing about which move is good.",
"inputSchema": {
"type": "object",
"properties": {},
"additionalProperties": false
},
"page": "/chinese-chess-webmcp/"
}show_on_boardAction
Draw one or more arrows on the board so the human can see what you are talking about (a move, a plan, a threat). Arrows are numbered in order and colored by the side of the piece that moves. This only draws; it does not move anything. Call with clear=true to remove your arrows.
View tool JSON
{
"name": "show_on_board",
"kind": "act",
"impl": "imperative",
"description": "Draw one or more arrows on the board so the human can see what you are talking about (a move, a plan, a threat). Arrows are numbered in order and colored by the side of the piece that moves. This only draws; it does not move anything. Call with clear=true to remove your arrows.",
"inputSchema": {
"type": "object",
"additionalProperties": false,
"properties": {
"arrows": {
"type": "array",
"maxItems": 6,
"description": "in order; each is a from-square and a to-square in UCI, e.g. {\"from\":\"h3\",\"to\":\"e3\"}",
"items": {
"type": "object",
"required": [
"from",
"to"
],
"additionalProperties": false,
"properties": {
"from": {
"type": "string"
},
"to": {
"type": "string"
}
}
}
},
"label": {
"type": "string",
"maxLength": 24,
"description": "short caption shown under the board, e.g. \"我的建议\" or \"对方的威胁\""
},
"clear": {
"type": "boolean"
}
}
},
"page": "/chinese-chess-webmcp/"
}set_positionAction
Put a position on the board from a FEN, including a FEN returned by the app's dedicated photo recognizer. The board enters setup mode and runs its rules self-check (piece counts, advisors and elephants on reachable points, pawns not behind their river, kings inside the palace, and kings not facing). Invalid points come back listed so you can fix only those squares with place_pieces. The human must press Confirm to start analysing. Side to move cannot be inferred from a still photo, so ask the human if it is unknown.
View tool JSON
{
"name": "set_position",
"kind": "act",
"impl": "imperative",
"description": "Put a position on the board from a FEN, including a FEN returned by the app's dedicated photo recognizer. The board enters setup mode and runs its rules self-check (piece counts, advisors and elephants on reachable points, pawns not behind their river, kings inside the palace, and kings not facing). Invalid points come back listed so you can fix only those squares with place_pieces. The human must press Confirm to start analysing. Side to move cannot be inferred from a still photo, so ask the human if it is unknown.",
"inputSchema": {
"type": "object",
"required": [
"fen"
],
"additionalProperties": false,
"properties": {
"fen": {
"type": "string",
"description": "xiangqi FEN, rank 10 (black back rank) first, uppercase = red. Example start: rnbakabnr/9/1c5c1/p1p1p1p1p/9/9/P1P1P1P1P/1C5C1/9/RNBAKABNR w"
},
"side_to_move": {
"type": "string",
"enum": [
"red",
"black"
]
}
}
},
"page": "/chinese-chess-webmcp/"
}load_gameAction
Load a whole game (a move list from a book, a website, a video) so it can be stepped through and reviewed. Moves may be UCI or Chinese notation, separated by spaces or commas; they are played from the standard start position and loading stops at the first illegal move, telling you where. If a game is in progress the human is asked to allow the replacement.
View tool JSON
{
"name": "load_game",
"kind": "act",
"impl": "imperative",
"description": "Load a whole game (a move list from a book, a website, a video) so it can be stepped through and reviewed. Moves may be UCI or Chinese notation, separated by spaces or commas; they are played from the standard start position and loading stops at the first illegal move, telling you where. If a game is in progress the human is asked to allow the replacement.",
"inputSchema": {
"type": "object",
"required": [
"moves"
],
"additionalProperties": false,
"properties": {
"moves": {
"type": "string",
"description": "e.g. \"炮二平五 马8进7 马二进三 车9平8\" or \"h3e3 b10c8 h1g3 i10h10\""
}
}
},
"page": "/chinese-chess-webmcp/"
}new_gameAction
Start a new human-vs-engine game, optionally choosing the engine level and which side the human plays. If a game is in progress the human is asked to allow it.
View tool JSON
{
"name": "new_game",
"kind": "act",
"impl": "imperative",
"description": "Start a new human-vs-engine game, optionally choosing the engine level and which side the human plays. If a game is in progress the human is asked to allow it.",
"inputSchema": {
"type": "object",
"additionalProperties": false,
"properties": {
"level": {
"type": "string",
"enum": [
"入门",
"业余",
"较强",
"全力"
],
"description": "engine strength: 入门 beginner, 业余 amateur, 较强 strong, 全力 full strength"
},
"human_plays": {
"type": "string",
"enum": [
"red",
"black"
]
}
}
},
"page": "/chinese-chess-webmcp/"
}make_moveAction
Play a move on the board for the human side (UCI like "h3e3", or Chinese notation like "炮二平五"). In human-vs-engine mode the engine answers immediately and its reply is included. This is the human's game: only move when the human asked you to, and say which move you played.
View tool JSON
{
"name": "make_move",
"kind": "act",
"impl": "imperative",
"description": "Play a move on the board for the human side (UCI like \"h3e3\", or Chinese notation like \"炮二平五\"). In human-vs-engine mode the engine answers immediately and its reply is included. This is the human's game: only move when the human asked you to, and say which move you played.",
"inputSchema": {
"type": "object",
"required": [
"move"
],
"additionalProperties": false,
"properties": {
"move": {
"type": "string",
"description": "UCI (files a-i, ranks 1-10, red at the bottom) or Chinese notation exactly as the move list prints it"
}
}
},
"page": "/chinese-chess-webmcp/"
}