Back to Browse

Gpa Calculator MCP Server

Developer ToolsLow Risk10.0MCP RegistryLocal
Free

Server data from the Official MCP Registry

GPA calculator MCP server. GPA, CGPA, SGPA, weighted GPA, target grade, conversions, final grade.

About

GPA calculator MCP server. GPA, CGPA, SGPA, weighted GPA, target grade, conversions, final grade.

Security Report

10.0
Low Risk10.0Low Risk

Valid MCP server (2 strong, 2 medium validity signals). No known CVEs in dependencies. Package registry verified. Imported from the Official MCP Registry. Trust signals: trusted author (14/14 approved).

4 files analyzed · 1 issue found

Security scores are indicators to help you make informed decisions, not guarantees. Always review permissions before connecting any MCP server.

How to Install

Add this to your MCP configuration file:

{
  "mcpServers": {
    "io-github-anonymousonyx22-gpa-calculator-mcp": {
      "args": [
        "-y",
        "gpa-calculator-mcp"
      ],
      "command": "npx"
    }
  }
}

Documentation

View on GitHub

From the project's GitHub README.

GPA Calculator MCP

npm downloads license Star on GitHub

GPA Calculator MCP is a free, open source MCP server, published on npm as gpa-calculator-mcp. It is a GPA calculator for AI apps. Ask it to work out your GPA, your cumulative GPA (CGPA), your semester GPA (SGPA) or your weighted GPA with credit multipliers, plan the GPA you need to hit a target and the grade each upcoming course needs, convert grades between letters and percentages, do a GPA scale conversion for a UK class or an Australian grade, and figure out the grade needed on the final. The math is done by tested code, not guessed by the model.

Use it with Claude, ChatGPT, Cursor, VS Code Copilot and any other app that supports MCP. It runs on your computer, needs no internet and no login, and never sees your school account.

Free forever. No account and no subscription.

Install

Run it straight from npm with npx. You need Node.js 20 or newer, see Node version for the details. There is nothing else to install, no account and no config file for the server itself.

npx -y gpa-calculator-mcp

Add it to your AI app's MCP config so the app can start it for you. Every app reads its config from its own file, so pick yours:

All of them start the same server the same way. The only difference is where the config goes.

Claude Desktop

Add this to claude_desktop_config.json:

{
  "mcpServers": {
    "gpa": {
      "command": "npx",
      "args": ["-y", "gpa-calculator-mcp"]
    }
  }
}

Restart Claude Desktop after you save the file.

Claude Code

Run this in a terminal:

claude mcp add gpa -- npx -y gpa-calculator-mcp

ChatGPT

The ChatGPT desktop app can start a server that runs on your computer. Open Settings, choose MCP servers, add a server, pick STDIO and give it the command npx with the arguments -y gpa-calculator-mcp. Save the server and restart the app.

The desktop app, the Codex CLI and the IDE extension read the same config file, ~/.codex/config.toml, so you can write the server there instead:

[mcp_servers.gpa]
command = "npx"
args = ["-y", "gpa-calculator-mcp"]

Type /mcp in a chat to see the servers that are connected.

The ChatGPT website talks to servers over the web, so it needs a public HTTPS address. Put a tunnel in front of a server that runs on your computer, then add it as a custom MCP server from the Plugins page.

Cursor

Cursor reads mcp.json from the project folder at .cursor/mcp.json, or from your home folder at ~/.cursor/mcp.json if you want the server in every project. On Windows the home folder file is %USERPROFILE%\.cursor\mcp.json.

{
  "mcpServers": {
    "gpa": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "gpa-calculator-mcp"]
    }
  }
}

Restart Cursor after you save the file. The Customize page in the sidebar lists the server once it starts, and you can turn it on or off there.

VS Code Copilot

Put this in .vscode/mcp.json in your project folder, or in the mcp.json file in your user profile:

{
  "servers": {
    "gpa": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "gpa-calculator-mcp"]
    }
  }
}

VS Code also reads a portable .mcp.json file in the project root. That file uses the name mcpServers instead of servers:

