关于 stem-calc-student-mcp
面向化学和物理作业的开源 MCP 服务,用代码执行常见计算,结果可重复。它可离线运行,并在不支持的计算或元素符号上明确报错。
主要功能
- 01计算化学式摩尔质量
- 02配平化学方程式
- 03转换克、摩尔和粒子数
- 04转换长度、质量、时间等单位
- 05按有效数字位数舍入
适用场景
- 01计算化合物的摩尔质量
- 02检查化学方程式是否配平
- 03在克、摩尔和粒子数之间换算
- 04进行单位换算并按有效数字舍入
MCP 相关
作为 MCP 服务向客户端提供五种只读计算工具:摩尔质量、方程式配平、化学计量、单位换算和有效数字舍入。计算在本机完成,无需网络。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
5收录的工具列表 · 更新于 1 天前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| formula | string | 是 | 化学式,例如 H2O、Ca(OH)2 或 CuSO4.5H2O。每个元素的首字母需大写。 |
详细介绍
STEM Calc MCP
STEM Calc MCP 是一款免费、开源的化学和物理作业 MCP 服务,以 stem-calc-student-mcp 的名称发布在 npm 上。它可以计算摩尔质量、配平化学方程式、在克、摩尔和粒子数之间换算、转换单位,并将答案舍入到正确的有效数字位数。计算由经过测试的代码完成,因此每次结果都相同,而不是模型猜测的答案。
可将它与 Claude Desktop、Claude Code、Cursor、VS Code、Windsurf,以及任何可运行本地 MCP 服务的其他应用搭配使用。它在你的计算机上运行,无需互联网、账户或 API 密钥。
试试这些提示词
- “五水硫酸铜 CuSO4.5H2O 的摩尔质量是多少?”
- “配平这个方程式:C3H8 + O2 -> CO2 + H2O”
- “36 克水是多少摩尔?”
- “将 2.5 公里换算成英尺,然后舍入到 3 位有效数字。”
安装
你需要 Node.js 20 或更高版本。无需安装其他内容。
npx -y stem-calc-student-mcp
Claude Desktop
将以下内容添加到 claude_desktop_config.json,然后重启应用:
{
"mcpServers": {
"stem-calc": {
"command": "npx",
"args": ["-y", "stem-calc-student-mcp"]
}
}
}
Claude Code
claude mcp add stem-calc -- npx -y stem-calc-student-mcp
Cursor
将与 Claude Desktop 相同的代码块添加到 .cursor/mcp.json。
VS Code
VS Code 使用 servers 键,而不是 mcpServers。将以下内容添加到 .vscode/mcp.json:
{
"servers": {
"stem-calc": {
"type": "stdio",
"command": "npx",
"args": ["-y", "stem-calc-student-mcp"]
}
}
}
工具
这五个工具都只读。它们会计算答案,但不会更改你计算机上的任何内容。
| 工具 | 功能 | 输入 | 示例提示词 |
|---|---|---|---|
molar_mass | 计算化学式的摩尔质量(g/mol),并列出每种元素贡献的质量 | formula,例如 H2O、Ca(OH)2 或 CuSO4.5H2O | “Ca(OH)2 的摩尔质量是多少?” |
balance_equation | 配平化学方程式 | equation,例如 H2 + O2 -> H2O | “配平 C3H8 + O2 -> CO2 + H2O。” |
stoichiometry | 在克、摩尔和粒子数之间换算 | value、from、to(grams、moles 或 particles)以及克换算所需的 formula | “36 克水是多少摩尔?” |
convert_units | 将一个数值从一种单位换算为另一种单位 | value、from、to | “将 2.5 km 换算成英尺。” |
round_sig_figs | 将数字舍入到指定的有效数字位数 | value、sigFigs | “将 123456 舍入到 3 位有效数字。” |
每个工具还会将答案作为字段与文本一同返回,因此读取 JSON 的应用无需从句子中提取数字。
它掌握的内容
- 化学式。 每个元素的首字母要大写。支持圆括号和方括号,因此
Fe2(SO4)3和K3[Fe(CN)6]都可以,也支持用点号表示的水合物,例如CuSO4.5H2O。它掌握从氢到铀的 56 种常见元素。遇到不认识的元素符号时,会明确报错,绝不会猜测。 - 单位。 长度:
m、km、cm、mm、in、ft。质量:g、kg、mg、lb。时间:s、min、h。体积:L、mL、m^3。能量:J、kJ、cal、kcal。温度:K、C、F。它不会在不同类型的单位之间进行换算,因此米换算成秒会报错。 - 它不做的事情。 它不会判断限量试剂、处理电荷或同位素,也不会配平无解的反应。遇到无法回答的问题时,它会明确说明。
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
测试会调用工具使用的同一组函数,并检查 README、llms.txt、glama.json 和 package 文件是否与 src/tools.ts 中的工具保持一致。
许可证
MIT
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。