scicompute について
scicomputeは、名前付きテンソルを使って行列演算やベクトル演算を行う、ローカル実行の科学計算サーバーです。TypeScriptで実装され、インプロセスのデータストアに加え、CLIとMCPサーバーを備えています。
主な機能
- 01インプロセスの名前付きテンソル保存
- 02行列の加算・減算・乗算
- 03転置・行列式・ランク・逆行列
- 04ベクトルの内積・外積・射影
- 05CLIとstdio MCPサーバー
活用シーン
- 01保存したテンソルを使った行列計算
- 02名前付き入力によるベクトル演算
- 03ローカル科学計算のMCPクライアントへの公開
MCP 対応
stdio MCPサーバーは、テンソル保存、線形代数、ベクトル演算の14種類のツールを公開します。テンソルデータは1つのMCPセッション内でツール呼び出しをまたいで保持されます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
14掲載時のツール一覧 · 1 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| name | string | はい | 新しいテンソルの保存名。 |
| shape | array | はい | テンソルの次元。正の整数を要素とする空でないリストを指定します。 |
| values | array | はい | 行優先順序の平坦な有限数値リスト。長さは形状の各次元の積と一致する必要があります。 |
詳細
scicompute
scicompute は、名前付きのプロセス内テンソルストアという1つの アイデアを軸に構築された科学計算サーバーです。名前を付けてテンソルを作成し、 その名前を指定して行列代数やベクトル演算を実行します。すべての計算は純粋な TypeScript でローカルに行われます。 ネットワークも、外部の数学ライブラリも必要ありません。1つのバイナリで、 コマンドラインインターフェースと stdio MCP サーバーの両方を提供します。
このビルドには、ドキュメントに記載されているツールセットのうち、ラベル付きの コアサブセットが含まれています。 テンソルストレージ、線形代数、ベクトル演算(14 ツール)です。 ドキュメントに記載された拡張ツールセットに含まれる固有値分解/SVD/QR 分解、 ベクトル解析ツール、基底変換、プロット機能は含まれていません。 除外項目の全一覧についてはビルドレポートをご覧ください。
インストール
npx @reneturcios/scicompute create-tensor T 2,2 1,2,3,4
または、コンテナイメージを実行します。
docker run -i ghcr.io/cloudcorprecords/scicompute
コンテナはデフォルトで MCP サーバーとして起動します(以下を参照)。 CLI として使うには、CLI 引数を渡してください。
CLI
scicompute create-tensor A 2,2 4,7,2,6
scicompute view-tensor A
scicompute determinant A
scicompute --version
ストアはプロセス内にあるため、CLI を1回実行した場合、テンソルはその実行中のみ保持されます。
複数のテンソルに対する一連の操作は、ストアがツール呼び出しをまたいで保持される1つの MCP セッションで行います。
終了コード:成功時は 0、計算エラー(形状の不一致や特異行列など)の場合は 1、使用方法のエラーの場合は 2 です。
サブコマンド:create-tensor、view-tensor、delete-tensor、
add、subtract、multiply、scale(保存済みの行列を変更しない場合は
--no-in-place)、transpose、determinant、rank、
inverse、dot、cross、project、mcp。
MCP サーバー
npx -y @reneturcios/scicompute mcp
MCP クライアントの設定:
{
"mcpServers": {
"scicompute": {
"command": "npx",
"args": ["-y", "@reneturcios/scicompute", "mcp"]
}
}
}
ツール
| ツール | 入力 | 戻り値 |
|---|---|---|
create_tensor | name、shape、values(すべて必須) | 保存されたテンソル:名前、形状、フラットな値、入れ子のデータ。values の長さは形状の積と一致する必要があります。 |
view_tensor | name(必須) | その名前で保存されているテンソル。 |
delete_tensor | name(必須) | テンソルが削除されたことを示す確認。 |
add_matrices | a、b(必須)、result(任意) | 要素ごとの和の行列。result が指定されている場合は、その名前で保存されます。 |
subtract_matrices | a、b(必須)、result(任意) | 要素ごとの差の行列。 |
multiply_matrices | a、b(必須)、result(任意) | 行列積。 |
scale_matrix | name、factor(必須)、in_place(任意) | スケーリングされた行列。デフォルトではその場で変更されます。in_place が false の場合、保存済みの行列は変更されません。 |
transpose | name(必須)、result(任意) | 転置された行列。 |
determinant | name(必須) | 正方行列の行列式。 |
rank | name(必須) | 行階段形への変換で求めた行列の階数。 |
matrix_inverse | name(必須)、result(任意) | 正則な正方行列の逆行列。 |
vector_dot_product | a、b(必須) | 保存されている2つのベクトルの内積。 |
vector_cross_product | a、b(必須) | 保存されている2つの3次元ベクトルの外積。 |
vector_project | a、b(必須) | ベクトル a のベクトル b への射影。 |
代数演算とベクトル演算のオペランドには、生データではなくテンソル名を指定します。 行列は要素が2つの形状、ベクトルは要素が1つの形状です。形状の不一致、 テンソルの欠落、正方でない行列に対する行列式/逆行列の要求、特異行列の逆行列、 ゼロベクトルへの射影は、いずれも暗黙にゼロを返すのではなくエラーになります。
開発
npm install
npm run build # tsc -> dist/
npm test # node test runner over test/*.test.ts, no network
npm run dev # run the CLI from source via tsx
ライセンス
MIT — LICENSE をご覧ください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。