# Chess.com MCP MCP

> Chess.com MCP gives your AI agent instant access to the entire public chess ecosystem. Pull player stats, game history, leaderboards, and even daily tactical puzzles—all without needing API keys or logging in. It lets you analyze any opponent’s play or track your own progress right inside your chat client.

## Overview
- **Category:** education
- **Price:** Free
- **Tags:** chess, chess-com, puzzles, player-stats, game-analysis, leaderboards, titled-players

## Description

Need deep chess data but hate switching tabs? This MCP connects to the public Chess.com platform, letting your AI agent pull everything from player profiles and ratings to full game archives. You can ask for a specific player's stats—like their best Blitz or Bullet rating—and get it immediately. Want to study an opponent’s opening moves? Just ask for their game history. It’s all about getting the concrete numbers you need, right where you are. Because Vinkius hosts this MCP, you connect your preferred AI client once and instantly gain access to this massive library of chess data, letting you analyze everything from titled players like GMs down to random training puzzles.

## Tools

### get_club_info
Retrieves metadata about a specific chess club, including its description, creation date, and member count.

### get_club_members
Lists the usernames of active members within a particular chess club community.

### get_country_players
Returns an array of player usernames who have registered with a specific country code, like 'US' or 'IN'.

### get_daily_puzzle
Provides the current day's tactical puzzle position, solution moves, and associated game details.

### get_leaderboards
Fetches top players across various time controls (blitz, bullet, rapid) with their ratings and profile URLs.

### get_player_clubs
Lists all the chess clubs that a specific player is currently a member of.

### get_player_current_games
Shows details for any ongoing, non-live daily correspondence games a player has in progress.

### get_player_game_archives
Generates URLs pointing to months where available game data exists for a specific player's history.

### get_player_monthly_games
Retrieves detailed PGN data, results, and opponent names for all finished games of a player in one month.

### get_player_profile
Gathers basic identity information on a player, including their display name, country, and join date.

### get_player_stats
Provides current and best ratings across all game types (Blitz, Bullet, Rapid) plus win/loss records.

### get_random_puzzle
Pulls a fresh tactical puzzle position from the database that is not the daily puzzle.

### get_streamers
Lists verified chess content creators and their streaming platform details, like Twitch or YouTube links.

### get_titled_players
Returns a list of all players who hold specific official titles, such as Grandmaster (GM) or International Master (IM).

### is_player_online
Checks the real-time status to confirm if a player is currently logged into Chess.com.

## Prompt Examples

**Prompt:** 
```
Show me the current ratings and stats for chess player 'hikaru' on Chess.com.
```

**Response:** 
```
I pulled the stats for 'hikaru'. His current ratings are: Blitz 3254, Bullet 3421, Rapid 2890, Daily 2650. His best ratings ever were: Blitz 3393, Bullet 3527, Rapid 2978. He also has a Puzzle Rush best score of 78. This makes him one of the highest-rated players on the platform.
```

**Prompt:** 
```
Get me today's daily puzzle from Chess.com.
```

**Response:** 
```
Here's today's Chess.com daily puzzle! It's rated at 1650. The position comes from a real game (White to move). The solution involves a tactical motif in 3 moves. The FEN is provided so you can set up the position on a board. Would you like me to walk through the solution step by step?
```

**Prompt:** 
```
Show me the top 5 players on the Chess.com blitz leaderboard.
```

**Response:** 
```
Here are the current top 5 players on the Chess.com blitz leaderboard: 1. **Hikaru** (3254), 2. **DrNykterstein** (3215), 3. **ArjunErigaisi** (3198), 4. **DanielNaroditsky** (3176), 5. **CrazyBishop** (3145). These are some of the strongest blitz players in the world. Want me to pull detailed stats for any of them?
```

## Capabilities

### Check player status
Determine if a specific player is currently connected to the Chess.com servers.

### View club details and members
Get information about any official chess community (club) or list all active players within that group.

### Research country-specific talent
Pull a roster of all registered chess players from a specific nation using its ISO code.

