
Connects Claude to Lichess's public API for chess data and analysis. You get player profiles and ratings across all variants, bulk user lookups, online status checks, and leaderboards. The real power is in the game analysis tools: cloud eval hits Stockfish for position evaluation, tablebase does endgame lookups for positions with seven pieces or fewer, and opening explorer queries community games, master games, or individual player repertoires. Hosted by Pipeworx as a streamable HTTP gateway, so no local installation. Useful when you're building chess coaching tools, doing player research, or need programmatic access to opening theory and engine analysis without running your own infrastructure.
Public tool metadata for what this MCP can expose to an agent.
set_tokenSet your Lichess API token1 paramsSet your Lichess API token
tokenstringget_my_profileGet your Lichess profile informationGet your Lichess profile information
No parameter schema in public metadata yet.
get_user_profileGet a user's Lichess profile information2 paramsGet a user's Lichess profile information
trophiesbooleanusernamestringget_my_emailGet your email addressGet your email address
No parameter schema in public metadata yet.
get_kid_modeGet kid mode statusGet kid mode status
No parameter schema in public metadata yet.
set_kid_modeSet kid mode status1 paramsSet kid mode status
valuebooleancreate_challengeCreate a new challenge3 paramsCreate a new challenge
colorstringwhite · black · randomdefault: randomtimeControlstringusernamestringmake_moveMake a move in an ongoing game3 paramsMake a move in an ongoing game
gameIdstringmovestringofferingDrawbooleanget_preferencesGet your preferencesGet your preferences
No parameter schema in public metadata yet.
get_timelineGet your timeline2 paramsGet your timeline
nbnumbersincenumbertest_tokensTest multiple OAuth tokens1 paramsTest multiple OAuth tokens
tokensstringrevoke_tokenRevoke the current access tokenRevoke the current access token
No parameter schema in public metadata yet.
upgrade_to_botUpgrade to Bot account. WARNING: This is irreversible and the account must not have played any games.Upgrade to Bot account. WARNING: This is irreversible and the account must not have played any games.
No parameter schema in public metadata yet.
add_user_noteAdd a private note about a user2 paramsAdd a private note about a user
textstringusernamestringsend_messageSend a private message to another player2 paramsSend a private message to another player
textstringusernamestringget_followingGet users followed by the logged in userGet users followed by the logged in user
No parameter schema in public metadata yet.
follow_userFollow a player1 paramsFollow a player
usernamestringunfollow_userUnfollow a player1 paramsUnfollow a player
usernamestringblock_userBlock a player1 paramsBlock a player
usernamestringget_users_statusGet real-time users status4 paramsGet real-time users status
idsstringwithGameIdsbooleanwithGameMetasbooleanwithSignalbooleanget_all_top_10Get the top 10 players for each speed and variantGet the top 10 players for each speed and variant
No parameter schema in public metadata yet.
get_leaderboardGet the leaderboard for a single speed or variant2 paramsGet the leaderboard for a single speed or variant
nbnumberperfTypestringultraBullet · bullet · blitz · rapid · classical · chess960get_user_public_dataGet public data of a user2 paramsGet public data of a user
usernamestringwithTrophiesbooleanget_rating_historyGet rating history of a user for all perf types1 paramsGet rating history of a user for all perf types
usernamestringget_user_performanceGet performance statistics of a user2 paramsGet performance statistics of a user
perfstringultraBullet · bullet · blitz · rapid · classical · correspondenceusernamestringget_user_activityGet activity feed of a user1 paramsGet activity feed of a user
usernamestringget_users_by_idGet multiple users by their IDs1 paramsGet multiple users by their IDs
idsstringunblock_userUnblock a user1 paramsUnblock a user
usernamestringexport_gameExport one game in PGN or JSON format9 paramsExport one game in PGN or JSON format
accuracybooleanclocksbooleanevalsbooleangameIdstringliteratebooleanmovesbooleanopeningbooleanpgnInJsonbooleantagsbooleanexport_ongoing_gameExport ongoing game of a user7 paramsExport ongoing game of a user
clocksbooleanevalsbooleanmovesbooleanopeningbooleanpgnInJsonbooleantagsbooleanusernamestringexport_user_gamesExport all games of a user20 paramsExport all games of a user
accuracybooleananalysedbooleanclocksbooleancolorstringwhite · blackevalsbooleanfinishedbooleanlastFenbooleanliteratebooleanmaxnumbermovesbooleanongoingbooleanopeningbooleanperfTypestringultraBullet · bullet · blitz · rapid · classical · correspondenceratedbooleansincenumbersortstringdateAsc · dateDescdefault: dateDesctagsbooleanuntilnumberusernamestringvsstringexport_games_by_idsExport multiple games by IDs7 paramsExport multiple games by IDs
clocksbooleanevalsbooleanidsstringmovesbooleanopeningbooleanpgnInJsonbooleantagsbooleanget_tv_channelsGet all TV channels and their current gamesGet all TV channels and their current games
No parameter schema in public metadata yet.
get_tv_gameGet current TV game in PGN format1 paramsGet current TV game in PGN format
channelstringbot · blitz · racingKings · ultraBullet · bullet · classicalget_puzzle_activityGet your puzzle activity1 paramsGet your puzzle activity
maxnumberget_puzzle_dashboardGet your puzzle dashboard1 paramsGet your puzzle dashboard
daysnumberget_puzzle_raceGet info about a puzzle race1 paramsGet info about a puzzle race
raceIdstringcreate_puzzle_raceCreate a puzzle raceCreate a puzzle race
No parameter schema in public metadata yet.
get_puzzle_storm_dashboardGet your puzzle storm dashboard1 paramsGet your puzzle storm dashboard
daysnumberget_team_infoGet team information by ID1 paramsGet team information by ID
teamIdstringget_team_membersGet members of a team2 paramsGet members of a team
maxnumberteamIdstringget_team_join_requestsGet join requests for a team1 paramsGet join requests for a team
teamIdstringjoin_teamJoin a team2 paramsJoin a team
messagestringteamIdstringleave_teamLeave a team1 paramsLeave a team
teamIdstringkick_user_from_teamKick a user from your team2 paramsKick a user from your team
teamIdstringuserIdstringaccept_join_requestAccept a join request for your team2 paramsAccept a join request for your team
teamIdstringuserIdstringdecline_join_requestDecline a join request for your team2 paramsDecline a join request for your team
teamIdstringuserIdstringsearch_teamsSearch for teams2 paramsSearch for teams
pagenumbertextstringmake_board_moveMake a move in a board game3 paramsMake a move in a board game
gameIdstringmovestringofferingDrawbooleanabort_board_gameAbort a board game1 paramsAbort a board game
gameIdstringresign_board_gameResign a board game1 paramsResign a board game
gameIdstringwrite_in_chatWrite in the chat of a board game3 paramsWrite in the chat of a board game
gameIdstringroomstringplayer · spectatortextstringhandle_draw_board_gameHandle draw offers for a board game2 paramsHandle draw offers for a board game
acceptbooleangameIdstringclaim_victoryClaim victory if opponent abandoned the game1 paramsClaim victory if opponent abandoned the game
gameIdstringlist_challengesList incoming and outgoing challengesList incoming and outgoing challenges
No parameter schema in public metadata yet.
accept_challengeAccept an incoming challenge1 paramsAccept an incoming challenge
challengeIdstringdecline_challengeDecline an incoming challenge2 paramsDecline an incoming challenge
challengeIdstringreasonstringgeneric · later · tooFast · tooSlow · timeControl · ratedcancel_challengeCancel an outgoing challenge1 paramsCancel an outgoing challenge
challengeIdstringget_arena_tournamentsGet current tournamentsGet current tournaments
No parameter schema in public metadata yet.
create_arenaCreate a new arena tournament14 paramsCreate a new arena tournament
berserkablebooleanclockIncrementnumberclockTimenumberconditionsobjectdescriptionstringhasChatbooleanminutesnumbernamestringpositionstringratedbooleanstartDatenumberstreakablebooleanvariantstringstandard · chess960 · crazyhouse · antichess · atomic · hordedefault: standardwaitMinutesnumberget_arena_infoGet info about an arena tournament1 paramsGet info about an arena tournament
tournamentIdstringget_arena_gamesGet games of an arena tournament1 paramsGet games of an arena tournament
tournamentIdstringget_arena_resultsGet results of an arena tournament1 paramsGet results of an arena tournament
tournamentIdstringjoin_arenaJoin an arena tournament1 paramsJoin an arena tournament
tournamentIdstringwithdraw_from_arenaWithdraw from an arena tournament1 paramsWithdraw from an arena tournament
tournamentIdstringget_team_battle_resultsGet results of a team battle tournament1 paramsGet results of a team battle tournament
tournamentIdstringcreate_swissCreate a new Swiss tournament8 paramsCreate a new Swiss tournament
clockobjectdescriptionstringnamestringnbRoundsnumberratedbooleanroundIntervalnumberteamIdstringvariantstringstandard · chess960 · crazyhouse · antichess · atomic · hordedefault: standardget_swiss_infoGet info about a Swiss tournament1 paramsGet info about a Swiss tournament
swissIdstringget_swiss_gamesGet games of a Swiss tournament1 paramsGet games of a Swiss tournament
swissIdstringget_swiss_resultsGet results of a Swiss tournament1 paramsGet results of a Swiss tournament
swissIdstringjoin_swissJoin a Swiss tournament1 paramsJoin a Swiss tournament
swissIdstringwithdraw_from_swissWithdraw from a Swiss tournament1 paramsWithdraw from a Swiss tournament
swissIdstringget_current_simulsGet recently started simulsGet recently started simuls
No parameter schema in public metadata yet.
create_simulCreate a new simul8 paramsCreate a new simul
clockIncrementnumberclockTimenumbercolorstringwhite · blackdefault: whitemaxRatingnumberminRatingnumbernamestringtextstringvariantstringstandard · chess960 · crazyhouse · antichess · atomic · hordedefault: standardjoin_simulJoin a simul1 paramsJoin a simul
simulIdstringwithdraw_from_simulWithdraw from a simul1 paramsWithdraw from a simul
simulIdstringexport_study_chapterExport one study chapter in PGN format2 paramsExport one study chapter in PGN format
chapterIdstringstudyIdstringexport_all_study_chaptersExport all chapters of a study in PGN format1 paramsExport all chapters of a study in PGN format
studyIdstringget_user_studiesGet studies created by a user1 paramsGet studies created by a user
usernamestringget_threadGet a message thread1 paramsGet a message thread
userIdstringLichess.org public API MCP — player profiles, games, broadcasts, opening explorer, tablebase. Keyless.
Part of Pipeworx — an MCP gateway connecting AI agents to 1476+ live data sources.
user(username) — player profile + ratings across variantsusers(usernames[]) — bulk lookup (up to 300)user_status(usernames[]) — online / playing statususer_performance(username, perf) — single-variant performance + best rated gametop_players(perf, limit?) — top players for a variant (bullet/blitz/rapid/classical/etc.)leaderboards() — top 10 across all variantstv_channels() — currently-featured TV games per variantcloud_eval(fen, multi_pv?) — engine cloud eval for a FEN positiontablebase(fen, variant?) — Syzygy tablebase result (≤7 pieces)opening_explorer(scope, fen|play, ...) — Lichess / masters / player opening DBhttps://lichess.org/api, https://explorer.lichess.ovh, https://tablebase.lichess.ovh.
Add to your MCP client (Claude Desktop, Cursor, Windsurf, etc.):
{
"mcpServers": {
"lichess": {
"url": "https://gateway.pipeworx.io/lichess/mcp"
}
}
}
tools/list at https://gateway.pipeworx.io/lichess/mcp returns the tools in the table
above plus the shared Pipeworx meta-tools — ask_pipeworx,
discover_tools, search_within, remember/recall and the rest of the
gateway-wide set. So the tool count you see is larger than this table: a
single-pack endpoint currently lists roughly 30 shared tools alongside the
pack's own. The connection's initialize response states its exact scope, and
is the authoritative answer for a given day.
This is deliberate, not multiplexing by accident. The meta-tools are what let a
scoped connection answer a question this pack does not cover — via
ask_pipeworx, which routes across the whole catalog — without you adding a
second MCP server. There is currently no way to mount a pack endpoint without
them; if the extra schemas cost you more context than the routing is worth,
connect to the full gateway once rather than to several pack endpoints.
Or connect to the full Pipeworx gateway to get every pack's tools listed directly, instead of just this one's:
{
"mcpServers": {
"pipeworx": {
"url": "https://gateway.pipeworx.io/mcp"
}
}
}
Both URLs reach the same gateway and the same 1476+ data sources. The
only difference is which pack's tools are listed directly; ask_pipeworx
reaches all of them from either one.
Instead of calling tools directly, you can ask questions in plain English — this works on the pack endpoint above as well as on the full gateway:
ask_pipeworx({ question: "your question about Lichess data" })
The gateway picks the right tool and fills the arguments automatically.
MIT