{
  "mcpServers": {
    "gpa": {
      "command": "npx",
      "args": ["-y", "gpa-calculator-mcp"]
    }
  }
}

Restart VS Code after you save the file.

After any of these, try one of the prompts below.

Try these three prompts

  1. What do I need on the final?

    "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+?"

    The model calls needed_on_final with current_percent 85, final_weight_percent 40 and target_letter "B+" on the us4 scale. B+ starts at 87% on that scale, so you need 90% on the final to reach it.

    Ask for a percentage target instead and the tool does the same sum. With current_percent 74, final_weight_percent 40 and target_percent 80, the other 60% of the course is locked in, so you need 89% on the final to reach 80%.

  2. What is my GPA?

    "What's my GPA if I got an A in 3 credits, a B+ in 4 credits and a C in 3 credits?"

    calculate_gpa returns 3.12 across 10 credits on the us4 scale, with a per course breakdown.

  3. Convert a grade

    "Convert 78 percent to a letter grade on the Ontario college scale."

    convert_grade returns the letter, the percentage range it covers and the grade points, using the ontario-college scale.

More things you can ask:

  • "I have a 3.1 GPA over 60 credits. What GPA do I need next semester to reach 3.4?"
  • "I have a 3.4 GPA over 60 credits. What do I need in each of my four classes next semester to reach 3.5?"
  • "My course is 20% quizzes, 30% labs, 50% exam. I have 85 on quizzes and 70 on labs. What's my grade so far and what's the best I can finish with?"
  • "What's my GPA on the UK classification scale if I got a 2:1, a 2:2 and a first?"
  • "What's my CGPA? I had a 3.2 GPA over 45 credits and this term I got an A in 3 credits, a B+ in 4 credits and a C in 3 credits."
  • "What's my weighted GPA if my two AP classes count 1.1 times the credits?"
  • "I have a 3.5 GPA on the US 4.0 scale. What is that in the UK?"
  • "Show me the grade scales you have built in."

Tools

Eight tools. These names are the ones your AI app sees.

ToolParametersWhat it doesExample prompt
calculate_gpacourses (name, credits, grade, credit_multiplier), transcript_csv, scale, prior_gpa, prior_credits, drop_lowest, replace_repeatsCalculate a GPA for a list of courses with credits and grades, optionally weighted with a credit_multiplier on each course, and optionally combined with your earlier GPA and credits for a cumulative GPA. Pass drop_lowest to leave the lowest graded courses out of the GPA, as schools do that drop the lowest course; the dropped courses are named in dropped_courses. Pass replace_repeats to count only the last listed attempt of a course that appears more than once, for schools that replace an earlier grade when a course is retaken; the replaced attempts are named in replaced_courses. Pass prior_gpa and prior_credits together, or leave both out. Alternatively, pass transcript_csv as a CSV string with columns for course name, credits, grade and optional credit multiplier. A header row is optional and the columns can be in any order, so a portal export with headers like Course Title, Final Grade and Credit Hours works as it is. When courses is not given, transcript_csv is parsed and used as the course list. Rows with P, NP or W grades are left out of the GPA and named in the answer, except a P on a scale that gives it points, such as australia-hd"What's my GPA if I got an A in 3 credits, a B+ in 4 credits and a C in 3 credits?"
convert_gradegrade, scaleConvert a letter or percentage to the matching letter, percentage range and grade points"Convert 78 percent to a letter grade on the Ontario college scale."
convert_gpa_scalegpa, from_scale, to_scaleConvert a GPA on one scale to the nearest band on another, such as a US 4.0 GPA to a UK class or an Australian grade. Leave to_scale out to get both"I have a 3.5 GPA on the US 4.0 scale. What is that in the UK?"
needed_on_finalcurrent_percent, final_weight_percent, target_percent, target_letter, scaleCalculate the score you need on the final to hit a target, and say when it is already locked in or out of reach. Give the target as a percent or as a letter such as B+ or 2:1, and the cutoff comes from the scale table"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+?"
weighted_gradeparts (name, weight, score), target_percentCombine weighted parts into your grade so far and your worst and best possible finish; leave score out for unmarked work. Every weight is a percentage of the whole course, so parts you do not list still count as work to come"My course is 20% quizzes, 30% labs, 50% exam. I have 85 on quizzes and 70 on labs. What's my grade so far and what's the best I can finish with?"
target_gpa_plannercurrent_gpa, credits_completed, target_gpa, upcoming_credits, scalePlan the GPA you need on upcoming credits to reach a target cumulative GPA"I have a 3.1 GPA over 60 credits. What GPA do I need next semester to reach 3.4?"
plan_coursescurrent_gpa, credits_completed, target_gpa, courses (name, credits), scalePlan the GPA your upcoming courses need to reach a target cumulative GPA, and give the lowest letter in each course that keeps the plan on track"I have a 3.4 GPA over 60 credits. What do I need in each of my four classes next semester to reach 3.5?"
list_scalesnoneList the grade scales built in, with their letter, percentage and points tables"Show me the grade scales you have built in."

