关于 scicompute
scicompute 是一款本地科学计算服务,可通过命名张量执行矩阵代数和向量运算。它以 TypeScript 实现,使用进程内存储,并提供 CLI 和 MCP 服务端。
主要功能
- 01进程内命名张量存储
- 02矩阵加减与乘法
- 03转置、行列式、秩和逆矩阵
- 04向量点积、叉积与投影
- 05CLI 和 stdio MCP 服务端
适用场景
- 01对已存储张量执行矩阵计算
- 02使用命名输入进行向量运算
- 03向 MCP 客户端提供本地科学计算
MCP 相关
stdio MCP 服务端提供 14 个用于张量存储、线性代数和向量运算的工具。张量数据会在同一 MCP 会话的多次工具调用间保留。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
14收录的工具列表 · 更新于 1 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| name | string | 是 | 用于存储新张量的名称。 |
| shape | array | 是 | 张量维度,必须是非空的正整数组成的列表。 |
| values | array | 是 | 按行优先顺序排列的扁平有限数值列表,长度等于各形状维度的乘积。 |
详细介绍
scicompute
scicompute 是一个科学计算服务,围绕一个理念构建:具名的进程内张量存储。你可以为张量命名,然后通过引用这些名称来执行矩阵代数和向量运算。所有计算都在本地使用纯 TypeScript 完成——无需网络或外部数学库。一个二进制文件同时提供命令行界面和 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 调用只会在自身生命周期内保留张量;涉及多个张量的链式操作应放在同一个 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(必填) | 两个存储向量的点积。 |
vector_cross_product | a、b(必填) | 两个存储 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 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。