Skip to main content
Glama

Server Details

maimai DX songs, charts and internal levels, and rating and Best 50 calculators, from DXRating

If you are the author of this connector, you can claim ownership by verifying the domain or GitHub account it belongs to. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL
Repository
gekichumai/dxrating
GitHub Stars
125
ChatGPT
–
Claude
–

TDQS

A3.7/5.0

Scored across 5 tools

Disambiguation4/5

The five tools mostly have distinct roles: two rating calculators cover different scopes, and search/get/list-recent cover different lookup patterns. There is minor overlap because search_songs returns chart levels while get_sheet gives detailed chart/song data, so an agent could occasionally hesitate between them.

Naming Consistency5/5

All names consistently use lowercase snake_case with a verb-led pattern: calculate_best50, calculate_rating, get_sheet, list_recent_songs, search_songs. The style is predictable and easy to parse.

Tool Count5/5

Five tools are well scoped for a maimai DX rating and song-data server. Each tool covers a distinct workflow: rating calculation, chart rating math, song/chart lookup, recent releases, and song search.

Completeness4/5

The surface covers the core rating and song/chart lookup workflows, including search, detailed lookup, recent releases, and rating math. Minor gaps remain around broad browsing/listing beyond search or recent releases, but agents can work around them.

Available Tools

5 tools
calculate_best50Calculate Best 50 ratingB
Read-onlyIdempotent
Inspect

A maimai DX player's rating from their scores: the new 15 (b15) and old 35 (b35), with each chart's rating, and the scores whose next rank would raise the rating most. Achievements are integers in 1/10000 of a percent: 100.7543% is 1007543.

NameRequiredDescriptionDefault
scoresYesThe scores of the player, up to 300; of a chart given twice the better one counts
serverNoGame server the player plays on: jp (default), intl, usa or cn
versionNoGame version whose new charts make the new 15 (b15): PRiSM PLUS. Default: the newest on the server.
suggestionsNoMost suggestions of scores to improve, 0 to 50. Default 10.

Output Schema

