Chessigma
Chess opening guides and names, FEN and PGN checks, the daily chess puzzle and Elo estimates.
我该使用它吗
质量与安全性
基于对工具定义和协议合规性的自动分析。
上下文开销
这是每次将服务器的工具加载到模型上下文窗口时所消耗的大致 token 数。数值越高,可用于其他任务的注意力就越少。
安装
一键安装
将以下内容添加到你的 `claude_desktop_config.json` 文件中:
{
"mcpServers": {
"chessigma": {
"url": "https://www.chessigma.com/api/mcp"
}
}
}远程端点
https://www.chessigma.com/api/mcpstreamable-http它能做什么
工具清单
工具(7)
🟢get_opening_guide(opening)
Look up a chess opening by name or slug (for example "London System", "Caro-Kann" or "sicilian-defense") and return Chessigma's guide to it: the main line in SAN, a short summary, up to four key variations with the idea behind each, the strategy for each side, strengths and weaknesses. Full guides exist for 18 popular openings; any of about 3,700 catalogued opening names returns its name, ECO code and moves. When nothing matches, found is false and suggestions lists close names. Links open the opening's trainer and the analysis board on chessigma.com.
输入模式
{
"type": "object",
"properties": {
"opening": {
"type": "string",
"minLength": 2,
"maxLength": 80,
"description": "Opening name or slug, e.g. \"London System\", \"caro-kann\", \"Sicilian Najdorf\"."
}
},
"required": [
"opening"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}输出模式
{
"type": "object",
"properties": {
"found": {
"type": "boolean"
},
"name": {
"type": [
"string",
"null"
]
},
"eco": {
"type": [
"string",
"null"
]
},
"mainLine": {
"type": [
"string",
"null"
]
},
"summary": {
"type": [
"string",
"null"
]
},
"variations": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"moves": {
"type": "string"
},
"idea": {
"type": "string"
}
},
"required": [
"name",
"moves",
"idea"
],
"additionalProperties": false
}
},
"ideas": {
"anyOf": [
{
"type": "object",
"properties": {
"white": {
"type": "string"
},
"black": {
"type": "string"
}
},
"required": [
"white",
"black"
],
"additionalProperties": false
},
{
"type": "null"
}
]
},
"strengths": {
"type": "array",
"items": {
"type": "string"
}
},
"weaknesses": {
"type": "array",
"items": {
"type": "string"
}
},
"trainerUrl": {
"type": [
"string",
"null"
]
},
"analysisUrl": {
"type": [
"string",
"null"
]
},
"suggestions": {
"type": "array",
"items": {
"type": "string"
}
}
},
"required": [
"found",
"name",
"eco",
"mainLine",
"summary",
"variations",
"ideas",
"strengths",
"weaknesses",
"trainerUrl",
"analysisUrl",
"suggestions"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢identify_opening(moves)
Identify the chess opening of a move sequence, given as SAN movetext ("1. e4 c5 2. Nf3 d6") or a full PGN. Returns the ECO code and name from a catalogue of about 3,700 named lines, how many half-moves (plies) followed known theory from move one, the first move that left it, a link to Chessigma's trainer when the opening has one, and a link that opens the moves on the chessigma.com analysis board.
输入模式
{
"type": "object",
"properties": {
"moves": {
"type": "string",
"minLength": 1,
"maxLength": 20000,
"description": "SAN movetext or a PGN; tags are optional."
}
},
"required": [
"moves"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}输出模式
{
"type": "object",
"properties": {
"found": {
"type": "boolean"
},
"eco": {
"type": [
"string",
"null"
]
},
"name": {
"type": [
"string",
"null"
]
},
"bookPlies": {
"type": "integer"
},
"leftBookAt": {
"type": [
"string",
"null"
]
},
"trainerUrl": {
"type": [
"string",
"null"
]
},
"analysisUrl": {
"type": [
"string",
"null"
]
}
},
"required": [
"found",
"eco",
"name",
"bookPlies",
"leftBookAt",
"trainerUrl",
"analysisUrl"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢analyze_position(fen)
Read a chess position from a FEN and return facts computed by the rules alone: side to move, status (normal, check, checkmate, stalemate or insufficient material), every legal move in SAN, the material count (pawn 1, knight 3, bishop 3, rook 5, queen 9) and the opening name when the position is a catalogued opening. This tool does not evaluate the position and does not choose a best move: the Stockfish engine runs in the user's browser at the returned analysisUrl (full analysis board) and bestMoveUrl (best move finder) on chessigma.com.
输入模式
{
"type": "object",
"properties": {
"fen": {
"type": "string",
"minLength": 10,
"maxLength": 100,
"description": "The position in FEN. The two move counters may be omitted."
}
},
"required": [
"fen"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}输出模式
{
"type": "object",
"properties": {
"fen": {
"type": "string"
},
"sideToMove": {
"type": "string",
"enum": [
"white",
"black"
]
},
"status": {
"type": "string",
"enum": [
"normal",
"check",
"checkmate",
"stalemate",
"insufficient_material"
]
},
"legalMoves": {
"type": "array",
"items": {
"type": "string"
}
},
"material": {
"type": "object",
"properties": {
"white": {
"type": "number"
},
"black": {
"type": "number"
},
"balance": {
"type": "number"
}
},
"required": [
"white",
"black",
"balance"
],
"additionalProperties": false
},
"opening": {
"anyOf": [
{
"type": "object",
"properties": {
"eco": {
"type": "string"
},
"name": {
"type": "string"
}
},
"required": [
"eco",
"name"
],
"additionalProperties": false
},
{
"type": "null"
}
]
},
"analysisUrl": {
"type": "string"
},
"bestMoveUrl": {
"type": "string"
}
},
"required": [
"fen",
"sideToMove",
"status",
"legalMoves",
"material",
"opening",
"analysisUrl",
"bestMoveUrl"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢analyze_game(pgn)
Summarize a chess game given as a PGN or as plain SAN movetext: players, result, number of plies, the opening and how long it followed theory, how the game ended (checkmate, stalemate, draw by rule, or unfinished or resigned) and the final position. Returns a link that opens the whole game on the chessigma.com analysis board, where the Stockfish engine runs in the user's browser, and, when the PGN's Link or Site tag is a Chess.com live game or a Lichess game, a link to that game's move-by-move review. It never evaluates moves itself and stores nothing.
输入模式
{
"type": "object",
"properties": {
"pgn": {
"type": "string",
"minLength": 1,
"maxLength": 20000,
"description": "The game as PGN, or SAN movetext such as \"1. e4 e5 2. Nf3\"."
}
},
"required": [
"pgn"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}输出模式
{
"type": "object",
"properties": {
"white": {
"type": [
"string",
"null"
]
},
"black": {
"type": [
"string",
"null"
]
},
"result": {
"type": "string"
},
"plies": {
"type": "integer"
},
"opening": {
"anyOf": [
{
"type": "object",
"properties": {
"eco": {
"type": "string"
},
"name": {
"type": "string"
},
"bookPlies": {
"type": "integer"
}
},
"required": [
"eco",
"name",
"bookPlies"
],
"additionalProperties": false
},
{
"type": "null"
}
]
},
"ending": {
"type": "string",
"enum": [
"checkmate",
"stalemate",
"draw_by_rule",
"unfinished_or_resigned"
]
},
"finalFen": {
"type": "string"
},
"analysisUrl": {
"type": [
"string",
"null"
]
},
"reviewUrl": {
"type": [
"string",
"null"
]
},
"note": {
"type": "string"
}
},
"required": [
"white",
"black",
"result",
"plies",
"opening",
"ending",
"finalFen",
"analysisUrl",
"reviewUrl",
"note"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢review_online_game(url)
Turn the link of a public Chess.com live game or a Lichess game into a chessigma.com link that imports the game and opens a move-by-move review, computed by Stockfish in the user's browser. Nothing is fetched when this tool runs: the game is read from Chess.com or Lichess only when the user opens the link. Chess.com daily (correspondence) games are not supported; ask for the PGN instead.
输入模式
{
"type": "object",
"properties": {
"url": {
"type": "string",
"minLength": 10,
"maxLength": 300,
"description": "A Chess.com live game link or a Lichess game link."
}
},
"required": [
"url"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}输出模式
{
"type": "object",
"properties": {
"platform": {
"type": "string",
"enum": [
"chesscom",
"lichess"
]
},
"reviewUrl": {
"type": "string"
},
"note": {
"type": "string"
}
},
"required": [
"platform",
"reviewUrl",
"note"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢get_daily_puzzle(date)
Get Chessigma's daily chess puzzle: today's by default, or a past day's via date (YYYY-MM-DD, from 2024-01-01 to today in UTC). The position (fen) is given with the solver to move, after the opponent's last move. The solution is in SAN, with the solver's moves at even indexes and the opponent's replies at odd ones. Do not reveal the solution unless the user asks for it. If today's puzzle is not out yet, the latest one is returned: check date. playUrl opens the puzzle on chessigma.com.
输入模式
{
"type": "object",
"properties": {
"date": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "A day from 2024-01-01 to today (UTC). Omit for today."
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}输出模式
{
"type": "object",
"properties": {
"date": {
"type": "string"
},
"puzzleId": {
"type": "string"
},
"fen": {
"type": "string"
},
"sideToMove": {
"type": "string",
"enum": [
"white",
"black"
]
},
"opponentLastMove": {
"type": "string"
},
"rating": {
"type": "number"
},
"themes": {
"type": "array",
"items": {
"type": "string"
}
},
"solution": {
"type": "array",
"items": {
"type": "string"
}
},
"playUrl": {
"type": "string"
}
},
"required": [
"date",
"puzzleId",
"fen",
"sideToMove",
"opponentLastMove",
"rating",
"themes",
"solution",
"playUrl"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢calculate_elo(yourRating, opponentRating, result, system, kFactor)
Estimate a player's new Elo rating after a single game with the Elo formula. Pure arithmetic, no chess engine. The system field picks a K-factor default for FIDE, Chess.com or Lichess, but the result is an Elo estimate: Chess.com and Lichess use Glicko ratings, so their real rating changes differ.
输入模式
{
"type": "object",
"properties": {
"yourRating": {
"type": "integer",
"minimum": 100,
"maximum": 4000
},
"opponentRating": {
"type": "integer",
"minimum": 100,
"maximum": 4000
},
"result": {
"type": "string",
"enum": [
"win",
"draw",
"loss"
]
},
"system": {
"type": "string",
"enum": [
"fide",
"chesscom",
"lichess"
],
"default": "fide"
},
"kFactor": {
"type": "integer",
"minimum": 1,
"maximum": 100
}
},
"required": [
"yourRating",
"opponentRating",
"result"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}输出模式
{
"type": "object",
"properties": {
"yourRating": {
"type": "number"
},
"opponentRating": {
"type": "number"
},
"result": {
"type": "string",
"enum": [
"win",
"draw",
"loss"
]
},
"system": {
"type": "string",
"enum": [
"fide",
"chesscom",
"lichess"
]
},
"kFactor": {
"type": "number"
},
"expectedScore": {
"type": "number"
},
"newRating": {
"type": "number"
},
"change": {
"type": "number"
},
"calculatorUrl": {
"type": "string"
}
},
"required": [
"yourRating",
"opponentRating",
"result",
"system",
"kFactor",
"expectedScore",
"newRating",
"change",
"calculatorUrl"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}社区
证据