Osu! MCP for AI. Pull player stats and map data instantly.
Works with every AI agent you already use
…and any MCP-compatible client








How this MCP server connects to your AI agent
Osu! provides direct access to the Osu! API via your AI agent. It lets you query player profiles, look up beatmap details, calculate map difficulty with different mods, and browse community discussions—all without opening a browser tab.
You can check top scores, analyze user performance on specific maps, and manage favorite content right from your chat window.
What AI agents can do with Osu! Automation
Get beatmap attributes
Retrieves technical details and modifiers for a specific beatmap file.
Get beatmap pack
Fetches data about an entire collection or bundle of beatmaps.
List beatmap packs
Retrieves a list of all available general beatmap packs by name or category.
Retrieve detailed public data, including stats and rankings, for any authenticated Osu! user.
Find specific beatmap files or browse curated collections of maps by ID or name.
Adjust a map's perceived difficulty (stars, AR, BPM) based on applied mod combinations and rulesets.
Get a specific player's score against a known beatmap ID or check the top scores for that track.
Access and list beatmapsets marked as favorites by the user, or browse general beatmap packs.
Pull discussion posts and votes from a specific beatmapset to track community feedback on mapping decisions.
Ask an AI about this
Waiting for input…
What AI agents can do with Osu! MCP Server: 13 Tools for Scoring and Data Retrieval
Use these 13 tools to pull specific Osu! data points—from user ranks and beatmap attributes to community discussion votes—directly into your workflow.
Make your AI actually useful.
Add this MCP to Claude, Cursor, or Windsurf and your AI stops guessing. It gets real tools to look things up, take action, and handle the stuff you keep doing by hand.
Start using Osu! on VinkiusGet Beatmap Attributes
Retrieves technical details and modifiers for a specific beatmap file.
Get Beatmap Pack
Fetches data about an entire collection or bundle of beatmaps.
List Beatmap Packs
Retrieves a list of all available general beatmap packs by name or category.
Get Beatmap Scores
Pulls the top leaderboard scores for a specific, given beatmap ID.
Get Beatmapset
Gets metadata and information about an entire collection of related maps.
List Discussion Posts
Gets the latest discussion threads and comments related to a specific beatmapset.
List Discussion Votes
Retrieves aggregated votes cast on decisions or suggestions within a beatmapset's discussion.
List Discussions
Gets an overview of all general discussions attached to a specific beatmapset.
Get Favourites
Lists the IDs or names of beatmapsets that the user has marked as favorites.
Lookup Beatmap
Searches the database and returns fundamental metadata for a specific beatmap file...
Get Me
Retrieves the calling user's personal profile data, including stats and ranking...
Search Beatmapsets
Performs a targeted search across all available beatmapset collections.
Get User Beatmap Score
Calculates and returns a specific user's recorded score on a designated beatmap.
Security and governance baked right in.
Pick your AI client below to get set up. Just create a Vinkius account, subscribe, and you're instantly up and running. We handle the entire backend infrastructure, delivering out-of-the-box support for HTTPS Streamable, SSE, and OAuth2—zero messy routing required.
Choose How to Get Started
Build a custom MCP for your own tools, or connect a ready-made integration from our catalog.
Build Your Own
Turn any API into an MCP. Import a spec, define Agent Skills, or deploy with MCPFusion.
- Import from OpenAPI, Swagger, or YAML specs
- Create Agent Skills with progressive disclosure
- Deploy to edge with MCPFusion framework
- Built in DLP, auth, and compliance on every call
- Real time usage dashboard and cost metering
- Publish to catalog or keep private
Make Your AI Do More
Start with Osu!, then connect any of our 5,100+ other servers whenever your AI needs more. One click, no limits.
- Use this MCP plus 5,100+ others, all in one place
- Add new capabilities to your AI anytime you want
- Every connection is secured and compliant automatically
- Track usage and costs across all your servers
- Works with Claude, ChatGPT, Cursor, and more
- New servers added to the catalog every week
Independent Platform Disclaimer: Vinkius is an independent platform and is not affiliated with, endorsed by, sponsored by, verified by, or otherwise authorized by Osu!. All third-party trademarks, logos, and brand names are the property of their respective owners. Their use on this website is strictly for informational purposes to identify service compatibility and interoperability.
VINKIUS INFRASTRUCTURE
Cloud Hosted
Managed infra
V8 Isolated
Sandboxed per request
Zero-Trust Proxy
No stored credentials
DLP Enforced
Policy on every call
GDPR Compliant
EU data residency
Token Compression
~60% cost reduction
Built on the Model Context Protocol (MCP) for Claude, ChatGPT, Cursor, and more
The Model Context Protocol standardizes how applications expose capabilities to LLMs. Instead of operating in isolation, your AI gains direct access to external platforms, live data, and real-world actions through secure, standardized connections.
This connection provides 13 powerful capabilities that interface natively with Claude, ChatGPT, Cursor, and other compatible AI platforms. No middleware. No custom integration required.
Sifting through web pages for scores feels like pulling teeth., Solved with Vinkius AI Gateway
Right now, if you want to compare your score on Map A against the top player's score on Map B, you open the Osu! site. You find Map A, check your performance tab (clicking 3 times). Then you close that and navigate to Map B’s leaderboard, scrolling until you find the high score. It takes context switching and copy-pasting just to get two numbers.
With this server, you tell your agent: 'Compare my best run on map X with the top player's score on map Y.' The agent runs `get_user_beatmap_score` and `get_beatmap_scores`, pulls both results into a single payload. You get the numbers instantly, right in your chat.
Osu! MCP Server: Get stats, scores, and data.
Previously, analyzing map difficulty meant opening external mod calculators or relying on community wiki pages. You'd have to manually input the base star count, then input 'DoubleTime,' and hope the calculation was correct. It’s a messy process with no single source of truth.
Now, you ask your agent: 'What happens if I apply DoubleTime to beatmap 987654?' The server runs `get_beatmap_attributes`, gives you the precise star increase, and provides the corrected AR and BPM. You don't calculate it; the data does.
What your AI can actually do with this
You connect your Osu! account right into this agent. You get direct access to the full Osu! API, so you're not stuck opening a browser tab just to check stats or find a map. This lets you query player profiles, look up beatmap details, calculate difficulty changes with mods, and even check out community discussions—all from your chat window.
Getting Your Stats & Checking Scores
You can instantly grab detailed public data about yourself using get_me, checking your global rank and total PP without leaving the conversation. If you wanna see what another player is rocking, you'll find ways to check their full profile details. When it comes to scores, you don't gotta guess: use get_user_beatmap_score to calculate a specific user's recorded score on any beatmap ID.
Need to know who the best players are? You can pull up the top leaderboard scores for any given map using get_beatmap_scores.
Finding and Analyzing Beatmaps
If you know exactly what you want, you can search the database with lookup_beatmap to get fundamental metadata on a specific beatmap file ID. For bigger finds, use search_beatmapsets or get_beatmapset to target entire collections of related maps. You can also browse general bundles using list_beatmap_packs, which gives you all available packs by name or category, or fetch data about a whole collection with get_beatmap_pack.
If you're checking out the mapsets you like best, get_favourites lists the beatmapsets you've marked as favorites. To see what’s in a single file, get_beatmap_attributes retrieves all the technical details and modifiers for that specific beatmap file.
Mapping Difficulty Changes
You don't just get base stats; you can run some math on 'em. You use get_beatmap_attributes to calculate how a map's perceived difficulty—the stars, AR, and BPM—changes when you apply different mod combinations or rulesets.
Tapping Into the Community Vibe
You wanna know what people are talking about? Use these tools. list_discussions gives you an overview of all general discussions attached to a specific mapset. You can then dig into specific threads using list_discussion_posts to get the latest posts and comments related to that mapset. If someone's making a decision on how the map should change, you'll find out what people think by running list_discussion_votes, which pulls aggregated votes cast on decisions or suggestions within that beatmapset’s discussion.
019e5d41-4410-7188-98f1-6b7850fd80b6 Here's how it actually works
The bottom line is: Your AI client talks directly to the Osu! API, fetching specific game data when prompted.
First, subscribe to the Osu! server and provide your personal API access token.
Next, tell your AI agent what you need—for example, 'What are the top scores for beatmap X?'
The agent runs the necessary tool (like get_beatmap_scores) through this server and returns the structured data to you.
Who is this actually for?
Competitive players who can't afford to context-switch are the primary users. Think about the high-level data analyst or content creator who needs stats and trends immediately. This is for anyone who uses Osu! but hates clicking through multiple web pages just to get a single number.
Checks current stats, compares their top scores against others using get_user_beatmap_score, and analyzes map difficulty with mods before practice.
Reviews community reception by listing discussion posts (list_discussion_posts) or checking general votes on a beatmapset to gauge feedback.
Extracts structured data like attribute changes using get_beatmap_attributes or retrieves historical scoring metrics for tracking performance over time.
What Changes When You Connect
Check live scores against the leaderboard. Instead of checking a website, you just ask your agent to 'What are the top scores for beatmap ID 1234567?' using get_beatmap_scores. You get the result in text format immediately.
Analyze map difficulty on the fly. Need to know what a map feels like with DoubleTime? Use get_beatmap_attributes to calculate changes to AR and BPM without opening any external mod calculator tool.
Stay updated on community trends. Don't wade through forum threads. Use list_discussion_posts or list_discussions to pull the latest feedback or votes from a beatmapset, giving you instant insight into mapping direction.
Manage your personal data easily. Want to know your ranking? Run get_me. It pulls your full profile—PP, rank, accuracy—and gives it straight to your agent for use in other scripts.
Efficiently find resources. Instead of guessing a map's ID, you can run search_beatmapsets or list_beatmap_packs to narrow down exactly what kind of content exists.
See it in action
Comparing Rival Performance
You want to know if Player B is actually better than you on a specific map. You run get_user_beatmap_score for both of your IDs against the same beatmap ID and get two scores instantly, allowing direct comparison without switching tabs.
Mapping Research
You're designing a new map. You run get_beatmapset to check the existing metadata for similar maps, then use list_discussion_posts to see what mappers are arguing about in the community thread before you commit to your own design.
Pre-Game Warmup Check
Before a match, you need to know how much harder a map will feel with specific mods. You call get_beatmap_attributes and pass in the desired mod list; it returns the adjusted star count and BPM for your analysis.
Curating Content Lists
You need to build a playlist of maps for practice. You use get_favourites to pull all the beatmapsets you've saved, then run list_beatmap_packs to find related official packs, ensuring your list is comprehensive.
The honest tradeoffs
Trying to search by name only
Asking the agent 'Show me all maps about rock music.' The API doesn't support fuzzy text searches on general topics.
You need to narrow it down. Use search_beatmapsets with known keywords or use a specific lookup tool like lookup_beatmap if you have an ID. Don't assume the agent can read your mind.
Confusing user data and map metadata
Asking 'What is my score on this beatmap?' but providing only a general discussion link. You need both specific identifiers to get results.
You must use get_user_beatmap_score and provide three things: your user ID, the target map ID, and the required scope. Never assume it knows which score you mean.
Ignoring mod math
Calculating difficulty manually using a web tool instead of checking for official changes.
Always run get_beatmap_attributes when you apply mods. It gives the accurate, server-side calculation for AR and BPM increases, which is necessary data.
When It Fits, When It Doesn't
Use this MCP Server if your core workflow involves reading structured Osu! API data: scores, stats, or map metadata. You need to check a number (e.g., 'What is my rank?', 'What are the top 50 scores?'). If you only want to read general text—like summarizing a discussion post without pulling specific votes (list_discussion_posts)—you might get away with simpler web scraping, but if you need accurate data points like PP, AR, or BPM changes, this server is mandatory. Don't use it if you just want basic info; always run lookup_beatmap first to confirm the map exists. If your goal is general API access for unrelated gaming services (like a different rhythm game), then skip this and look at other dedicated MCP servers.
Questions you might have
How do I get my own player profile using the Osu! MCP Server? +
You run the get_me tool. It needs your identify scope permissions, but it pulls all the basic public data for you: your current rank and total PP score.
What is the difference between `lookup_beatmap` and `search_beatmapsets`? +
lookup_beatmap gives you metadata for a single, specific file (a map). search_beatmapsets finds entire collections or groupings of maps by keyword.
Can I calculate difficulty using the Osu! MCP Server? +
Yes. You use get_beatmap_attributes. Just pass in the map ID and the mod names (e.g., 'DoubleTime') to get the modified star rating.
Where do I find top scores for a beatmap? +
Use the get_beatmap_scores tool. You just need to provide the specific ID of the map you want the leaderboard for, and it returns the current top results.
What authentication method does the Osu! MCP Server use when calling tools like `get_user_beatmap_score`? +
It requires an Osu! Personal Access Token (PAT). You must provide this token during server setup for any tool that accesses user-specific data, ensuring your AI client can authenticate on your behalf.
How do I use `list_discussion_posts` or `list_discussion_votes` to track community feedback? +
These tools pull the discussion threads and vote counts associated with a beatmapset. You can feed this data into your AI agent for analysis, letting it summarize current mapping trends or highlight controversial points.
What does the tool `get_favourites` retrieve, and what is its purpose? +
This tool fetches a list of beatmapsets you have marked as favorites. It's useful for quickly reviewing content you intend to play again without manually checking your profile.
If I use `lookup_beatmap` with an invalid ID, what should I expect? +
The API handles invalid or nonexistent IDs by returning a structured error response. Your AI client can read this specific error code to confirm the beatmap doesn't exist before attempting further actions.
Can I calculate the difficulty of a beatmap with specific mods like DoubleTime or HardRock? +
Yes! Use the get_beatmap_attributes tool. You can provide the Beatmap ID and an array of mods to get the adjusted difficulty metrics like Star Rating, AR, and OD.
How do I find my own profile statistics? +
Simply run the get_me tool. It will return your public profile data, including your global rank, PP, and accuracy for your primary ruleset.
Is it possible to search for new beatmapsets by a specific artist? +
Yes, use the search_beatmapsets tool with a query string. For example, searching for 'Camellia' will return all relevant beatmapsets associated with that artist.
We've already built the connector for Osu!. Just plug in your AI agents and start using Vinkius.
No hosting. No infrastructure. No complex setup.
All 13 tools are live and waiting.
You're up and running in seconds.
Vinkius gives your AI agents access to the full catalog of app connectors, all fully managed, secure, and enterprise-ready. One subscription, every tool you need.
Built, hosted, and secured by Vinkius. You just connect and go.