opening_explorer
Pack: lichess · Endpoint: https://gateway.pipeworx.io/lichess/mcp
Opening explorer. scope: “lichess” (community), “masters” (top 2200+ humans), “player” (single user). As of mid-2026 Lichess began requiring a Personal API Token on every explorer.lichess.ovh request — pass yours via _apiKey. Create one (free) at https://lichess.org/account/oauth/token; no scopes required for read-only Explorer access.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
scope | string | yes | lichess | masters | player |
fen | string | no | Mutually exclusive with play. |
play | string | no | UCI move list, comma-separated. Mutually exclusive with fen. |
player | string | no | Username (only for scope=player). |
speeds | string | no | Comma-sep: ultraBullet,bullet,blitz,rapid,classical,correspondence |
ratings | string | no | Comma-sep (lichess scope): 0,1000,1200,1400,1600,1800,2000,2200,2500 |
moves | number | no | Number of top moves to return (default 12, max 64). |
_apiKey | string | yes | Lichess Personal API Token (free, https://lichess.org/account/oauth/token). |
Example call
Arguments
{
"scope": "lichess",
"fen": "rnbqkbnr/pppppppp/8/8/4P3/8/PPPP1PPP/RNBQKBNR b KQkq e3 0 1"
}
curl
curl -X POST https://gateway.pipeworx.io/lichess/mcp \
-H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"opening_explorer","arguments":{"scope":"lichess","fen":"rnbqkbnr/pppppppp/8/8/4P3/8/PPPP1PPP/RNBQKBNR b KQkq e3 0 1"}}}'
TypeScript (@pipeworx/sdk)
import { Pipeworx } from '@pipeworx/sdk';
const pipeworx = new Pipeworx();
const result = await pipeworx.call('opening_explorer', {
"scope": "lichess",
"fen": "rnbqkbnr/pppppppp/8/8/4P3/8/PPPP1PPP/RNBQKBNR b KQkq e3 0 1"
});
More examples
{
"scope": "player",
"play": "e2e4,c7c5",
"player": "hikaru",
"speeds": "blitz,rapid"
}
Response shape
| Field | Type | Description |
|---|---|---|
fen | string | Position FEN |
opening | object | Opening information |
moves | array | Top moves from this position |
topGames | array | Top games from this position |
recentGames | array | Recent games from this position |
Full JSON Schema
{
"type": "object",
"properties": {
"fen": {
"type": "string",
"description": "Position FEN"
},
"opening": {
"type": "object",
"description": "Opening information",
"properties": {
"eco": {
"type": "string",
"description": "ECO code"
},
"name": {
"type": "string",
"description": "Opening name"
}
}
},
"moves": {
"type": "array",
"description": "Top moves from this position",
"items": {
"type": "object",
"properties": {
"uci": {
"type": "string",
"description": "Move in UCI notation"
},
"san": {
"type": "string",
"description": "Move in SAN notation"
},
"white": {
"type": "number",
"description": "White wins %"
},
"draws": {
"type": "number",
"description": "Draws %"
},
"black": {
"type": "number",
"description": "Black wins %"
},
"games": {
"type": "number",
"description": "Number of games"
},
"averageRating": {
"type": "number",
"description": "Average player rating"
}
}
}
},
"topGames": {
"type": "array",
"description": "Top games from this position",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Game ID"
},
"white": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Player name"
},
"rating": {
"type": "number",
"description": "Rating"
}
}
},
"black": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Player name"
},
"rating": {
"type": "number",
"description": "Rating"
}
}
},
"result": {
"type": "string",
"description": "Game result"
}
}
}
},
"recentGames": {
"type": "array",
"description": "Recent games from this position",
"items": {
"type": "object"
}
}
}
}
Connect
Add this to your MCP client config, or use one-click install buttons:
{
"mcpServers": {
"lichess": {
"url": "https://gateway.pipeworx.io/lichess/mcp"
}
}
}
See Getting Started for client-specific install steps.