Every tool description sent to your AI app ends with one example prompt, so the model can match a question like "What do I need on the final?" to the right tool and fill in every parameter.

Every tool also returns the same numbers as structured data. Each tool has an output schema, so a client that reads JSON gets fields such as term_gpa or needed_percent straight away, and the text answer stays the same for an app that only reads words. The fields each tool returns are listed in llms.txt and in glama.json.

Grade scales

Scale idDescription
us4Common US 4.0 scale with plus and minus grades, A is 4.0 and A- is 3.7
us4plusSame as us4 but A+ is 4.3
ontario-collegeA common Ontario college 4.0 scale, A+ and A are 4.0, B+ is 3.5. Check your own school's table
uk-classificationUK degree classification boundaries, a first, a 2:1, a 2:2 and a third, where a first is worth 4.0 grade points. Check your own school's table
australia-hdAustralian 7.0 scale, HD is 7, D is 6, C is 5 and P is 4. Check your own school's table
weighted-5.0US weighted 5.0 scale, the us4 cutoffs with every letter above F one point higher, so A is 5.0. Check your own school's table

The scale parameters take one of these six ids. A client that reads the tool schema sees them as the allowed values, and any other value is rejected before the tool runs.

Schools differ. Run list_scales to see the exact table used, and tell your AI if your school's cutoffs are different.

The two UK and Australian scales turn a class or a letter into grade points so the GPA tools can add up your work. For the UK table, a first is 4.0, a 2:1 is 3.3, a 2:2 is 2.7 and a third is 2.0. A UK degree is normally reported as a class, not a GPA, so treat those points as a way to compare and plan, not as an official number. Pass a class in a letter field as 1st, 2:1, 2:2 or 3rd, or pass a percentage and the server picks the class for you. The weighted-5.0 table is a plain mapping rather than one school's official table: it keeps the us4 cutoffs and puts every letter above F one point higher, so an A is 5.0. Pick it when your school reports a weighted GPA on a 5.0 top.

Run convert_gpa_scale to read a GPA on one scale as the nearest band on another, so a US 4.0 GPA can be read as a UK class or an Australian grade. It reads the GPA as a share of the top grade point on its own scale and picks the nearest band on the target scale. That is a comparison, not an official conversion, so check the target school's table.

Import a transcript

Pass transcript_csv to calculate_gpa with your whole transcript as a CSV string. A header row is optional, the columns can be in any order, and headers like Course Title, Final Grade and Credit Hours are read as the name, grade and credits columns. A plain no header CSV works too, with columns in the order name, credits, grade.

Example:

Course,Credits,Grade
Calculus,4,A
History,3,B+
Chemistry,3,C

Rows with P, NP or W grades are left out of the GPA and named in the answer, except a P on the australia-hd scale, where P counts. If a header row has no credits or grade column, the tool says which column is missing. When courses is not given, transcript_csv is parsed and used as the course list.

FAQ

What is the difference between CGPA and SGPA?

