mcpField
G
gpa-calculator-mcp

gpa-calculator-mcp

本地服务
brightspacemcp.com科研与教育01 天前更新

关于 gpa-calculator-mcp

gpa-calculator-mcp 是面向学生的开源 MCP 服务,用于规划成绩并按内置评分标准计算 GPA。其经过测试的工具返回结构化结果,可在本地离线运行且无需登录。

主要功能

  1. 01计算学期、累计及加权 GPA
  2. 02转换字母成绩与百分比
  3. 03计算期末考试所需分数
  4. 04规划目标 GPA 和课程成绩
  5. 05计算加权课程成绩
  6. 06列出内置评分标准

适用场景

  1. 01根据课程学分和成绩估算学期 GPA
  2. 02计算达到目标所需的期末分数
  3. 03规划达到目标累计 GPA 所需的成绩

MCP 相关

MCP 服务向兼容的 AI 应用提供七种成绩计算与规划工具,并通过结构化输出模式返回结果。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"anonymousonyx22-gpa-calculator": {
"command": "npx",
"args": [
"-y",
"gpa-calculator-mcp"
]
}
}
}
启动命令npx -y gpa-calculator-mcp

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npmgpa-calculator-mcp0.1.6

工具

6

收录的工具列表 · 更新于 1 天前

参数类型必填说明
scaleenum否成绩等级标准。使用 list_scales 查看表格。如不确定,请询问学生所在学校使用哪种标准。us4 | us4plus | ontario-college
coursesarray是要纳入计算的课程。
prior_gpanumber否之前学期的 GPA(如需合并)。
prior_creditsnumber否之前学期的学分(如需合并)。

详细介绍

GPA 计算器 MCP

npm downloads license

GPA Calculator MCP 是一款免费的开源 MCP 服务,已发布到 npm,包名为 gpa-calculator-mcp。它是面向 AI 应用的 GPA 计算器 MCP。你可以让它计算 GPA、累计 GPA(CGPA)、学期 GPA(SGPA)或按学分权重计算的 GPA,规划达到目标所需的 GPA 和每门后续课程需要的成绩,在字母等级与百分制分数之间转换,并计算期末考试需要取得的成绩。计算由经过测试的代码完成,而不是由模型猜测。

可与 Claude、ChatGPT、Cursor、VS Code Copilot 以及任何其他支持 MCP 的应用搭配使用。它在你的电脑上运行,无需联网或登录,也不会接触你的学校账户。

永久免费。无需账户,也无需订阅。

安装

使用 npx 直接从 npm 运行。你需要 Node.js 20 或更高版本,详情请参阅 Node 版本。无需安装其他内容,服务器本身也无需账户或配置文件。

npx -y gpa-calculator-mcp

将它添加到 AI 应用的 MCP 配置中,这样应用就能替你启动它。每个应用都从自己的文件读取配置,请选择对应的应用:

它们启动此服务器的方式都相同,区别仅在于配置文件的位置。

Claude Desktop

将以下内容添加到 claude_desktop_config.json:

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

保存文件后,重启 Claude Desktop。

Claude Code

在终端中运行:

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

ChatGPT 桌面应用可以启动在你电脑上运行的服务。打开 Settings,选择 MCP servers,添加一个服务,选择 STDIO,并将命令设为 npx,参数设为 -y gpa-calculator-mcp。保存服务并重启应用。

桌面应用、Codex CLI 和 IDE 扩展会读取同一个配置文件 ~/.codex/config.toml,因此你也可以在该文件中配置服务:

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

在聊天中输入 /mcp,即可查看已连接的服务。

ChatGPT 网站通过网络与服务通信,因此需要一个公共 HTTPS 地址。在电脑上运行的服务前面架设一个隧道,然后从 Plugins 页面将其添加为自定义 MCP 服务。

Cursor

Cursor 会从项目文件夹中的 .cursor/mcp.json 读取 mcp.json,如果希望所有项目都能使用该服务,也可以从主目录中的 ~/.cursor/mcp.json 读取。在 Windows 上,主目录配置文件的路径为 %USERPROFILE%\.cursor\mcp.json。

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

保存文件后,重启 Cursor。服务启动后会显示在侧边栏的 Customize 页面中,你可以在那里启用或停用它。

VS Code Copilot

将以下内容放入项目文件夹中的 .vscode/mcp.json,或用户配置文件夹中的 mcp.json 文件:

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

