Skip to main content
Glama
AnonymousOnyx22

GPA Calculator MCP

What do I need on the final

needed_on_final
Read-only

Calculate the score needed on a final exam or assignment to reach a target course grade using your current average, final weight, and desired percentage or letter grade.

Instructions

Calculate the score needed on a final exam or last assignment to reach a target course grade. Inputs: current_percent (the average on all the other work, 0 to 100), final_weight_percent (how much the final is worth, greater than 0 and at most 100) and a target. Give the target as target_percent (the course grade you want, 0 to 100), as target_letter (a letter like "B+" or a class like "2:1", whose cutoff comes from the scale table), or as both. The scale id sets the table the letter cutoff comes from. Says so when the target is already locked in or out of reach. Example prompt: "My grade is 85% and the final is worth 40% of the course. What do I need on the final to finish with a B+?"

Input Schema

NameRequiredDescriptionDefault
scaleNoGrade scale id: "us4", "us4plus", "ontario-college", "uk-classification", "australia-hd" or "weighted-5.0". Defaults to "us4". Ask the student which one their school uses if unsure.us4
target_letterNoThe letter grade you want to finish with, like "B+" or "2:1", read from the scale table. Leave it out when you pass target_percent.
target_percentNoThe course grade you want to finish with, as a percentage between 0 and 100. Leave it out when you pass target_letter.
current_percentYesCurrent grade on the work already done, as a percentage between 0 and 100.
final_weight_percentYesHow much the final is worth, greater than 0 and at most 100, as a percentage of the whole course.

Output Schema

NameRequiredDescriptionDefault
scaleYesThe scale id the target was read from.
possibleYesTrue when the target can be reached with this weighting.
scale_nameYesThe name of the scale the target was read from.
already_thereYesTrue when the target is already reached, so a 0 on the final keeps it.
target_letterNoThe letter target that was asked for, when one was given.
needed_percentYesThe score needed on the final. It is below 0 when the target is already reached, and above 100 when the target is out of reach.
target_percentYesThe course grade to finish with, as a percentage.
current_percentYesThe grade on the work already done.
letter_min_percentNoThe lowest percentage the letter target covers, when a letter target was given.
final_weight_percentYesHow much the final is worth, as a percentage of the whole course.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.4

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint and openWorldHint, so the safety profile is covered. The description adds real behavioral context beyond that: it discloses that the tool reports when the target is already locked in or out of reach, and that letter cutoffs are resolved against the scale table. It does not discuss precision or rounding of the returned score, but the output schema exists to cover returns.

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?

Purpose is front-loaded in the first sentence, followed by a compact input enumeration and a closing example prompt that earns its place. The prose is somewhat list-like and repeats range constraints already in the schema, but nothing is truly wasted.

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 an output schema present, the description need not explain return values, and it covers the input semantics and the edge-case reporting behavior. The only gap is that it never positions the tool against target_gpa_planner or weighted_grade, which an agent choosing between grade-related siblings might want.

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

Parameters4/5

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

Schema description coverage is 100%, so the baseline is 3. The description goes beyond it by explaining the relationship between target_percent and target_letter (either or both) and that the scale id determines which table letter cutoffs come from, which the schema only hints at. Ranges are restated rather than added, keeping it from a 5.

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 first sentence states a specific verb and resource: calculate the score needed on a final exam/last assignment to hit a target course grade. This is clearly distinguishable from calculate_gpa, convert_grade and weighted_grade, though no sibling is named explicitly. The purpose is unambiguous without opening the schema.

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 explains the required inputs and, importantly, the three ways to express a target (target_percent, target_letter, or both), plus a worked example prompt that shows a realistic invocation. It does not say when to prefer target_gpa_planner or other siblings instead, so there is no explicit exclusion guidance.

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