### Get training puzzles
Fetch the official daily puzzle or pull unlimited random tactical puzzles for practice.

### Track top global performers
View the current leaderboards showing the highest-rated players across all time controls (Blitz, Bullet, Rapid).

### Analyze game records
Retrieve a player's complete game history for any given month, including opening names and accuracy.

### Review detailed profiles
Get basic identity information about a player, like their join date, follower count, and country.

## Use Cases

### A coach needs a full profile report.
A coach wants to prep for an opponent. Instead of clicking through multiple tabs, the agent first runs get_player_profile to confirm identity, then uses get_player_stats to pull peak ratings and records, and finally calls get_player_game_archives to see what months of data are available for a deep dive.

### Analyzing community activity.
A club organizer needs to know who's active. They use get_club_info to check the club details, then get_club_members to pull a list of usernames, and finally get_player_clubs for any member to see their other affiliations.

### Finding high-level talent.
A content creator is prepping a video on the best players. They run get_titled_players first to find all GMs, then use get_leaderboards to narrow down the top 5 active streamers by checking their current ratings.

### Reviewing specific game data.
A player lost a tough match. They ask the agent for the monthly games using get_player_monthly_games (specifying month and year), which pulls the full PGN data, allowing them to review every move's accuracy.

## Benefits

- Stop manually tracking stats. Use get_player_stats to pull a player's current and historical ratings across all controls in one query.
- Study opponent weaknesses by using get_player_monthly_games. You can analyze specific months of play, checking for opening patterns or weak spots against certain opponents.
- Find talent globally. Use get_country_players to build a roster of players from any nation, which is perfect for organizing local tournaments or content series.
- Never miss a live opponent. Check player availability in real-time using is_player_online before challenging someone or planning an online study session.
- Boost your training routine. Don't just rely on the daily puzzle; use get_random_puzzle to generate unlimited, fresh tactical challenges instantly.

## How It Works

The bottom line is, you never have to leave your AI chat to pull complex chess metrics or game data again.

1. First, subscribe to this MCP on Vinkius and connect it to your AI client.
2. Next, just tell your agent what you need—for instance, 'What were the stats for player X last month?'
3. The tool executes the request against Chess.com's data and returns a structured report directly into your chat.

## Frequently Asked Questions

**How do I check a player's stats using get_player_stats?**
You simply ask the agent to retrieve the player's statistics and ratings. The tool returns their current and best scores across all major time controls, giving you a complete performance snapshot.

**Can I find GMs using get_titled_players?**
Yes. The get_titled_players tool lists players who hold specific titles like GM (Grandmaster) or IM (International Master), letting you quickly build a roster of high-level talent.

**What is the difference between getting archives and monthly games?**
get_player_game_archives tells you *which* months have recorded data for a player. You then use get_player_monthly_games, specifying month/year, to pull the actual PGN game records.

**Does get_club_members list active players?**
Yes, it lists usernames and profile URLs for members within a club. This helps you identify potential opponents or community leaders inside that group.

**What happens if I use an incorrect code with the `get_country_players` tool?**
The function will return an error or empty list. You must provide a valid ISO 3166-1 country code (like 'US' or 'IN'). The API requires these standardized two-letter codes to accurately pull player usernames from that nation.

**Does the `is_player_online` tool check for live, real-time activity?**
Yes, this MCP checks the current connection status of a user. It tells you if the account is currently logged into Chess.com servers. This differs from looking at recent game history or daily correspondence games.

**Why do I need to run `get_player_game_archives` before getting monthly data?**
The tool lists all available year/month combinations for a player's stored games. You must parse these URLs first to know which months of data exist. Running it ensures you don't try to request a month that the API hasn't recorded.

**What is the difference between puzzles from `get_daily_puzzle` and those from `get_random_puzzle`?**
The daily puzzle provides one specific, high-quality challenge designed for the current day. The random puzzle gives you unlimited practice by pulling a unique tactical problem at any time. Both are great for training.