VS Code 也会读取项目根目录中的便携式 .mcp.json 文件。该文件使用 mcpServers 而不是 servers:

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

保存文件后,重启 VS Code。

完成上述任意一种配置后,试试下面的提示词。

试试这三个提示词

  1. 期末考试要考多少分?

    “我的成绩是 85%,期末考试占课程总成绩的 40%。我要在期末考试中考多少分才能最终拿到 B+?”

    模型会调用 needed_on_final,并传入 current_percent 85、final_weight_percent 40 和 target_letter "B+",使用 us4 评分标准。在该标准下,B+ 的起始分数为 87%,因此你需要在期末考试中考到 90% 才能达到要求。

    你也可以改为指定百分比目标,工具会进行相同的计算。例如,传入 current_percent 74、final_weight_percent 40 和 target_percent 80 时,课程中其余 60% 的成绩已确定,因此你需要在期末考试中考到 89% 才能达到 80%。

  2. 我的 GPA 是多少?

    “如果我在 3 个学分的课程中拿到 A,在 4 个学分的课程中拿到 B+,在 3 个学分的课程中拿到 C,我的 GPA 是多少?”

    calculate_gpa 会根据 us4 评分标准,返回 10 个学分的 GPA:3.12,并附上各门课程的明细。

  3. 转换成绩

    “将 78% 按安大略省学院评分标准转换为字母等级。”

    convert_grade 会使用 ontario-college 评分标准,返回对应的字母等级、适用的百分比范围和绩点。

还可以问:

  • “我修了 60 个学分,GPA 是 3.1。下学期需要拿到多少 GPA 才能达到 3.4?”
  • “我修了 60 个学分,GPA 是 3.4。下学期的四门课各需要拿到什么成绩,才能达到 3.5?”
  • “我的课程由 20% 的测验、30% 的实验和 50% 的考试组成。我测验得了 85 分,实验得了 70 分。目前的成绩是多少?最终最高能拿到多少分?”
  • “如果我拿到 2:1、2:2 和一级学位,按英国学位等级标准,我的 GPA 是多少?”
  • “我的 CGPA 是多少?我之前修了 45 个学分,GPA 是 3.2;这学期我在 3 个学分的课程中拿到 A,在 4 个学分的课程中拿到 B+,在 3 个学分的课程中拿到 C。”
  • “如果我的两门 AP 课程按学分的 1.1 倍计算,我的加权 GPA 是多少?”
  • “列出内置的评分标准。”

工具

共有 7 个工具。这些名称会显示给你的 AI 应用。

工具参数功能
calculate_gpacourses(name、credits、grade、credit_multiplier)、scale、prior_gpa、prior_credits根据课程列表及其学分和成绩计算 GPA;每门课程可选择使用 credit_multiplier 加权,也可选择结合之前的 GPA 和学分计算累计 GPA。请同时传入 prior_gpa 和 prior_credits,或两者都不传
convert_gradegrade、scale将字母成绩或百分制成绩转换为对应的字母成绩、百分比范围和绩点
needed_on_finalcurrent_percent、final_weight_percent、target_percent、target_letter、scale计算期末考试需要取得的分数才能达到目标,并说明目标是否已经稳拿或遥不可及。目标可以用百分比或字母成绩表示,例如 B+ 或 2:1;分数线取自评分标准表
weighted_gradeparts(name、weight、score)根据加权部分计算目前的成绩,以及可能的最低和最高最终成绩;尚未评分的部分请省略 score。每个权重都是整个课程的百分比,因此未列出的部分仍计入待完成的课程内容
target_gpa_plannercurrent_gpa、credits_completed、target_gpa、upcoming_credits、scale规划后续学分所需的 GPA,以达到目标累计 GPA
plan_coursescurrent_gpa、credits_completed、target_gpa、courses(name、credits)、scale规划后续课程所需的 GPA,以达到目标累计 GPA,并给出每门课程在保持计划进度的前提下所需的最低字母成绩
list_scales无列出内置的评分标准,包括字母成绩、百分比和绩点表

发送给 AI 应用的每条工具描述末尾都有一个示例提示词,方便模型将“期末考试需要考多少分?”这类问题匹配到正确的工具,并填写所有参数。

