Chess ratings explained, an Elo calculator, and any Chess.com or Lichess player's recent games.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Calculates how many rating points a player wins or loses for a win, draw and loss against an opponent, using the Elo formula. Also returns the expected score.
The player's rating
The opponent's rating
K-factor (default 20; FIDE uses 40 for new players, 20 normally, 10 above 2400)
Pick your client. Values in capitals, like YOUR_TOKEN, are yours to fill in.
Run in a terminal
claude mcp add --transport http chess-dna https://mhmwmgesyguaphniiedp.supabase.co/functions/v1/chess-dna-mcp
Calculates how many rating points a player wins or loses for a win, draw and loss against an opponent, using the Elo formula. Also returns the expected score.
| Argument | Type | Description |
|---|---|---|
| k | integer | K-factor (default 20; FIDE uses 40 for new players, 20 normally, 10 above 2400) |
| rating* | integer | The player's rating |
| opponent* | integer | The opponent's rating |
{
"type": "object",
"required": [
"rating",
"opponent"
],
"properties": {
"k": {
"type": "integer",
"maximum": 100,
"minimum": 1,
"description": "K-factor (default 20; FIDE uses 40 for new players, 20 normally, 10 above 2400)"
},
"rating": {
"type": "integer",
"maximum": 3500,
"minimum": 100,
"description": "The player's rating"
},
"opponent": {
"type": "integer",
"maximum": 3500,
"minimum": 100,
"description": "The opponent's rating"
}
}
}Explains what a chess rating (Elo, Chess.com or Lichess) means: whether it is good, where it sits among online players, and a link to the full guide for that level. Use for questions like "is 1200 a good chess rating?"
| Argument | Type | Description |
|---|---|---|
| rating* | integer | The rating, e.g. 1200 |
{
"type": "object",
"required": [
"rating"
],
"properties": {
"rating": {
"type": "integer",
"maximum": 3500,
"minimum": 100,
"description": "The rating, e.g. 1200"
}
}
}Summarizes a player's recent public games on Chess.com or Lichess: wins, draws and losses, rating trend, results by colour, and most played openings. Links to a free Chess DNA analysis of the player's strengths and weaknesses.
| Argument | Type | Description |
|---|---|---|
| site | string | Which site (default chesscom) |
| count | integer | How many recent games (default 30) |
| username* | string | Chess.com or Lichess username |
{
"type": "object",
"required": [
"username"
],
"properties": {
"site": {
"enum": [
"chesscom",
"lichess"
],
"type": "string",
"description": "Which site (default chesscom)"
},
"count": {
"type": "integer",
"maximum": 100,
"minimum": 5,
"description": "How many recent games (default 30)"
},
"username": {
"type": "string",
"maxLength": 40,
"minLength": 2,
"description": "Chess.com or Lichess username"
}
}
}We read every tool's name, description and inputs the way the model will, looking for instructions hidden from you. A clean result means no warning signs, not a guarantee. Scanned Nov 5, 2026.