mcpField
S
scicompute

scicompute

本地服务
github.com/CloudCorpRecords科研与教育01 周前更新

关于 scicompute

scicompute 是一款本地科学计算服务,可通过命名张量执行矩阵代数和向量运算。它以 TypeScript 实现,使用进程内存储,并提供 CLI 和 MCP 服务端。

主要功能

  1. 01进程内命名张量存储
  2. 02矩阵加减与乘法
  3. 03转置、行列式、秩和逆矩阵
  4. 04向量点积、叉积与投影
  5. 05CLI 和 stdio MCP 服务端

适用场景

  1. 01对已存储张量执行矩阵计算
  2. 02使用命名输入进行向量运算
  3. 03向 MCP 客户端提供本地科学计算

MCP 相关

stdio MCP 服务端提供 14 个用于张量存储、线性代数和向量运算的工具。张量数据会在同一 MCP 会话的多次工具调用间保留。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"cloudcorprecords-scicompute": {
"command": "npx",
"args": [
"-y",
"@reneturcios/scicompute"
]
}
}
}
启动命令npx -y @reneturcios/scicompute

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npm@reneturcios/scicompute0.1.0
ocighcr.io/cloudcorprecords/scicompute:0.1.0

工具

14

收录的工具列表 · 更新于 1 周前

参数类型必填说明
namestring是用于存储新张量的名称。
shapearray是张量维度,必须是非空的正整数组成的列表。
valuesarray是按行优先顺序排列的扁平有限数值列表,长度等于各形状维度的乘积。

详细介绍

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_tensorname、shape、values(均为必填)存储的张量:名称、形状、扁平值和嵌套数据。values 的长度必须等于形状各维度乘积。
view_tensorname(必填)该名称对应的存储张量。
delete_tensorname(必填)确认张量已删除。
add_matricesa、b(必填),result(可选)逐元素求和的矩阵;若提供 result,则将结果存储在该名称下。
subtract_matricesa、b(必填),result(可选)逐元素相减得到的矩阵。
multiply_matricesa、b(必填),result(可选)矩阵乘积。
scale_matrixname、factor(必填),in_place(可选)缩放后的矩阵。默认原地操作;当 in_place 为 false 时,存储的矩阵保持不变。
transposename(必填),result(可选)转置后的矩阵。
determinantname(必填)方阵的行列式。
rankname(必填)通过行阶梯形化简求得的矩阵秩。
matrix_inversename(必填),result(可选)方形非奇异矩阵的逆矩阵。
vector_dot_producta、b(必填)两个存储向量的点积。
vector_cross_producta、b(必填)两个存储 3 维向量的叉积。
vector_projecta、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。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。