每个工具还会以结构化数据形式返回相同的数值。每个工具都有输出架构,因此读取 JSON 的客户端可以直接获取 term_gpa 或 needed_percent 等字段;对于只读取文本的应用,文本答案也保持不变。每个工具返回的字段列在 llms.txt 和 glama.json 中。

成绩等级标准

标准 ID说明
us4常见的美国 4.0 制成绩标准,包含加号和减号等级,A 为 4.0,A- 为 3.7
us4plus与 us4 相同,但 A+ 为 4.3
ontario-college常见的安大略省学院 4.0 制成绩标准,A+ 和 A 均为 4.0,B+ 为 3.5。请查看你所在学校的标准表
uk-classification英国学位等级划分界限,包括一等、2:1、2:2 和三等,其中一等对应 4.0 个绩点。请查看你所在学校的标准表
australia-hd澳大利亚 7.0 制,HD 为 7,D 为 6,C 为 5,P 为 4。请查看你所在学校的标准表
weighted-5.0美国加权 5.0 制,采用 us4 的分数界限,F 以上的每个字母等级都高 1 分,因此 A 为 5.0。请查看你所在学校的标准表

scale 参数接受这六个 ID 之一。读取工具架构的客户端会看到这些允许值,任何其他值都会在工具运行前被拒绝。

各学校的标准有所不同。运行 list_scales 查看使用的确切标准表,并告知你的 AI:如果你所在学校的分数界限不同,也请说明。

英国和澳大利亚的两种标准会将学位等级或字母等级转换为绩点,以便 GPA 工具汇总你的成绩。英国标准表中,一等为 4.0,2:1 为 3.3,2:2 为 2.7,三等为 2.0。英国学位通常以等级而非 GPA 的形式报告,因此这些绩点仅用于比较和规划,并非官方数字。在字母等级字段中传入学位等级 1st、2:1、2:2 或 3rd,也可以传入百分比,由服务为你确定对应等级。weighted-5.0 标准表是简单的映射,并非某所学校的官方标准表:它沿用 us4 的分数界限,并将 F 以上的每个字母等级提高 1 分,因此 A 为 5.0。如果你所在学校采用 5.0 为最高分的加权 GPA,请选择此标准。

常见问题

CGPA 和 SGPA 有什么区别?

SGPA 是一个学期的 GPA,也就是你所通过课程的 GPA。CGPA 是你已完成的所有学期的累计 GPA。calculate_gpa 会计算你所通过课程的学期 GPA。添加你之前的 GPA 和学分作为 prior_gpa 和 prior_credits,工具也会计算累计 GPA。

可以把上学期的 GPA 也算进去吗?

可以。调用 calculate_gpa 时,传入之前的 GPA 作为 prior_gpa、之前的学分作为 prior_credits,以及本学期的课程。工具会将它们合并计算累计 GPA。两个参数要一起传入。只传其中一个会导致错误,工具会指出缺少哪个参数,而不会悄悄漏掉之前的学期。

可以给 AP 课程更高的权重吗?

可以。在 calculate_gpa 的课程中传入 credit_multiplier,例如,AP 课程按学分的 1.1 倍计算时传入 1.1。普通的 term_gpa 保持不变,结果还会增加应用权重系数后的 weighted_gpa 和加权学分。各校规定不同,请确认你的学校使用哪种权重系数。加权 GPA 只涵盖本次调用中的课程,而累计 GPA 仍使用普通学分计算。

如果学校采用 4.3 制呢?

使用 us4plus 量表。它是在 A+ 按 4.3 计算的 us4 量表。调用 calculate_gpa、convert_grade 或 target_gpa_planner 时,传入 scale "us4plus"。运行 list_scales 查看完整表格。

需要考多少分才能及格?

这取决于你的学校和专业。在内置的 us4 量表中,D 对应 63% 至 66%,通常是最低及格等级,但很多专业要求达到 C 或更高等级。使用 needed_on_final 计算期末考试需要的分数,或使用 target_gpa_planner 规划累计 GPA。实际及格线请查阅学校手册。

可以指定字母等级,而不是百分比吗?

可以。向 needed_on_final 传入 target_letter,例如 target_letter "B+",工具会从量表中查找相应的分数线。对于英国学位等级(例如 2:1),传入 scale "uk-classification"。你也可以同时传入 target_percent,工具会以两者中较高的目标为准进行计算。

课程各部分的权重加起来必须是 100 吗?