SGPA is the GPA for one term, so the GPA for the courses you pass in. CGPA is the cumulative GPA over every term you have finished. calculate_gpa gives you the term GPA for the courses you pass. Add your earlier GPA and credits as prior_gpa and prior_credits and the tool also gives the cumulative GPA.

Can I include my GPA from last semester?

Yes. Pass your earlier GPA as prior_gpa and your earlier credits as prior_credits to calculate_gpa, along with this term's courses. The tool folds them into a cumulative GPA. Pass both together. Passing only one of the two is an error, so the tool says which one is missing instead of quietly leaving the earlier terms out.

Can I give an AP class more weight?

Yes. Pass credit_multiplier on a course in calculate_gpa, for example 1.1 for an AP class that counts 1.1 times the credits. The plain term_gpa stays the same as it was, and the answer adds a weighted_gpa with the multipliers applied plus the weighted credits. Schools differ, so ask which multiplier yours uses. The weighted GPA covers the courses in that call, while the cumulative GPA keeps using the plain credits.

What about pass, fail and withdrawn courses on my transcript?

Pass transcript_csv to calculate_gpa with your whole transcript. A P is read as pass, NP as not pass and W as withdrawn. Those rows are left out of the GPA and named in a "Not counted in the GPA:" line, so the credits and the average only cover graded work. The one exception is a P on the australia-hd scale, where P is a graded pass worth grade points and still counts.

Portal exports with different column names work as they are: headers like Course Title, Final Grade and Credit Hours are read as the course name, grade and credits columns, in any column order. A header row that has no credits or grade column gets an error that names what is missing, instead of a parse failure further in.

What if my school uses a 4.3 scale?

Use the us4plus scale. It is the us4 scale with A+ worth 4.3. Pass scale "us4plus" to calculate_gpa, convert_grade or target_gpa_planner. Run list_scales to see the full table.

What grade do I need to pass?

It depends on your school and program. On the built in us4 scale, D covers 63 to 66 percent and is usually the lowest passing grade, but many programs require a C or higher. Use needed_on_final to work out what you need on the final, or target_gpa_planner to plan a cumulative GPA. Check your school's handbook for the real cutoff.

Can I ask for a letter grade instead of a percentage?

Yes. Pass target_letter to needed_on_final, for example target_letter "B+", and the tool looks the cutoff up in the scale table. Pass scale "uk-classification" for a UK class such as 2:1. You can pass target_percent as well, and the tool works to the higher of the two.

How do I convert my GPA to a UK or Australian scale?

Use convert_gpa_scale. Pass your GPA as gpa and the scale it is on as from_scale. Leave to_scale out and the tool gives the nearest band on both the uk-classification and australia-hd scales, or pass one of them to get only that one. It reads your GPA as a share of the top grade point on its own scale and picks the nearest band on the target scale. That is a comparison, not an official conversion, so check the target school's table.

Do my course parts have to add up to 100?

No. Every weight in weighted_grade is a percentage of the whole course, so you can pass only the parts you know. If you pass 20 percent quizzes and 30 percent labs with scores of 85 and 70, the tool says your grade so far is 76 percent, which banks 38 of the 100 points the course is worth, you finish at 38 percent if you score 0 on everything left, and you finish at 88 percent if you score 100 on everything left. The other 50 percent of the course is still to come. Weights that add up to more than 100 are an error, because a course is graded out of 100.

Can a script read the numbers without reading the sentence?

Yes. Every tool has an output schema and returns the numbers as fields next to the text, so a script can read term_gpa or needed_percent without taking them out of the sentence. The text answer is the same as it has always been.

How it compares

OptionNeeds login or school accessRuns offlineFocusWhen to use
GPA Calculator MCP (this server)NoYesJust the numbers. GPA, CGPA, SGPA, weighted grades, targets and conversions.You have numbers or want to plan and just need the calculation.
LMS MCP servers (like Brightspace, Canvas, Moodle, Google Classroom)Often yes, connects to a school systemUsually noPulls grades, due dates and course data from a learning system. Some include a target grade calculator.You want to pull data straight from your courses, not type numbers in.

