关于 gpa-calculator-mcp
gpa-calculator-mcp 是面向学生的开源 MCP 服务,用于规划成绩并按内置评分标准计算 GPA。其经过测试的工具返回结构化结果,可在本地离线运行且无需登录。
主要功能
- 01计算学期、累计及加权 GPA
- 02转换字母成绩与百分比
- 03计算期末考试所需分数
- 04规划目标 GPA 和课程成绩
- 05计算加权课程成绩
- 06列出内置评分标准
适用场景
- 01根据课程学分和成绩估算学期 GPA
- 02计算达到目标所需的期末分数
- 03规划达到目标累计 GPA 所需的成绩
MCP 相关
MCP 服务向兼容的 AI 应用提供七种成绩计算与规划工具,并通过结构化输出模式返回结果。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
6收录的工具列表 · 更新于 1 天前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| scale | enum | 否 | 成绩等级标准。使用 list_scales 查看表格。如不确定,请询问学生所在学校使用哪种标准。us4 | us4plus | ontario-college |
| courses | array | 是 | 要纳入计算的课程。 |
| prior_gpa | number | 否 | 之前学期的 GPA(如需合并)。 |
| prior_credits | number | 否 | 之前学期的学分(如需合并)。 |
详细介绍
GPA 计算器 MCP
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。
完成上述任意一种配置后,试试下面的提示词。
试试这三个提示词
-
期末考试要考多少分?
“我的成绩是 85%,期末考试占课程总成绩的 40%。我要在期末考试中考多少分才能最终拿到 B+?”
模型会调用
needed_on_final,并传入current_percent85、final_weight_percent40 和target_letter"B+",使用us4评分标准。在该标准下,B+ 的起始分数为 87%,因此你需要在期末考试中考到 90% 才能达到要求。你也可以改为指定百分比目标,工具会进行相同的计算。例如,传入
current_percent74、final_weight_percent40 和target_percent80 时,课程中其余 60% 的成绩已确定,因此你需要在期末考试中考到 89% 才能达到 80%。 -
我的 GPA 是多少?
“如果我在 3 个学分的课程中拿到 A,在 4 个学分的课程中拿到 B+,在 3 个学分的课程中拿到 C,我的 GPA 是多少?”
calculate_gpa会根据us4评分标准,返回 10 个学分的 GPA:3.12,并附上各门课程的明细。 -
转换成绩
“将 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_gpa | courses(name、credits、grade、credit_multiplier)、scale、prior_gpa、prior_credits | 根据课程列表及其学分和成绩计算 GPA;每门课程可选择使用 credit_multiplier 加权,也可选择结合之前的 GPA 和学分计算累计 GPA。请同时传入 prior_gpa 和 prior_credits,或两者都不传 |
convert_grade | grade、scale | 将字母成绩或百分制成绩转换为对应的字母成绩、百分比范围和绩点 |
needed_on_final | current_percent、final_weight_percent、target_percent、target_letter、scale | 计算期末考试需要取得的分数才能达到目标,并说明目标是否已经稳拿或遥不可及。目标可以用百分比或字母成绩表示,例如 B+ 或 2:1;分数线取自评分标准表 |
weighted_grade | parts(name、weight、score) | 根据加权部分计算目前的成绩,以及可能的最低和最高最终成绩;尚未评分的部分请省略 score。每个权重都是整个课程的百分比,因此未列出的部分仍计入待完成的课程内容 |
target_gpa_planner | current_gpa、credits_completed、target_gpa、upcoming_credits、scale | 规划后续学分所需的 GPA,以达到目标累计 GPA |
plan_courses | current_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
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。