不必。weighted_grade 中的每个权重都是整个课程的百分比,因此可以只传入你已知的部分。如果你传入占 20% 的测验和占 30% 的实验,并分别取得 85 分和 70 分,工具会显示你目前的成绩是 76%,已计入课程总分 100 分中的 38 分;如果剩余部分全部得 0 分,最终成绩就是 38%;如果剩余部分全部得 100 分,最终成绩就是 88%。课程还有另外 50% 尚未完成。权重总和超过 100 会导致错误,因为课程总分为 100。

脚本可以直接读取数字,而不必解析句子吗?

可以。每个工具都有输出架构,并会将数字作为字段与文本一同返回,因此脚本可以直接读取 term_gpa 或 needed_percent,而不必从句子中提取。文本回答与以往相同。

对比

选项需要登录或访问学校系统可离线运行侧重点适用场景
GPA Calculator MCP(此服务)否是仅计算数值,包括 GPA、CGPA、SGPA、加权成绩、目标和换算。你已有数据,或想制定计划,只需要计算结果。
LMS MCP 服务(如 Brightspace、Canvas、Moodle、Google Classroom)通常需要,会连接学校系统通常不支持从学习系统获取成绩、截止日期和课程数据。部分服务包含目标成绩计算器。你想直接从课程中获取数据,而不是手动输入数值。

对于只想知道结果的学生,专注于计算且可离线运行的计算器无需登录,也无需连接学校服务,并且只处理算术计算。如果你已经从 LMS 获取成绩,也可以将这些数据传给此计算器。

搭配 Brightspace 或 Canvas MCP 使用

如果你已经从学习系统中提取成绩,就可以将成绩与此计算器结合使用。Brightspace MCP 和 Canvas MCP 可以从你的课程网站获取成绩。然后,你可以让此服务计算 GPA,或算出期末考试需要考多少分。

  • 使用 Brightspace MCP 提取成绩,然后根据它提供的分数调用 calculate_gpa 或 needed_on_final。
  • 使用 Canvas MCP 提取成绩,然后根据它提供的分数调用 calculate_gpa 或 needed_on_final。

两者均免费且开源。链接见下方列表。

Node 版本

这里有两个最低版本要求,而且它们并不相同。

你要做的事Node.js
运行已发布的服务20 或更高版本
构建和测试克隆项目22 和 24 发布系列中的 22.12 或更高版本,或 26 及更高版本

服务本身可以在 Node.js 20 上正常运行,这也是 package.json 中 engines 声明的版本。测试运行器需要更新的 Node.js,因此开发最低版本要求写在同一文件的 devEngines 中。npm 会在安装、运行和测试之前检查 devEngines,因此使用 Node.js 20 的克隆项目会收到清晰的提示,而不会在测试套件运行到一半时出现奇怪的故障。特意排除了 23 和 25 发布系列,因为测试运行器无法在这些版本上运行。

这两个版本号都写在 package.json 中,tests/node-version.test.ts 中的测试会确保它们与 README 以及测试运行器要求的版本范围保持一致。

开发

npm install
npm run build
npm test

测试会通过真实的 MCP 客户端调用每个工具,因此不需要账号或网络。由于测试运行器的要求,测试需要使用上方 Node 版本部分所述的较新 Node.js。

更多免费的学生 MCP 服务

它们全部免费、开源,并且在访问你的账号时均为只读。请在 brightspacemcp.com/more-mcps 查看完整列表。

服务功能
Brightspace MCP面向 AI 的 D2L Brightspace。包含实际提交状态的截止日期、成绩、目标成绩计算器和课程文件。
Canvas MCP面向 AI 的 Canvas LMS,只读。包含截止日期、缺交作业、成绩和公告。
Moodle MCP面向 AI 的 Moodle,只读。包含截止日期、逾期作业、成绩和公告。
Google Classroom MCP面向 AI 的 Google Classroom,只读。包含待办事项、截止日期、缺交作业和成绩。
Citations MCP根据 DOI、ISBN 或手动输入的详细信息生成 APA、MLA 和 Chicago 引用。无需账号。
Study Planner MCP考试学习计划、间隔重复日期、番茄钟计划和作业里程碑。支持离线使用。
Paper Finder MCP通过 OpenAlex 搜索学术论文、查找开放获取版本和相关研究。无需密钥。

许可证

MIT

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。