# Lichess.org Open Chess Intelligence MCP

> Lichess.org Open Chess Intelligence gives your AI agent deep access to Lichess.org's real-time and historical chess data. You can monitor official tournament broadcasts, check live player statuses, analyze full match history (PGN), retrieve detailed player profiles across all variants, and even solve daily puzzles using natural conversation with your preferred client.

## Overview
- **Category:** artificial-intelligence
- **Price:** Free
- **Tags:** chess, real-time-data, tournament-tracking, player-analytics, game-analysis, open-source

## Description

**Lichess Open Chess Intelligence** gives your AI agent deep access to Lichess.org's entire operational data set. You don't need messy web scraping or some clunky third-party API just to get basic stats; this server connects you directly to the source, letting your client perform complex actions on live and historical chess data.

### Monitoring Live Action and Statuses

You can track who’s playing right now. By running `list_broadcasts`, you'll see every official tournament currently running on the platform. Want to know which Grandmasters are streaming? Use `get_tv_channels` to identify exactly who's broadcasting live on Lichess TV at this moment. If you need a list of all streamers, run `list_live_streamers`; that’ll give you a feed of everyone currently broadcasting their stream. When you need to know if a specific group is active—say, checking your whole squad—you use `get_users_online_status` to confirm if multiple specified users are logged into the site and online right now.

### Analyzing Player Performance and Metrics

Want to check out a player's overall standing? You run `get_leaderboards` and you pull up top rankings and scores across every major chess variant, like Blitz or Rapid. For deep dives on an individual, your agent can use `get_player_data` to grab the entire public profile for any Lichess user. This includes their current ratings and historical details across all defined variants of play.

### Auditing History and Activity Logs

When you need to audit a player or track performance trends, you've got two main tools. First, run `get_user_games` to pull the complete match history for any given player. This gives you raw PGN data—enough material for serious post-game analysis of tactical patterns and mistakes. Second, if you need to see what a user has been up to recently, use `get_user_activity`. This pulls a chronological log detailing recent actions taken by the player, whether they solved a puzzle, updated their profile, or just logged in.

### Community and Puzzle Data

For team-based intelligence, you run `get_team_members` on a specific team's name. That lists every single username that belongs to that group. If you need to know what the daily challenge is—or if you want your agent to solve it for practice—you use `get_daily_puzzle`, and it retrieves today's available Lichess puzzle challenge.

This setup lets your AI client handle all the data fetching. It pulls everything from listing ongoing tournaments via `list_broadcasts` and checking which players are live on TV using `get_tv_channels`. You can grab a user’s full history with `get_user_games`, or just check their general profile stats using `get_player_data`. Need to know what they did yesterday? Run `get_user_activity`. Want to see who's playing right now and if your buddies are online, you use `get_users_online_status` and `list_live_streamers`. If you're tracking a whole crew, you get all their details with `get_team_members`, and even the current top scores through `get_leaderboards`. You can also nail down today's puzzle using `get_daily_puzzle`. It’s everything, handled by your agent. No fluff, just data.

## Tools

### get_daily_puzzle
Retrieves the Lichess puzzle challenge available for the day.

### get_leaderboards
Fetches top player rankings and scores across various chess variants (e.g., Blitz, Rapid).

### get_player_data
Gets the public profile data for any specified Lichess player.

### get_team_members
Lists all usernames belonging to a specific Lichess team.

### get_tv_channels
Identifies which Grandmasters or players are currently broadcasting live on Lichess TV.

### get_user_activity
Retrieves a chronological log of recent actions taken by a player (e.g., profile changes, puzzle solves).

### get_user_games
Pulls the complete match history for any given player.

### get_users_online_status
Checks and confirms if multiple specified users are currently online on Lichess.

### list_broadcasts
Lists all ongoing official tournament broadcasts that the platform is running.

### list_live_streamers
Provides a list of chess streamers who are currently broadcasting live on Lichess.

## Prompt Examples

**Prompt:** 
```
Check which Grandmasters are currently playing live on Lichess TV.
```

**Response:** 
```
Retrieving Lichess TV channels... I've identified that GM Magnus Carlsen is currently live in the Blitz channel, and GM Hikaru Nakamura is playing in the Bullet channel. Would you like to see the real-time board status for either match?
```

**Prompt:** 
```
Retrieve the last 5 games for player 'UserX' and provide the PGN links.
```

**Response:** 
```
Inspecting match history for UserX... I've retrieved 5 recent matches, including a victory against an IM. I have the technical results and the direct PGN download links for each. Shall I perform a move-by-move analysis for any of them?
```

**Prompt:** 
```
Analyze the ongoing official broadcast for the 'Candidates Tournament 2024'.
```

**Response:** 
```
Accessing official broadcast feed... The Candidates Tournament is currently live. I've identified 4 active boards. On Board 1, Nepomniachtchi has a slight technical advantage (+0.8) according to Stockfish analysis. Would you like the full move sequence for this game?
```

