Name | league-data-mcp JSON |
Version |
1.0.2
JSON |
| download |
home_page | None |
Summary | A Model Context Protocol (MCP) server that provides access to League of Legends game data through the Riot Games API |
upload_time | 2025-09-01 21:25:22 |
maintainer | Yuyang Shi |
docs_url | None |
author | Yuyang Shi |
requires_python | >=3.13 |
license | MIT |
keywords |
mcp
league-of-legends
riot-games
|
VCS |
|
bugtrack_url |
|
requirements |
No requirements were recorded.
|
Travis-CI |
No Travis.
|
coveralls test coverage |
No coveralls.
|
# League-Data-MCP
A Model Context Protocol (MCP) server that provides access to League of Legends game data through the Riot Games API.
## Features
- **Player's PUUID Lookup**: Get player's PUUID using game names and tag lines
- **Match History List**: Retrieve match lists for players with optional filtering
- **Match Details**: Get detailed match information including statistics and game data
- **Match Summary List**: Get truncated match data with player-specific context (optimized for large datasets)
## Prerequisites
- Python 3.13+
- Riot Games API key (get one from [Riot Developer Portal](https://developer.riotgames.com/))
- MCP-compatible client (like Claude Desktop)
## Installation
### Method 1: Install from PyPI (Recommended)
```bash
pip install league-data-mcp
```
### Method 2: Install with uvx
```bash
uvx install league-data-mcp
```
### Method 3: Development Installation
1. **Clone the repository**
```bash
git clone https://github.com/syy674998887/league-data-mcp.git
cd league-data-mcp
```
2. **Install dependencies**
```bash
uv sync
```
3. **Set environment variable**
```bash
export API="Your Riot API key here"
```
## Configuration
### For Claude Desktop/Cherry Studio etc.
4. **Configure MCP Client**
Add the server configuration to your MCP client:
```json
{
"mcpServers": {
"League-Data-MCP": {
"command": "uvx",
"args": ["league-data-mcp@latest"],
"env": {
"API": "Your Riot API key here"
}
}
}
}
```
## Available Tools
### `get_puuid`
Get player PUUIDs by their game names and tag lines (supports batch queries).
**Parameters:**
- `players` (List[dict]): List of player dictionaries with `game_name` and `tag_line` keys
**Example:**
```python
get_puuid([
{"game_name": "Faker", "tag_line": "KR1"},
{"game_name": "Untargetable", "tag_line": "666"}
])
```
### `get_match_list`
Get a list of matches for a player by their PUUID.
**Parameters:**
- `puuid` (str): Player's PUUID
- `type` (str, optional): Match type filter (normal, ranked, etc.)
- `count` (str, optional): Number of matches to return
**Example:**
```python
get_match_list(
puuid="Player's Puuid",
type="ranked",
count="20"
)
```
### `get_match_detail`
Get detailed match data by match ID.
**Parameters:**
- `match_id` (str): Match ID (e.g., "NA1_5354690210")
**Example:**
```python
get_match_detail(match_id="NA1_5354690210")
```
### `get_match_summary`
Get truncated match summaries for multiple matches (max 10 matches) with player-specific context.
**Parameters:**
- `match_ids` (List[str]): List of match IDs
- `game_name` (str): Player's game name to search for additional context
**Example:**
```python
get_match_summary(
match_ids=["NA1_5354690210", "NA1_5354690211"],
game_name="Faker"
)
```
## Rate Limiting
The server respects Riot Games API rate limits. If you encounter rate limiting issues, consider implementing additional retry logic or request throttling.
## Error Handling
The server includes comprehensive error handling:
- API errors are logged with status codes and error messages
- Network failures are caught and logged
- Invalid requests return `None` values
## License
This project is licensed under the MIT License - see the LICENSE file for details.
## Disclaimer
This project is not affiliated with Riot Games. League of Legends is a trademark of Riot Games, Inc.
## Support
For issues and questions:
- Check the [Riot Games API documentation](https://developer.riotgames.com/)
- Open an issue in this [repository](https://github.com/syy674998887/league-data-mcp)
Raw data
{
"_id": null,
"home_page": null,
"name": "league-data-mcp",
"maintainer": "Yuyang Shi",
"docs_url": null,
"requires_python": ">=3.13",
"maintainer_email": null,
"keywords": "mcp, league-of-legends, riot-games",
"author": "Yuyang Shi",
"author_email": null,
"download_url": "https://files.pythonhosted.org/packages/88/98/bcceb9fe9933d301336d291c4c19000434450294e40623ddacde85ce5c54/league_data_mcp-1.0.2.tar.gz",
"platform": null,
"description": "# League-Data-MCP\n\nA Model Context Protocol (MCP) server that provides access to League of Legends game data through the Riot Games API.\n\n## Features\n\n- **Player's PUUID Lookup**: Get player's PUUID using game names and tag lines\n- **Match History List**: Retrieve match lists for players with optional filtering\n- **Match Details**: Get detailed match information including statistics and game data\n- **Match Summary List**: Get truncated match data with player-specific context (optimized for large datasets)\n\n## Prerequisites\n\n- Python 3.13+\n- Riot Games API key (get one from [Riot Developer Portal](https://developer.riotgames.com/))\n- MCP-compatible client (like Claude Desktop)\n\n## Installation\n\n### Method 1: Install from PyPI (Recommended)\n\n```bash\npip install league-data-mcp\n```\n\n### Method 2: Install with uvx\n\n```bash\nuvx install league-data-mcp\n```\n\n### Method 3: Development Installation\n\n1. **Clone the repository**\n ```bash\n git clone https://github.com/syy674998887/league-data-mcp.git\n cd league-data-mcp\n ```\n\n2. **Install dependencies**\n ```bash\n uv sync\n ```\n\n3. **Set environment variable**\n ```bash\n export API=\"Your Riot API key here\"\n ```\n\n## Configuration\n\n### For Claude Desktop/Cherry Studio etc.\n\n4. **Configure MCP Client**\n Add the server configuration to your MCP client:\n ```json\n {\n \"mcpServers\": {\n \"League-Data-MCP\": {\n \"command\": \"uvx\",\n \"args\": [\"league-data-mcp@latest\"],\n \"env\": {\n \"API\": \"Your Riot API key here\"\n }\n }\n }\n }\n ```\n\n## Available Tools\n\n### `get_puuid`\nGet player PUUIDs by their game names and tag lines (supports batch queries).\n\n**Parameters:**\n- `players` (List[dict]): List of player dictionaries with `game_name` and `tag_line` keys\n\n**Example:**\n```python\nget_puuid([\n {\"game_name\": \"Faker\", \"tag_line\": \"KR1\"},\n {\"game_name\": \"Untargetable\", \"tag_line\": \"666\"}\n])\n```\n\n### `get_match_list`\nGet a list of matches for a player by their PUUID.\n\n**Parameters:**\n- `puuid` (str): Player's PUUID\n- `type` (str, optional): Match type filter (normal, ranked, etc.)\n- `count` (str, optional): Number of matches to return\n\n**Example:**\n```python\nget_match_list(\n puuid=\"Player's Puuid\",\n type=\"ranked\",\n count=\"20\"\n)\n```\n\n### `get_match_detail`\nGet detailed match data by match ID.\n\n**Parameters:**\n- `match_id` (str): Match ID (e.g., \"NA1_5354690210\")\n\n**Example:**\n```python\nget_match_detail(match_id=\"NA1_5354690210\")\n```\n\n### `get_match_summary`\nGet truncated match summaries for multiple matches (max 10 matches) with player-specific context.\n\n**Parameters:**\n- `match_ids` (List[str]): List of match IDs\n- `game_name` (str): Player's game name to search for additional context\n\n**Example:**\n```python\nget_match_summary(\n match_ids=[\"NA1_5354690210\", \"NA1_5354690211\"],\n game_name=\"Faker\"\n)\n```\n\n## Rate Limiting\n\nThe server respects Riot Games API rate limits. If you encounter rate limiting issues, consider implementing additional retry logic or request throttling.\n\n## Error Handling\n\nThe server includes comprehensive error handling:\n- API errors are logged with status codes and error messages\n- Network failures are caught and logged\n- Invalid requests return `None` values\n\n## License\n\nThis project is licensed under the MIT License - see the LICENSE file for details.\n\n## Disclaimer\n\nThis project is not affiliated with Riot Games. League of Legends is a trademark of Riot Games, Inc.\n\n## Support\n\nFor issues and questions:\n- Check the [Riot Games API documentation](https://developer.riotgames.com/)\n- Open an issue in this [repository](https://github.com/syy674998887/league-data-mcp)",
"bugtrack_url": null,
"license": "MIT",
"summary": "A Model Context Protocol (MCP) server that provides access to League of Legends game data through the Riot Games API",
"version": "1.0.2",
"project_urls": null,
"split_keywords": [
"mcp",
" league-of-legends",
" riot-games"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "54ba41358c6a588be27fe3233c5ee60c992e02a34123405d1f337ca3e89af150",
"md5": "9bfa9616877d573630b1d4ca18442b86",
"sha256": "2164211d5f8f53e806cac7d56a2a25adfc290e1eba18833f2cb09f0d7bbbb2ce"
},
"downloads": -1,
"filename": "league_data_mcp-1.0.2-py3-none-any.whl",
"has_sig": false,
"md5_digest": "9bfa9616877d573630b1d4ca18442b86",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.13",
"size": 5897,
"upload_time": "2025-09-01T21:25:20",
"upload_time_iso_8601": "2025-09-01T21:25:20.628113Z",
"url": "https://files.pythonhosted.org/packages/54/ba/41358c6a588be27fe3233c5ee60c992e02a34123405d1f337ca3e89af150/league_data_mcp-1.0.2-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "8898bcceb9fe9933d301336d291c4c19000434450294e40623ddacde85ce5c54",
"md5": "af4616fbc0aea6680071c5a687525d6f",
"sha256": "f2efd6469b3ad61d1d4eec0c4c3fc3c3cef470c36e0ee8c9fa3582a7b25cddc3"
},
"downloads": -1,
"filename": "league_data_mcp-1.0.2.tar.gz",
"has_sig": false,
"md5_digest": "af4616fbc0aea6680071c5a687525d6f",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.13",
"size": 4291,
"upload_time": "2025-09-01T21:25:22",
"upload_time_iso_8601": "2025-09-01T21:25:22.236092Z",
"url": "https://files.pythonhosted.org/packages/88/98/bcceb9fe9933d301336d291c4c19000434450294e40623ddacde85ce5c54/league_data_mcp-1.0.2.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-09-01 21:25:22",
"github": false,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"lcname": "league-data-mcp"
}