NameRequiredDescription
b15YesBest 15 of the charts of the current version (and, since CiRCLE, the version before)
b35YesBest 35 of the older charts
ratingYesThe rating of the player: the total of b15 and b35
serverYes
sourceYes
versionYesGame version of the new 15
dataAsOfYesWhen the catalog was last updated
unmatchedYesScores not counted, with why
suggestionsYesScores to improve, by the gain of the next rank that raises the rating, highest first

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the safety profile is covered and the bar is lower. The description adds only the achievement unit encoding (1/10000 of a percent) and does not say what happens with unresolvable song names, whether lookups are case-sensitive, or how partial score lists are handled.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, both dense with substance and no filler; the unit caveat is placed last where it is needed. The opening is a noun phrase rather than a verb-led sentence, which makes it slightly less scannable, but nothing is wasted.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, return values need not be explained, and the description correctly focuses on inputs and computation. However, for a calculation tool that overlaps with a sibling, the omission of how it differs from calculate_rating and of tie-breaking or missing-chart behavior leaves a real gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so every parameter is already documented inline, including the achievement encoding and enum values, which the description partly repeats. The description adds no new meaning for 'server', 'version' beyond what the schema states, or 'suggestions' beyond the default of 10.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names the specific domain object (a maimai DX player's Best 50 rating) and enumerates the concrete outputs: b15, b35, per-chart ratings, and ranked improvement suggestions. That is far beyond restating the title, but it never distinguishes this from the sibling calculate_rating, which is the obvious source of agent confusion.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no statement of when to use this tool versus calculate_rating, no prerequisite about needing a complete score list, and no explanation of the tradeoff when to raise or lower 'suggestions'. Usage must be inferred entirely from the description of what is computed.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

calculate_ratingCalculate chart ratingB
Read-onlyIdempotent
Inspect

The rating a maimai DX chart gives for an achievement, the achievement a rating needs, and the rating of each rank (S to SSS+). Give a chart (looked up with its current internal level) or an internal level. Achievements are integers in 1/10000 of a percent: 100.7543% is 1007543.

NameRequiredDescriptionDefault
songNoThe chart: a sheet ID (dsht_…), or a song ID or name with type and difficulty. Or give internal_level.
typeNoType of the chart of song: dx or std
comboNoCombo lamp: fc, fcp (FC+), ap or app (AP+). AP and AP+ add 1 to the rating.
serverNoGame server (jp, intl, usa, cn), whose internal level is used where it differs. Default jp.
difficultyNoDifficulty of the chart of song: basic … remaster
achievementNoAchievement in 1/10000 of a percent, an integer: 100.7543% is 1007543, 99.5% is 995000
target_ratingNoA rating of the chart to reach: the lowest achievement that gives it
internal_levelNoInternal level (譜面定数) instead of a chart: 13.7

Output Schema

NameRequiredDescription
chartYesThe chart, when one was given
resultYesThe rating of achievement, when one was given
serverYes
sourceYes
targetYes
dataAsOfYesWhen the catalog was last updated
thresholdsYesThe rating at the lowest achievement of each rank from S to SSS+
internalLevelYes

TDQS

B3.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent and non-destructive, so safety needs no restating. The description adds a genuine behavioral detail — that chart lookup uses the chart's *current* internal level, which varies by server — but the achievement unit encoding it also explains is already spelled out in the schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences with no filler, but the lead sentence is a dense enumeration without a main verb, which slows parsing. The unit-conversion example partly duplicates the achievement field description.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 8 all-optional parameters and a rich output schema, the description should clarify which parameter combinations are valid (song+type+difficulty vs internal_level; achievement vs target_rating). It gestures at the first split but not the second, leaving ambiguity about a zero-required-argument call.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so every parameter including server, combo and internal_level is already documented. The description only reinforces the song-vs-internal_level choice and the achievement encoding, adding little beyond the schema and nothing about how song/type/difficulty combine.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Names the three computations (rating from achievement, achievement needed for a target rating, rating of each rank S–SSS+), which is specific enough to separate it from calculate_best50 and the lookup tools. The opening sentence is a verbless list of noun phrases, so the reader has to infer 'calculate' from the tool name, and no sibling is named explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

"Give a chart ... or an internal level" implies the two input modes but never states when to use this tool over calculate_best50 or get_sheet. It also does not say that achievement and target_rating are alternative purposes rather than combinable inputs, leaving the agent to infer routing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_sheetGet song and chartsA
Read-onlyIdempotent
Inspect

Details of a maimai DX song and its charts (譜面): level, internal level (譜面定数) now and in past versions, note counts, note designer, release date, servers and community tags. Filter by type, difficulty and server.

NameRequiredDescriptionDefault
langNoLanguage of the tag names: en (default), ja, zh-Hans or zh-Hant. Use the language of the user.
songYesSong ID (dsng_…) or sheet ID (dsht_…) from search_songs. A title or alias that only one song has works too.
typeNoOnly the charts of this type: dx, std, utage or utage2p
serverNoGame server: jp, intl, usa or cn. Only the charts on that server, with its own level where it differs. Omitted: every chart, with the servers of each.
difficultyNoOnly the charts of this difficulty: basic, advanced, expert, master or remaster (MAS, Re:MAS work)

Output Schema

NameRequiredDescription
songYes
serverYes
sheetsYes
sourceYes
dataAsOfYesWhen the catalog was last updated

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, non-destructive and closed-world, so the safety profile is fully covered and the description need not repeat it. What the description adds is content scope — notably that internal levels are reported both now and in past versions, and that servers/community tags are included. It says nothing about behavior on a miss (unknown song, ambiguous title) or about response volume, which would be the genuinely valuable additions here.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with the resource and the returned fields, then the filtering scope. No filler or hedging. It is dense with Japanese terms and parenthetical glosses, which is justified for domain naming but makes it slightly harder to scan than a plainer phrasing would.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be described, and the description nonetheless summarizes the payload well; annotations cover safety, and the schema fully documents all five parameters. The remaining gap is workflow placement — nothing tells the agent this is typically called with an ID obtained from search_songs (that hint appears only inside the schema).

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and every parameter carries enum values or a precise description, so the schema does the heavy lifting; baseline 3 applies. The description's 'filter by type, difficulty and server' merely restates the schema's parameter names and adds no syntax, defaulting, or interaction details beyond it. The nuance that a server filter yields that server's own level where it differs lives in the schema, not the description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a concrete verb-and-resource pair: returns details of a maimai DX song and its charts, and enumerates the specific data returned (level, internal level across versions, note counts, designer, release date, servers, tags). That is far more specific than the title alone. It does not explicitly distinguish itself from the sibling search_songs, so an agent must infer that this is the detail/lookup tool versus the discovery tool.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The closing sentence 'Filter by type, difficulty and server' implies the narrowing use case for the optional parameters, which is useful context. However, there is no explicit when-to-use statement, no mention that this is the follow-up call after search_songs, and no guidance on when to prefer or avoid it over the sibling calculate_* tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_recent_songsList recent songsA
Read-onlyIdempotent
Inspect

Lists the maimai DX songs and charts released recently, by release date, newest first: on each date the new songs, and the new charts added to songs released before, with the level and internal level (譜面定数) of each chart. Use it for "what is new" questions. Release dates are those of Japan.

NameRequiredDescriptionDefault
daysNoRelease dates from this many days before today (UTC). Default 30.
limitNoMost songs to return, newest dates first, 1 to 200. Default 50.
sinceNoFirst release date to list, YYYY-MM-DD. Give since or days, not both.
serverNoGame server: jp, intl, usa or cn. Only the charts on that server, with its own level where it differs; a song is new on the date of its first chart there. Omitted: every chart of every server.

Output Schema

NameRequiredDescription
sinceYesFirst release date listed, YYYY-MM-DD
totalYesSongs released since then, before limit
serverYesServer of the charts, or null for every server
sourceYes
dataAsOfYesWhen the catalog was last updated
releasesYesRelease dates, newest first
truncatedYesWhether limit left out songs (of the oldest dates)

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already establish that this is a safe, read-only, idempotent operation. The description adds meaningful behavioral detail beyond that: ordering is newest first, results are grouped by release date, both new songs and new charts for older songs are included, and dates are Japan-based.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the core behavior and contains no obvious filler. The first sentence is dense but informative, and the later sentences about usage and Japan dates are short and purposeful.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With full schema coverage, rich annotations, and an output schema, the description covers enough for an agent to understand the tool. One minor gap is that 'Release dates are those of Japan' could be read as slightly at odds with the server parameter's server-specific date semantics.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents days, limit, since, and server thoroughly. The description adds some date-related context in saying release dates are those of Japan, but it does not materially clarify parameter behavior beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: lists recently released maimai DX songs and charts, newest first, including new songs and newly added charts for older songs. It also distinguishes the use case as 'what is new' questions, which separates it from a general song search.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives clear usage context: use it for 'what is new' questions. It does not explicitly name alternatives such as search_songs or state when not to use it, so it falls short of full when/when-not guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_songsSearch songsA
Read-onlyIdempotent
Inspect

Finds maimai DX songs by title, alias, nickname, romanization or artist, best match first, with the level and internal level (譜面定数) of each chart. Use it to get the song ID of a song the user names.

NameRequiredDescriptionDefault
typeNoOnly the songs that have a chart of this type, and only those charts: dx, std, utage or utage2p
limitNoMost songs to return, 1 to 50. Default 10.
queryYesTitle, alias, nickname, romanization or artist, in any language: ウミユリ海底譚, umiyuri, 海底谭, n-buna. Width, case, kana and punctuation are ignored.

Output Schema

NameRequiredDescription
queryYes
songsYes
totalYesSongs that match, before limit
sourceYes
dataAsOfYesWhen the catalog was last updated
truncatedYesWhether limit left out songs

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, non-destructive and closed-world, so the safety profile is covered. The description adds behavior those annotations cannot convey: results are ranked best-match-first and each chart carries its level and internal level (譜面定数), which tells the agent what to expect from the response.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with the match fields and result ordering, ending with the concrete use case. No filler and nothing repeated from the schema verbatim beyond necessary framing.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be fully explained, yet the description still flags the key payload (level and internal level per chart). Combined with 100% schema coverage and clear annotations, an agent has everything needed to call this correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so query, type and limit are all documented in the schema itself, including normalization rules (width, case, kana and punctuation ignored). The description restates the query field's scope and adds the ranking order but does not extend the type or limit parameters, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Names a specific verb and resource ('Finds maimai DX songs') and enumerates the matchable fields (title, alias, nickname, romanization, artist) plus result ordering and returned chart data. It does not explicitly distinguish itself from the nearest sibling list_recent_songs, which keeps it from a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'Use it to get the song ID of a song the user names' gives a concrete triggering condition, which is more than implied usage. It stops short of naming alternatives or when-not-to-use cases (e.g., browsing recently played songs vs. searching by name).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 5 tool updates
    • Changedcalculate_best503 fields changed
      • removedOutput schema / properties / source / properties / license
        Removed value: -{
        -  "const": "CC BY-NC 4.0",
        -  "type": "string"
        -}
      • removedOutput schema / properties / source / properties / licenseUrl
        Removed value: -{
        -  "type": "string"
        -}
      • changedOutput schema / properties / source / required
        Previous value: -[
        -  "name",
        -  "url",
        -  "license",
        -  "licenseUrl",
        -  "attribution"
        -]New value: +[
        +  "name",
        +  "url",
        +  "attribution"
        +]
    • Changedcalculate_rating3 fields changed
      • removedOutput schema / properties / source / properties / license
        Removed value: -{
        -  "const": "CC BY-NC 4.0",
        -  "type": "string"
        -}
      • removedOutput schema / properties / source / properties / licenseUrl
        Removed value: -{
        -  "type": "string"
        -}
      • changedOutput schema / properties / source / required
        Previous value: -[
        -  "name",
        -  "url",
        -  "license",
        -  "licenseUrl",
        -  "attribution"
        -]New value: +[
        +  "name",
        +  "url",
        +  "attribution"
        +]
    • Changedget_sheet3 fields changed
      • removedOutput schema / properties / source / properties / license
        Removed value: -{
        -  "const": "CC BY-NC 4.0",
        -  "type": "string"
        -}
      • removedOutput schema / properties / source / properties / licenseUrl
        Removed value: -{
        -  "type": "string"
        -}
      • changedOutput schema / properties / source / required
        Previous value: -[
        -  "name",
        -  "url",
        -  "license",
        -  "licenseUrl",
        -  "attribution"
        -]New value: +[
        +  "name",
        +  "url",
        +  "attribution"
        +]
    • Changedlist_recent_songs3 fields changed
      • removedOutput schema / properties / source / properties / license
        Removed value: -{
        -  "const": "CC BY-NC 4.0",
        -  "type": "string"
        -}
      • removedOutput schema / properties / source / properties / licenseUrl
        Removed value: -{
        -  "type": "string"
        -}
      • changedOutput schema / properties / source / required
        Previous value: -[
        -  "name",
        -  "url",
        -  "license",
        -  "licenseUrl",
        -  "attribution"
        -]New value: +[
        +  "name",
        +  "url",
        +  "attribution"
        +]
    • Changedsearch_songs3 fields changed
      • removedOutput schema / properties / source / properties / license
        Removed value: -{
        -  "const": "CC BY-NC 4.0",
        -  "type": "string"
        -}
      • removedOutput schema / properties / source / properties / licenseUrl
        Removed value: -{
        -  "type": "string"
        -}
      • changedOutput schema / properties / source / required
        Previous value: -[
        -  "name",
        -  "url",
        -  "license",
        -  "licenseUrl",
        -  "attribution"
        -]New value: +[
        +  "name",
        +  "url",
        +  "attribution"
        +]
  2. 2 tool updates
    • Addedlist_recent_songs
    • Changedsearch_songs1 field changed
      • changedOutput schema / properties / songs / items / properties / matched / properties / kind / enum
        Previous value: -[
        -  "title",
        -  "acronym",
        -  "alias",
        -  "artist"
        -]New value: +[
        +  "title",
        +  "alias",
        +  "artist"
        +]
  3. 4 tool updates
    • First observedcalculate_best50
    • First observedcalculate_rating
    • First observedget_sheet
    • First observedsearch_songs

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    A
    maintenance
    MCP server for MAIMAI DX arcade game, enabling song/score/statistics queries and image generation, accessible via command line or LLM agents.
    1
    BSD 2-Clause "Simplified"
  • A
    license
    A
    quality
    C
    maintenance
    Enables generating human-quality A Dance of Fire and Ice (ADOFAI) custom maps from any song by extracting note onsets with ffmpeg, then auto-placing beat-synced tiles, multi-key presses, and camera/lighting effects — validated by a quality gate with automatic retries.
    22
    6
    1
    MIT
  • A
    license
    B
    quality
    B
    maintenance
    Turns lyrics plus a chord progression into a .ust file for UTAU/OpenUtau (one note per syllable, pitched to the chords) together with a same-length backing track as .mid and .wav. Also previews syllable splits, renders backing from chords alone, and lists available instruments, styles, lyric modes and chord qualities.
    5
    MIT
  • F
    license
    Not graded
    quality
    B
    maintenance
    Enables querying Project SEKAI game data, including cards, characters, events, music, and gacha, through a unified MCP endpoint with extensible skill modules.
    620 npm
    -
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.