Skip to main content

osu-mcp

PyPI Tests Coverage License: MIT

osu-mcp is a Model Context Protocol (MCP) server that exposes the osu! API v2 as tools for Claude Desktop and other MCP clients. Ask Claude about your osu! profile, compare players, search beatmaps, browse rankings — all in natural language.

Quickstart

1. Install

uv tool install osu-mcp
# or
pip install osu-mcp

2. Get osu! API credentials

  1. Go to https://osu.ppy.sh/home/account/edit
  2. Scroll to OAuth, click New OAuth Application
  3. Name: anything (e.g., "Claude Desktop"); Callback URL: leave blank.
  4. Copy the Client ID and Client Secret.

3. Configure credentials

Option A — environment variables (recommended):

export OSU_CLIENT_ID=12345
export OSU_CLIENT_SECRET=your-client-secret

Option B — config file at ~/.config/osu-mcp/config.toml (Linux/Mac) or %APPDATA%\osu-mcp\config.toml (Windows):

client_id = 12345
client_secret = "your-client-secret"

4. Wire up Claude Desktop

Add to claude_desktop_config.json:

{
  "mcpServers": {
    "osu": {
      "command": "uvx",
      "args": ["osu-mcp"],
      "env": {
        "OSU_CLIENT_ID": "12345",
        "OSU_CLIENT_SECRET": "your-client-secret"
      }
    }
  }
}

Restart Claude Desktop. You should see "osu" in the MCP servers list.

Available tools (12)

Tool Description
get_user_summary Profile + stats; optionally embed recent/best/firsts scores
compare_users Side-by-side comparison of 2-5 users
get_user_scores List a user's best/recent/firsts scores
get_score_details Full attributes of a specific score
search_beatmaps Search beatmapsets with filters (mode, status, difficulty, length, BPM)
get_beatmap_details Full attributes of a beatmap (AR/OD/CS/HP, BPM, max combo)
get_beatmap_scores Top scores on a beatmap, filterable by mods
get_beatmapset Full beatmapset with all difficulties
get_rankings pp/score/charts rankings, global or by country
get_country_top Top N players of a country in pp ranking
get_news_posts Recent osu! news posts
get_seasonal_backgrounds Active seasonal backgrounds

Full reference: docs/tools.md.

Examples

In Claude Desktop, try:

"Show me peppy's osu! stats"

"Compare Cookiezi and WhiteCat on accuracy and pp"

"What are the top 10 osu! players from Ecuador?"

"Find me some 200 BPM streamy ranked maps"

Development

git clone https://github.com/Osyanne/osu-mcp.git
cd osu-mcp
uv sync
uv run pytest                      # unit + smoke
uv run pytest -m integration       # integration (needs real creds)
uv run ruff check .
uv run mypy --strict src/

License

MIT — see LICENSE.

Metadata

Release files for osu-mcp 0.1.4

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for osu-mcp 0.1.4
File Size Uploaded
osu_mcp-0.1.4.tar.gz 148.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for osu-mcp 0.1.4
File Interpreter ABI Platform
osu_mcp-0.1.4-py3-none-any.whl Python 3 none any Details

Total release size: 167.5 kB

Release files / osu_mcp-0.1.4.tar.gz

Download URL osu_mcp-0.1.4.tar.gz
Size 148.3 kB
Tags Source
SHA-256 checksum
How to use checksums
d7e50657e7822b4f428db14c3b1327b8779107271bd7a8fe6a43f22fe4882a7c
BLAKE2b-256 checksum
How to use checksums
05eefce7f9284d907ef2310c4c8c566799cd13cc5bd5e34fb296f9d7e3cf2f53
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on May 23, 2026.

Transparency log

Release files / osu_mcp-0.1.4-py3-none-any.whl

Download URL osu_mcp-0.1.4-py3-none-any.whl
Size 19.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
3b2cd005419ff66b36e838c927cfe0652c45685866bd5760b3e2f5838dfec418
BLAKE2b-256 checksum
How to use checksums
1334dec09430e5c204b6e149403716f11161b8b3c53478d0846fddb65e164685
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on May 23, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.1.4 This release

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page