chesscom-mcp
Chess.com MCP
TypeScript MCP server backed by chess-web-api.
This is an unofficial MCP server. It is not affiliated with, endorsed by, or maintained by Chess.com.
Requirements
Node.js 20 or newer
npm
Development
npm install
npm run devBuild and run the compiled server:
npm run build
npm startRun a local end-to-end smoke test. It verifies that all official tools are registered, starts the compiled MCP server, and exercises representative JSON and PGN responses against Chess.com.
npm run test:smokeMCP client configuration
Build the project, then add the server to an MCP client configuration.
{
"mcpServers": {
"chesscom": {
"command": "npx",
"args": ["-y", "chesscom-mcp@latest"]
}
}
}Tools
Player:
get_player_profileget_player_statsget_player_current_daily_gamesget_player_to_move_daily_gamesget_player_archivesget_player_gamesget_player_monthly_pgnget_player_clubsget_player_matchesget_player_tournamentsget_titled_players
Clubs and tournaments:
get_clubget_club_membersget_club_matchesget_tournamentget_tournament_roundget_tournament_round_group
Team matches:
get_team_matchget_team_match_boardget_live_team_matchget_live_team_match_board
Countries:
get_countryget_country_playersget_country_clubs
General:
get_daily_puzzleget_random_puzzleget_streamersget_leaderboards
Unofficial:
get_game_by_id: retrieves live game data and reconstructs PGN using Chess.com's undocumented website callback
get_game_by_id is not part of Chess.com's Published Data API. It may change or stop working without notice, and excessive requests may result in an IP ban. Use it sparingly.
Deprecated getPlayerOnline remains excluded.
Chess.com's public API limits parallel requests. This server serializes API calls to reduce 429 Too Many Requests responses.