## Capabilities

### Monitor Live Streams
List ongoing official tournament broadcasts and see which Grandmasters are playing on Lichess TV.

### Audit Player History
Retrieve a player's full match history, allowing you to pull PGN data for deep post-game analysis.

### Get Core Player Metrics
Fetch public profiles and current ratings for a Lichess user across all defined chess variants.

### Check Activity Logs
Pull the recent activity feed for any player, showing when they played or updated their profile.

### Analyze Team Structure
List all members belonging to a specific Lichess team.

### Identify Online Status
Check if multiple specified users are currently active and logged into the platform.

## Use Cases

### Investigating a Rival Player's Weaknesses
A coach needs to analyze a rival. They ask their agent to run `get_user_games` for the player, pulling 20 recent matches. The agent then uses `get_player_data` alongside this data to pinpoint low-rated variants or specific patterns in PGNs that indicate weaknesses.

### Monitoring a Live Championship
An eSports organizer needs real-time feed info. They ask the agent to run `list_broadcasts` and `get_tv_channels`. The agent instantly identifies all active boards, noting which Grandmasters are currently playing on Lichess TV.

### Checking Roster Status for an Event
A tournament director needs to know if the core team members are available. They run `get_users_online_status` and cross-reference it with the list of people who need to attend, ensuring everyone is logged in before setup.

### Finding a Missing Team Member
A team captain needs to confirm roster details. They run `get_team_members` for their squad's name, getting an immediate list of all associated users, preventing missed communication or unauthorized additions.

## Benefits

- See live tournament activity instantly. Using `list_broadcasts` lets your agent know exactly which official events are running, so you don't have to check the main calendar page.
- Audit detailed player history easily. The `get_user_games` tool fetches match records and PGN data for any user, giving you everything needed for deep tactical analysis without manual downloading.
- Know who’s online right now. Instead of guessing or refreshing a status board, use `get_users_online_status` to verify if multiple players are actively logged in before starting a session.
- Track community groups efficiently. The `get_team_members` tool quickly lists all members of a specific team, which is crucial for organizing tournament rosters or finding contacts.
- Stay current with puzzles and rankings. You can always get the daily challenge via `get_daily_puzzle`, and use `get_leaderboards` to pull fresh ranking data immediately.

## How It Works

The bottom line is that your AI agent handles all the messy API calls and data structuring; you just talk to it in natural language.

1. Subscribe to this server on Vinkius.
2. If you need higher limits, optionally enter your Lichess Personal Access Token for rate limiting control.
3. Start making requests from Claude, Cursor, or any MCP-compatible client by asking the agent to perform a specific action (e.g., 'What did UserX do yesterday?').

## Frequently Asked Questions

**How do I check who is playing live on Lichess TV using get_tv_channels?**
You ask the agent to run `get_tv_channels`. It will return a list of currently broadcasting Grandmasters and which specific chess channel (Blitz, Bullet) they are in. This keeps you updated without refreshing.

**Can I get all recent matches for 'UserX' using get_user_games?**
Yes, running `get_user_games` fetches the full match history for UserX. The output includes technical results and PGN links for deep analysis.

**Does list_live_streamers only show professional players?**
No, `list_live_streamers` lists all streamers currently broadcasting on Lichess TV, giving you a full view of the community's live activity, not just top professionals.

**What if I want to know if multiple people are online? Should I use get_users_online_status?**
Yes, `get_users_online_status` is exactly for that. You list the usernames and it checks their real-time login status simultaneously.

**Is there a way to see a player's full team roster? How do I use get_team_members?**
To list all members, you run `get_team_members` and provide the specific team name. The agent returns a clean list of every username on that squad.

**When I run a high volume of checks using get_player_data, how do I handle rate limits?**
You need to use your Lichess Personal Access Token. The documentation specifies passing this token for higher request limits. It’s essential for running deep audits across many players at once.

**What data points does get_daily_puzzle return?**
It gives you the puzzle board state, its difficulty rating, and a correct solution. This lets your agent analyze specific tactical patterns without needing full match history.

**How do I use list_broadcasts to find information about upcoming tournaments?**
The tool lists ongoing official tournament broadcasts. It helps you track major global championships and see the current event status, which is different from listing individual live streamers.

**Can my AI agent actually monitor a specific world championship game as it happens?**
Yes! Use the `list_broadcasts` tool to find the tournament and then identify the specific match ID. The agent will retrieve technical updates and moves directly from the Lichess official transmission feed.

**Do I need a paid account to access the Lichess technical data?**
No. Lichess is a non-profit organization and all public data is free. However, providing a Personal Access Token (PAT) is highly recommended to ensure stable performance and higher rate limits during deep analysis sessions.

**How do I see who are the top players currently competing in a specific variant like 'Crazyhouse'?**
Simply ask the agent to run the `get_leaderboards` or `get_top_10_variant_leaderboard` tool. It will retrieve the elite rankings for all supported variants, including the player's rating and title status.