stem-calc-student-mcp について
化学や物理の課題向けのオープンソース MCP サーバーで、コードによる再現可能な計算を行います。オフラインで動作し、対応できない計算や元素記号は推測せずエラーとして示します。
主な機能
- 01化学式のモル質量を計算
- 02化学反応式を係数で平衡化
- 03グラム、モル、粒子数を換算
- 04長さ、質量、時間などの単位を変換
- 05有効数字に合わせて丸め
活用シーン
- 01化合物のモル質量を計算
- 02反応式の係数を確認
- 03グラム、モル、粒子数を相互換算
- 04単位変換後に有効数字で丸める
MCP 対応
MCP サーバーとして、モル質量、反応式の平衡化、化学量論、単位変換、有効数字の丸めを行う5つの読み取り専用ツールを提供します。計算はネット接続なしでローカルに実行されます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
5掲載時のツール一覧 · 1 日前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| formula | string | はい | H2O、Ca(OH)2、CuSO4.5H2O などの化学式。各元素記号の最初の文字は大文字にしてください。 |
詳細
STEM Calc MCP
STEM Calc MCP は、化学と物理の宿題向けの無料のオープンソースMCPサーバーです。npm では stem-calc-student-mcp として公開されています。モル質量の計算、化学反応式の係数合わせ、グラム・モル・粒子数間の換算、単位換算、有効数字の桁数に合わせた数値の丸めを行います。計算にはテスト済みのコードを使うため、モデルの推測ではなく、常に同じ答えが得られます。
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 では mcpServers ではなく servers キーを使います。次の内容を .vscode/mcp.json に追加してください。
{
"servers": {
"stem-calc": {
"type": "stdio",
"command": "npx",
"args": ["-y", "stem-calc-student-mcp"]
}
}
}
ツール
5 つのツールはすべて読み取り専用です。答えを計算するだけで、コンピューター上のものを変更することはありません。
| ツール | 機能 | 入力 | プロンプトの例 |
|---|---|---|---|
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 のバージョン
ここには 2 つの基準があり、それぞれ異なるバージョンです。
| 作業内容 | 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、パッケージファイルと、src/tools.ts のツールとの整合性を確認します。
ライセンス
MIT
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。