For a student who just wants the number, a focused offline calculator avoids signing in, avoids connecting to a school server and keeps the task to arithmetic. If you already pull grades from an LMS, you can still pass those numbers to this calculator.

Use it with Brightspace or Canvas MCP

If you already pull grades from your learning system, you can combine them with this calculator. Brightspace MCP and Canvas MCP can fetch your grades from your course sites. Then you can ask this server to work out your GPA or figure out what you need on the final.

  • Pull your grades with Brightspace MCP, then call calculate_gpa or needed_on_final on the numbers it gives you.
  • Pull your grades with Canvas MCP, then call calculate_gpa or needed_on_final on the numbers it gives you.

Both are free and open source. See the list below for links.

Troubleshooting

If npx -y gpa-calculator-mcp fails or hangs:

  • Check your Node.js version with node --version. The server needs Node.js 20 or newer, see Node version.
  • Delete the folder where npx keeps its downloads, then try again. On Windows it is %LocalAppData%\npm-cache\_npx, and on macOS and Linux it is ~/.npm/_npx.
  • Make sure your computer can reach registry.npmjs.org. On a school network or behind a proxy, npm may need the proxy settings from your network's owner.
  • If node or npx is not found on Windows, reinstall Node.js with "Add to PATH" checked, then restart your terminal.

Node version

There are two floors here, and they are not the same number.

What you are doingNode.js
Running the published server20 or newer
Building and testing a clone22.12 or newer, on the 22 and 24 release lines or 26 and later

The server itself is happy on Node.js 20, and that is what engines in package.json says. The test runner wants a newer Node.js, so the development floor lives in devEngines in the same file. npm checks devEngines before install, run and test, so a clone on Node.js 20 stops with a clear message instead of a strange failure part way through the test suite. The 23 and 25 release lines are left out on purpose, because the test runner does not run on them.

Both numbers live in package.json, and a test in tests/node-version.test.ts keeps them in step with the README and with the range the test runner asks for.

Development

npm install
npm run build
npm test

The tests call every tool through a real MCP client, so they need no account or network. They need the newer Node.js from the Node version section above, because of the test runner.

More free student MCP servers

All free, open source and read only where they touch your accounts. Browse the full list at brightspacemcp.com/more-mcps.

ServerWhat it does
Brightspace MCPD2L Brightspace for AI. Due dates with real submission status, grades, a target grade calculator and course files.
Canvas MCPCanvas LMS for AI, read only. Due dates, missing work, grades and announcements.
Moodle MCPMoodle for AI, read only. Due dates, overdue work, grades and announcements.
Google Classroom MCPGoogle Classroom for AI, read only. Todos, due dates, missing work and grades.
Citations MCPAPA, MLA and Chicago citations from a DOI, an ISBN or typed details. No account.
Study Planner MCPExam study schedules, spaced repetition dates, pomodoro plans and assignment milestones. Works offline.
Paper Finder MCPSearch scholarly papers, find open access copies and related work through OpenAlex. No key needed.
BibTeX Reference Manager MCPClean, convert, dedupe and lint BibTeX, RIS and CSL JSON reference lists, and make cite keys. Works offline.
Open Textbook Finder MCPFind free legal copies of textbooks on OpenStax, DOAB and Open Library, look up editions by ISBN and suggest cheaper older ones.
STEM Calculator MCPChemistry and physics homework math: molar mass, balancing equations, grams to moles, unit conversion and significant figures. Works offline.
Essay Stats MCPOffline writing metrics for essays. Word and page counts, readability scores, passive voice, repeated openers, filler words, long sentences and word limit checks, so students can check their work against assignment requirements. No account, no network.
Syllabus to Calendar MCPSyllabus to calendar MCP server. Extract dates from syllabus text, build an ics calendar, expand recurring classes and merge calendars. Works offline, no account.
Job Application Tracker MCPJob application tracker MCP server. Track internships, jobs, interviews and deadlines offline, see what is coming up, and export your list as CSV or Markdown. No account and no API keys.

License

MIT

Reviews

No reviews yet

Be the first to review this server!