Skip to main content
Glama

Calculate chart rating

calculate_rating
Read-onlyIdempotent

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.

Input Schema

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

NameRequiredDescriptionDefault
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

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed3 schema 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. First observed

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.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.