Lichess MCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Server capabilities have not been inspected yet.
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| set_tokenB | Set your Lichess API token |
| get_my_profileB | Get your Lichess profile information |
| get_user_profileC | Get a user's Lichess profile information |
| get_my_emailB | Get your email address |
| get_kid_modeC | Get kid mode status |
| set_kid_modeC | Set kid mode status |
| create_challengeC | Create a new challenge |
| make_moveC | Make a move in an ongoing game |
| get_preferencesC | Get your preferences |
| get_timelineC | Get your timeline |
| test_tokensC | Test multiple OAuth tokens |
| revoke_tokenB | Revoke the current access token |
| upgrade_to_botA | Upgrade to Bot account. WARNING: This is irreversible and the account must not have played any games. |
| add_user_noteC | Add a private note about a user |
| send_messageC | Send a private message to another player |
| get_followingB | Get users followed by the logged in user |
| follow_userC | Follow a player |
| unfollow_userC | Unfollow a player |
| block_userC | Block a player |
| get_users_statusC | Get real-time users status |
| get_all_top_10B | Get the top 10 players for each speed and variant |
| get_leaderboardC | Get the leaderboard for a single speed or variant |
| get_user_public_dataC | Get public data of a user |
| get_rating_historyC | Get rating history of a user for all perf types |
| get_user_performanceC | Get performance statistics of a user |
| get_user_activityC | Get activity feed of a user |
| get_users_by_idC | Get multiple users by their IDs |
| unblock_userC | Unblock a user |
| export_gameC | Export one game in PGN or JSON format |
| export_ongoing_gameC | Export ongoing game of a user |
| export_user_gamesC | Export all games of a user |
| export_games_by_idsC | Export multiple games by IDs |
| get_tv_channelsB | Get all TV channels and their current games |
| get_tv_gameB | Get current TV game in PGN format |
| get_puzzle_activityC | Get your puzzle activity |
| get_puzzle_dashboardC | Get your puzzle dashboard |
| get_puzzle_raceC | Get info about a puzzle race |
| create_puzzle_raceD | Create a puzzle race |
| get_puzzle_storm_dashboardC | Get your puzzle storm dashboard |
| get_team_infoC | Get team information by ID |
| get_team_membersC | Get members of a team |
| get_team_join_requestsB | Get join requests for a team |
| join_teamC | Join a team |
| leave_teamC | Leave a team |
| kick_user_from_teamC | Kick a user from your team |
| accept_join_requestB | Accept a join request for your team |
| decline_join_requestC | Decline a join request for your team |
| search_teamsC | Search for teams |
| make_board_moveC | Make a move in a board game |
| abort_board_gameC | Abort a board game |
| resign_board_gameC | Resign a board game |
| write_in_chatC | Write in the chat of a board game |
| handle_draw_board_gameC | Handle draw offers for a board game |
| claim_victoryC | Claim victory if opponent abandoned the game |
| list_challengesC | List incoming and outgoing challenges |
| create_challengeC | Challenge another player |
| accept_challengeC | Accept an incoming challenge |
| decline_challengeC | Decline an incoming challenge |
| cancel_challengeC | Cancel an outgoing challenge |
| get_arena_tournamentsC | Get current tournaments |
| create_arenaC | Create a new arena tournament |
| get_arena_infoC | Get info about an arena tournament |
| get_arena_gamesC | Get games of an arena tournament |
| get_arena_resultsC | Get results of an arena tournament |
| join_arenaC | Join an arena tournament |
| withdraw_from_arenaC | Withdraw from an arena tournament |
| get_team_battle_resultsC | Get results of a team battle tournament |
| create_swissC | Create a new Swiss tournament |
| get_swiss_infoB | Get info about a Swiss tournament |
| get_swiss_gamesC | Get games of a Swiss tournament |
| get_swiss_resultsC | Get results of a Swiss tournament |
| join_swissC | Join a Swiss tournament |
| withdraw_from_swissC | Withdraw from a Swiss tournament |
| get_current_simulsB | Get recently started simuls |
| create_simulC | Create a new simul |
| join_simulC | Join a simul |
| withdraw_from_simulC | Withdraw from a simul |
| export_study_chapterC | Export one study chapter in PGN format |
| export_all_study_chaptersC | Export all chapters of a study in PGN format |
| get_user_studiesC | Get studies created by a user |
| send_messageC | Send a private message to another player |
| get_threadC | Get a message thread |
| get_official_broadcastsC | Get official broadcasts (TV shows) |
| get_broadcastC | Get a broadcast by its ID |
| get_broadcast_roundC | Get one round of a broadcast |
| push_broadcast_round_pgnC | Push PGN to a broadcast round |
| get_cloud_evalC | Get cloud evaluation for a position |
| get_fide_playerC | Get FIDE player information |
| search_fide_playersC | Search FIDE players by name |
| get_ongoing_gamesC | Get your ongoing games (real-time and correspondence) |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| analyze_position | Analyze the current position of a game |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 88 tools
Most tools have distinct purposes, such as 'create_arena' for tournaments and 'make_board_move' for gameplay, but there is some overlap between 'make_board_move' and 'make_move' which could cause confusion. Descriptions clarify that 'make_board_move' is for board games and 'make_move' for ongoing games, but the similarity in naming might lead to misselection without careful reading.
Tool names consistently follow a verb_noun pattern, such as 'accept_challenge', 'export_game', and 'get_user_profile'. There are no deviations in naming conventions, making the set predictable and easy to parse for agents.
With 88 tools, the count is excessive for the Lichess domain, leading to potential overwhelm and inefficiency. While the server covers many features, the high number suggests over-fragmentation, such as having separate tools for each tournament type (arena, swiss, simul) and multiple export functions, which could be consolidated.
The tool set comprehensively covers the Lichess domain, including user management, gameplay, tournaments, puzzles, studies, broadcasts, and team interactions. There are no obvious gaps; it supports full CRUD operations and lifecycle management across all major features, ensuring agents can handle diverse tasks without dead ends.