Skip to main content
Glama

Calculate Best 50 rating

calculate_best50
Read-onlyIdempotent

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.

Input Schema

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

NameRequiredDescriptionDefault
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

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.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.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.