sentaurus-mcp
This server provides MCP tools to manage Sentaurus simulation experiments through persistent records, asynchronous submission, log reading, and artifact listing.
List experiments: Paginated read-only listing of persistent experiments.
Get experiment details: Query execution state, process IDs, timing, manifest, and validation label by run ID.
Create experiment: Prepare input files for staged simulation without running them; tool commands come from operator configuration.
Submit experiment: Launch a prepared experiment asynchronously; duplicate submissions do not restart it.
Read logs: Read bounded log increments with byte-based offset and configurable stage index.
List artifacts: Index native output files without loading large TDR files into the model context.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@sentaurus-mcpCreate a new experiment from my input file and submit it for simulation."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Sentaurus MCP|让 LLM 访问 Sentaurus
中文 | English
目录
Related MCP server: COMSOL MCP Server
这是什么
Sentaurus MCP 让 AI 助手通过工具读取实验记录和日志,并提交 Sentaurus 仿真脚本。 你用自然语言提出任务,助手调用 MCP;真正计算的是 Sentaurus。
Sentaurus 通常装在服务器上,AI 助手通常在你的电脑上。因此需要先登录服务器,再配置服务器上的 Sentaurus 运行环境。
名称 | 在这里负责什么 | 在哪里运行 |
AI 助手/LLM 客户端 | 理解你的要求,调用工具,解释返回的结果 | 通常在你的电脑上 |
SSH | 让本机客户端在服务器上启动 MCP 并交换信息 | 连接你的电脑和服务器 |
MCP 接口 | 接收助手的请求,保存实验、查询状态和读取日志 | Sentaurus 所在服务器 |
后台执行器(Worker) | 从队列取出实验,启动 Sentaurus,记录运行状态 | 同一服务器,单独启动并保持运行 |
Sentaurus | 执行结构、网格和器件仿真 | 服务器 |
VNC Viewer | 显示服务器桌面,方便查看 Sentaurus 原生界面 | 你的电脑;当前 MCP 不通过它控制软件 |
目前发布的是第二个测试版 v0.1.0-alpha.2。 Python 包内仍显示 0.1.0,因为发布时尚未同步修改包版本号;不能仅凭这个数字判断代码是否更新。下载第二个测试版或仓库 main 时包含连接向导,最早的 alpha.1 不包含。下面的说明以 main 为准。
公开 MCP 已通过模拟任务测试,真实 Sentaurus 的完整运行流程尚未验收。作者使用 Sentaurus 的科研经历与这个公开工具的验证状态是两回事。本仓库不包含私人工作台或实验数据。
快速开始
只知道服务器端口号和密码?先把这段话发给 LLM
复制下面的指令,发给能访问本机文件、运行命令并配置 MCP 的 AI 助手。普通网页聊天窗口如果没有这些权限,只能指导你操作,不能代你安装。
请帮我安装并连接这个 Sentaurus MCP:
https://github.com/HanKin666/sentaurus-mcp
我是新手,目前只知道服务器端口号和密码,不确定是 VNC 还是 SSH。
请使用仓库 main 分支的最新说明和连接向导,先检查本机是否已安装。
一次只问我当前缺少的必要信息,不要让我先理解全部技术配置。
先问我服务器地址,以及平时用什么软件连接。
如果我只知道端口,不要把它当作服务器地址,也不要猜测 SSH 端口。
密码请让我在本地隐藏输入,不要让我发到对话里。
如果可以读取已有连接配置,请先让我指定具体文件或连接条目;
仅提取服务器地址、端口和用户名,不读取密码或私钥内容。
识别连接方式后,告诉我:
本机安装、服务器连接、后台执行器、Sentaurus 验证分别到了哪一步。
只保存配置或看到远程桌面时,不要说仿真已经可用。
在真正提交仿真前,先说明准备运行的实验和需要的资源。助手能否替你安装,取决于它是否有文件访问和命令执行能力;连接向导本身只收集信息并生成配置。
接下来助手应该怎么问,你怎么回答
助手会问 | 你提供什么 |
“服务器地址是什么?” | 管理员给的 IP/域名;不知道就提供你已保存连接的地址栏或连接名称,遮住密码 |
“平时用什么软件连接?” | 例如 VNC Viewer、终端或 SSH 客户端;不知道可以直接说不知道 |
“端口是多少?是端口还是显示编号?” | 把已知值告诉助手。像 |
“是否检查这个地址和端口的协议?” | 同意后,向导只读取该地址和端口返回的协议标识,用于判断可能是 SSH 还是 VNC;这一步不会登录服务器 |
“用户名是什么?” | SSH 通常需要 Linux 用户名;有些 VNC 连接只有密码,用户名可暂留空 |
“是否在本地保存连接信息?” | 选择本机保存路径;配置为 |
“已有 SSH 权限吗?” | 有就继续 SSH 配置;只有 VNC 就按下面的限制处理 |
只有“服务器端口号+密码”还不足以确定服务器,至少还需要地址。助手应帮助你找到缺少的信息,而不是反复要求你填写完整技术配置。
如果你只有 VNC
你可以先用向导保存连接信息,继续通过 VNC 查看 Sentaurus。当前 MCP 没有 VNC 自动控制或通过 VNC 自动部署服务器代理的功能;仅有 VNC 密码不能让后台执行器远程接通。
助手应告诉你缺的是哪一项:可用的 SSH 登录方式,或者在服务器本机运行 MCP 客户端的条件。可以把下面这句话发给管理员:
我已有 VNC 远程桌面访问,希望连接 Sentaurus MCP。请确认是否允许 SSH 登录,并提供服务器地址、SSH 端口、Linux 用户名和允许的认证方式;如果不允许 SSH,请确认能否在服务器本机运行 Python MCP 服务及客户端。
想让助手读取已有配置?
先指明具体文件或连接条目,例如:
允许你读取我指定的连接配置文件,提取服务器地址、端口和用户名,
用于设置 Sentaurus MCP。不要读取或输出密码、私钥,不扫描其他目录。
如果格式不支持,请指出还缺哪个字段。这需要助手本身具备文件访问能力。当前向导的 --load 仅支持本向导生成的配置,不自动解析所有 VNC/SSH 客户端配置。不要为此开放整台电脑或整个用户目录的读取权限。
有经验的用户或负责部署的助手,可以继续看手动安装与部署和远程服务器连接。
能做什么
你想完成的事 | 当前支持情况 |
保存输入脚本,建立一个实验 | 支持;记录输入文件指纹,提交前检查文件是否变化 |
提交 SDE、SDevice 或 SVisual 批处理任务 | 已实现调用入口;真实软件命令需在你的安装环境验证 |
同时提交多个实验 | 支持排队和最大并行数量设置;默认一次运行一个 |
查看当前及历史实验 | 支持查询状态、阶段、进程编号和耗时 |
查看求解日志 | 支持增量读取,避免每次传回整份日志 |
查看产生了哪些结果文件 | 支持文件清单;暂不解析 TDR 或自动绘图 |
关闭 AI 客户端后继续计算 | 独立后台执行器正常运行时,任务可继续 |
在 Sentaurus Workbench 中直接添加原生工程或实验 | 尚未实现;当前保存的是批处理目录 |
自动判断收敛、提取击穿电压或优化器件参数 | 尚未实现 |
根据 CPU、内存和许可证自动排满资源 | 尚未实现;目前只限制并行任务数 |
打包下载、取消任务、重启后自动恢复 | 尚未实现 |
实际软件版本
记录日期:2026-09-09。以下是作者当前可核实的软件版本,不是要求使用者安装完全相同的版本,也不代表兼容性验收通过。
软件 | 已记录版本 | 核实范围 |
Sentaurus TCAD | T-2022.03 | 来自科研实验清单;SDE、SDevice、SVisual、Workbench 各自的构建号及补丁号尚未逐一核实 |
Codex 桌面应用 | 26.901.6511.0 | 本机已安装版本 |
Windows | 10.0.19045 | 本机系统构建号 |
RealVNC Viewer | 7.13.1.57 | 本机查看器;远端 VNC 服务端版本待核实 |
Python | 3.12.10,64 位 | 本机 MCP 测试环境 |
MCP Python SDK | 1.30.0 | 已安装的 |
HTTPX / Pydantic | 0.28.1 / 2.13.5 | 本机运行依赖 |
pytest / pip | 8.4.2 / 25.0.1 | 本机测试与安装工具 |
Git | 2.53.0.windows.2 | 本机版本管理工具 |
本项目 | v0.1.0-alpha.2;包元数据为 0.1.0 | GitHub 测试版标签与 Python 包版本不是同一个编号 |
服务器 Linux、服务器 Python、SSH 客户端/服务端构建号、许可证管理器、可选凭据库和实际选用的 LLM 模型版本尚未完整核实,不填猜测值。本机还检测到 VNC Server 6.5.0.41730 和 SangforVNC 7,1,0,2;仅安装这些软件不能证明当前连接使用了它们。
本机还存在旧包名 sentaurus-workbench-mcp==0.1.0,使用者无需安装它。按下文新建虚拟环境即可。
手动安装与部署
这一节供负责部署的助手或熟悉终端的用户使用。第 1~4 步在 Linux 仿真服务器上操作。 第 5 步仅适用于客户端也在该服务器上;如果客户端在自己的电脑上,请改看远程服务器连接。
1. 准备环境
需要:
Python 3.10 或以上版本。
已安装、可正常批处理运行的 Sentaurus 和有效许可证。
一个你有写入权限的数据目录。
支持 MCP 标准输入输出连接的客户端。
本工具不安装 Sentaurus,也不提供许可证。请先确认同一账号可以直接运行你的仿真脚本。
2. 下载并安装
git clone https://github.com/HanKin666/sentaurus-mcp.git
cd sentaurus-mcp
python3 -m venv .venv
source .venv/bin/activate
python -m pip install -e .3. 配置仿真程序和数据目录
复制示例配置:
cp examples/config.example.json config.json修改 config.json。以下路径都是占位示例,必须换成你自己的绝对路径:
{
"root": "/absolute/path/to/experiments",
"max_parallel": 1,
"tools": {
"sde": ["/absolute/path/to/sde", "-e", "-l", "{input}"],
"sdevice": ["/absolute/path/to/sdevice", "{input}"],
"svisual": ["/absolute/path/to/svisual", "-b", "{input}"]
}
}配置项 | 含义 |
| 输入、结果、日志及实验索引的存储位置 |
| 最多同时运行多少个实验;不是每个实验的 CPU 核数 |
| 允许调用的程序及其参数;需要核对本机 Sentaurus 版本 |
| 执行时自动替换为该阶段的输入文件名 |
许可证、运行库等环境变量沿用服务器已有设置。不要把账号、密码或私有配置提交到仓库。
4. 单独启动后台执行器
在一个独立终端中执行,路径替换为实际配置文件位置:
export SENTAURUS_MCP_CONFIG="/absolute/path/to/sentaurus-mcp/config.json"
sentaurus-worker保持这个终端运行。长期使用时,可由服务器的服务管理器管理该进程。
后台执行器负责排队和启动仿真,必须独立于 AI 客户端启动。 不要让客户端在启动 MCP 时顺便启动它,否则客户端退出可能影响后台任务。
5. 连接 AI 客户端
下面是客户端与 MCP 在同一台机器时的通用 JSON 配置示例。具体配置文件位置和外层格式由客户端决定:
{
"mcpServers": {
"sentaurus": {
"command": "/absolute/path/to/sentaurus-mcp/.venv/bin/sentaurus-mcp",
"env": {
"SENTAURUS_MCP_CONFIG": "/absolute/path/to/sentaurus-mcp/config.json",
"SENTAURUS_ENABLE_ACTIONS": "1"
}
}
}
}SENTAURUS_ENABLE_ACTIONS=1:允许建立、提交实验。改为
0或不设置:只允许查询。MCP 和后台执行器必须使用同一个配置文件。
客户端在 Windows、Sentaurus 在 Linux 时,需要配置 SSH 标准输入输出连接,让 MCP 在服务器上运行;不能直接把服务器路径填成 Windows 本地命令。可使用下文的本地配置向导生成连接配置;服务器安装仍需另行完成。
Windows 本地安装时,可执行文件通常位于
.venv/Scripts/sentaurus-mcp.exe;这不代表 Windows 已能运行你的 Sentaurus。
连接成功后,客户端应能发现下表中的 8 个工具。提交前确认后台执行器已经启动。
首次使用:连接诊断与引导
这里有两个不同的操作:配置向导负责询问信息、保存本地配置;环境诊断负责检查程序路径、目录权限以及 Worker 是否在线。两者都不会替你安装或启动服务器上的 Sentaurus。
弹窗或终端问答配置
在自己的电脑上更新安装后运行(将输出路径改到本机合适的数据盘):
python -m pip install -e '.[setup]'
python -m sentaurus_mcp.setup --gui --output connection-local.txt去掉 --gui 则在终端逐项询问。弹窗需要 Python 的 Tk 支持;没有桌面或 Tk 时使用终端模式。--load connection-local.txt --output connection-new.txt 可读取指定的旧配置作为默认值,绝不自动扫描其他程序的配置和密码。
向导询问:VNC/SSH/不确定、主机地址、实际 TCP 端口、用户名(VNC 可留空)、认证方式;SSH 还询问服务器 Python 和 MCP 配置路径,未知可先留空。主机:1 可能是 VNC 显示编号,不自动猜为 TCP 端口。选择“不确定”时,仍需要提供端口;可授权读取该端口握手来识别 SSH 或 VNC,不扫描其他端口,不尝试登录。
配置保存为 UTF-8 .txt(内部为 JSON),包含非密码连接信息、状态以及条件满足时生成的只读 MCP 配置;已有文件不覆盖。密码在本地隐藏输入,可选保存到系统凭据库,文本只存凭据引用。安全凭据库不可用时不会退回明文保存;配置仍含服务器地址等信息,请只保存在自己的电脑上。
当前向导不自动使用保存的密码登录,也不安装服务器代理。 保存配置前还需提供服务器地址。VNC 用户的后续步骤见如果你只有 VNC。SSH 后台认证仍需用户配置密钥/认证代理等方案。已有软件“登录成功”与向导“配置已保存”是不同状态。
已在本地测试参数校验、单端口握手、文本配置保存与读取,以及 VNC 终端问答流程;图形弹窗和各平台真实凭据库仍需用户环境验证。切勿把密码发给助手或填入 MCP 工具调用参数。
更新安装后,可让助手调用 diagnose_environment。即使没有配置,也会返回当前主机的环境、配置、存储权限、执行器心跳和程序路径状态;不创建实验目录,不启动仿真,也不验证许可证。
只有 VNC 时,调用 get_connection_guide(mode="vnc") 获取限制说明。有 SSH 时,提供主机、用户名、端口、服务器 Python 和配置路径,生成只读客户端配置。该工具不连接、不自动安装,也不接收密码。
本机终端示例(替换占位内容):
python -m sentaurus_mcp.doctor
python -m sentaurus_mcp.doctor --mode vnc
python -m sentaurus_mcp.doctor --mode ssh --host server.example.com --user your_user --port 22 --remote-python /absolute/path/.venv/bin/python --remote-config /absolute/path/config.json最后一条默认仅生成配置;加 --probe 才通过 SSH 执行远程只读诊断。服务器须先安装包含诊断模块的版本。连接检查最多等待 30 秒,不会停止仿真,也不会部署或启动执行器。请先自行准备认证、核对主机密钥。当前向导支持域名和 IPv4,暂不支持 IPv6。
收到远程诊断也不等于许可证有效;未收到时明确标为失败或未检查。部署步骤见手动安装与部署。
远程服务器连接
本机运行 MCP 不需要服务器登录信息;从自己的电脑连接远程服务器时,需要先配置 SSH。 本地连接向导见上文;没有接收密码的 MCP 工具。
需要准备哪些信息
信息 | 从哪里获取、填在哪里 |
服务器地址 | 向管理员获取 IP 或域名,替换示例中的 |
SSH 端口 | 向管理员确认,替换示例中的 |
Linux 用户名 | 替换 |
登录认证 | 交互登录可用密码;后台连接建议使用管理员允许的 SSH 密钥或其他非交互认证 |
MCP 与配置文件路径 | 填服务器上的绝对路径,必须与独立后台执行器使用的配置一致 |
Sentaurus 运行环境 | 在服务器配置软件、许可证及必要环境变量 |
SSH 用于执行程序,VNC 用于查看远程桌面。 VNC 的显示编号、端口和密码不能当作 SSH 配置;能够打开 VNC 不代表已具备 SSH 登录或仿真权限。
先由你在本地终端测试登录
以下主机名和用户名均为占位内容:
ssh -p 22 your_user@server.example.com首次连接时,向管理员核对服务器主机密钥指纹,再确认保存。若使用密码,由你在 SSH 提示中输入;终端不显示密码字符是正常现象。不要把密码或私钥内容放进 README、客户端配置、命令参数或发给 LLM。
一次密码登录成功,不代表 MCP 后台连接可以自动登录。 多数客户端后台启动 SSH 时没有交互终端。下面的配置明确启用非交互模式,未准备好认证时会直接失败,不会弹出密码框。密钥有口令时,可由你通过本机 SSH 认证代理加载;也可由管理员配置组织允许的认证方案。若只允许逐次输入密码,需要客户端提供安全交互认证能力,当前项目没有实现这一功能。
配置客户端通过 SSH 启动服务器上的 MCP
先按前文在服务器安装 MCP、配置 Sentaurus,并独立启动后台执行器。然后在本机客户端中填写:
{
"mcpServers": {
"sentaurus": {
"command": "ssh",
"args": [
"-T",
"-o",
"BatchMode=yes",
"-o",
"StrictHostKeyChecking=yes",
"-p",
"22",
"your_user@server.example.com",
"env",
"SENTAURUS_MCP_CONFIG=/absolute/path/to/sentaurus-mcp/config.json",
"SENTAURUS_ENABLE_ACTIONS=0",
"/absolute/path/to/sentaurus-mcp/.venv/bin/sentaurus-mcp"
]
}
}
}这里的 ssh 是本机的 OpenSSH 客户端;如果不在搜索路径中,改为实际可执行文件路径。后面的 MCP 和配置文件路径都是服务器端路径。示例路径不含空格;远程路径含空格时需正确处理远端 shell 引号,不能直接照搬。
-T不分配伪终端,让 MCP 使用标准输入输出通信。BatchMode=yes禁止交互认证提示;请提前准备认证。StrictHostKeyChecking=yes要求主机密钥已核验并保存。默认
SENTAURUS_ENABLE_ACTIONS=0,先只读检查;需要建立、提交实验时改为1。需要指定密钥时,可在主机名前添加
"-i", "/absolute/local/path/to/private_key",或使用本机 SSH 配置。这里只填写文件路径,不填写密钥内容。非交互连接未必加载交互登录的环境配置。服务器后台执行器必须具备 Sentaurus 的许可证和运行库环境;MCP 的标准输出也不能混入登录脚本的提示文字。
连接后先让助手列出实验,再测试授权范围内的提交。发现 8 个 MCP 工具只证明接口可连接,不证明 Sentaurus 已运行或仿真已通过验证。
常见错误:Permission denied 通常指认证问题;连接拒绝或超时需检查地址、SSH 端口和网络;主机密钥不匹配需向管理员核实,不能直接关闭检查;“执行器不在线”需检查后台进程和配置路径。
这些是连接配置说明,尚未作为本项目的远程端到端测试结果。参数依据:OpenSSH 命令说明、SSH 配置说明。
怎么向助手提问
完成配置并提供你已检查的输入脚本后,可以这样说:
用我提供的 SDevice 输入文件建立实验。先保存输入,告诉我实验编号,暂时不要提交。
提交刚才的实验。随后查询状态,告诉我当前阶段和已用时间。
读取这个实验新增的日志。把日志中的报错与可能原因分开说明,不要自动重跑。
列出这个实验生成的文件,告诉我哪些是日志、哪些是原生结果。
这些是使用方式示例,不是已经完成的仿真结果。助手需要拿到完整脚本;本工具不会自动补齐物理模型,也不会自动认定结果正确。
工具名称 | 用途 |
| 保存文本输入和阶段配置,不启动计算 |
| 将已准备实验加入队列;重复提交不会重新启动同一实验 |
| 分页列出历史实验 |
| 查询状态、输入清单、进程编号及耗时 |
| 按字节位置读取一段日志 |
| 列出结果文件,不把大型 TDR 文件塞进对话 |
| 只读检查当前主机环境与执行器状态 |
| 生成连接说明或 SSH 配置,不执行登录 |
输入格式:files 是“文件名 → 文本内容”的字典;stages 是阶段列表,每项包含 tool 和 input_file。工具名必须出现在配置的 tools 中,输入文件必须已提供。当前每个实验的文本输入合计上限为 2 MB。
能力说明也可通过资源 sentaurus://capabilities 读取。
运行原理
一次实验的流程是:保存脚本 → 提交到队列 → Worker 启动 Sentaurus → 查询状态、读取日志和列出结果文件。提交后助手会拿到实验编号,可以之后用这个编号继续查询,无需让同一次对话请求一直等待仿真结束。
实验按“项目 / 实验编号”保存。下面是目录示意,结果文件名由你的脚本决定:
数据目录/
├── experiments.sqlite3 # 实验索引和运行状态
└── 项目名称/
└── 实验编号/
├── 输入脚本
├── manifest.json # 输入指纹和阶段配置
├── runner.log # 执行器日志
├── stage-0.log # 第一阶段日志
├── state.json # 正常结束流程写出的最终状态
└── 仿真产生的结果文件同一项目可以保存多个实验,但当前目录不是 Workbench 原生工程。数据库中的运行状态可持续查询,输入和结果文件也独立保留。
常见问题
显示“完成”,就代表仿真正确吗?
不代表。completed 只表示各阶段程序正常退出。数值收敛、物理合理性和指标验收仍需检查,默认验证标签为“未审查”。
对话超时会停止仿真吗?
本工具没有固定的仿真运行时限。独立后台执行器正常工作时,MCP 客户端正常退出不会主动停止仿真。断线后先查询原实验,避免重复建立任务。
服务器关机、进程崩溃或外部调度器终止仍会影响任务;本版本尚不能自动恢复这些情况。
为什么提交不了?
先检查后台执行器是否在线、两个进程是否使用同一配置、是否启用了写入操作,以及输入文件是否在建立实验后被修改。修改过的输入会被指纹检查拒绝,应建立新的实验记录。
为什么一直显示运行中?
先查真实进程和日志。异常退出后状态可能没有及时写回,本版本尚未实现自动校正。不要直接清空运行状态来绕过并发限制。
可以直接读取 TDR 画图吗?
暂时只能列出文件。TDR 解析、原生切片图、曲线提取和打包导出还没有实现。
记录了哪些时间和资源?
记录阶段耗时、总运行耗时、进程编号、操作系统标识和主机可见 CPU 数量。主机 CPU 数量不是本实验实际使用的核数;进程内存峰值、完整硬件配置和优化到达目标的总耗时尚未完整采集。
可以给任意人使用吗?
输入脚本会以运行账号的权限执行,本工具不是脚本沙箱。应只连接可信客户端,并在操作系统或调度器中设置资源和账号权限。
开发与验证
安装测试依赖并运行:
python -m pip install -e '.[test]'
python -m pytest -q已记录的本机验证:Windows、Python 3.12,12 项测试通过(第二个测试版本),覆盖真实 MCP 协议连接、客户端退出后后台任务继续、重复提交、输入校验和并发数量限制。
测试使用短小的 Python 模拟任务,没有执行真实 Sentaurus 仿真。已提供 Linux 自动测试配置,其运行状态以仓库“操作(Actions)”页面为准。详见验证记录。
开发背景
本项目源于使用 Codex 辅助开展 Sentaurus TCAD 科研的实践。开发工作结合了通过 VNC Viewer 查看远程 Sentaurus 原生界面、脚本执行、日志分析和结果核对,并逐步将实验管理流程整理为可复用的 MCP 接口。
组成 | 在这套工作方式中的作用 |
Codex | 辅助编写与修改脚本、整理实验流程、分析日志及开发工具 |
VNC Viewer | 查看远程 Sentaurus 界面,辅助人工核对结构和运行情况 |
Sentaurus | 执行实际的结构、网格及器件仿真 |
本项目 MCP 与独立后台执行器 | 为 AI 客户端提供实验准备、任务提交、状态查询和日志读取接口,并启动批处理任务 |
当前发布版本通过服务器上的独立后台执行器启动仿真,不依赖 Codex 操作 VNC Viewer;其他支持相应 MCP 连接方式的 AI 客户端也可接入。VNC 图形界面自动操作、SDE 自动交互建模和原生截图不属于当前发布版本的功能。
开发过程中使用的私人科研工作台、服务器配置和器件实验数据不随本仓库发布。上述背景说明不代表当前 MCP 已完成真实 Sentaurus 端到端验证;验证范围以验证记录为准。
参考与许可
说明文档的组织参考了 Playwright MCP 和 MCP Python SDK 的用途介绍、快速开始与分层说明方式。
架构调研参考:Ansys Mechanical MCP、Ansys AEDT MCP、OpenFOAM MCP。本项目独立实现,没有复制这些项目的源代码。
本项目使用官方 MCP Python SDK,版本约束为 >=1.12,<2。
本项目原创代码与文档采用 Apache License 2.0,版权声明:Copyright 2026 HanKin666。第三方依赖遵循各自的许可证。
本许可证不授予 Sentaurus 或其他第三方商业软件的使用权;使用者仍需自行取得相应授权。项目非 Synopsys 官方产品,不包含商业软件、手册或授权文件。
Available Tools
6 toolscreate_experimentC
Prepare input files; each stage specifies tool and input_file. Tool commands come from operator config. Does not run. Native batch folder, not an SWB project.
| Name | Required | Description | Default |
|---|---|---|---|
| files | Yes | ||
| run_id | Yes | ||
| stages | Yes | ||
| project | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses that it does not run and that tool commands come from operator config, but it does not explain side effects like file creation, permissions, reversibility, or what the return value looks like. This is minimal transparency for a tool that likely writes configuration files.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three short sentences, front-loaded with the main action 'Prepare input files.' It is concise and does not waste words, though the final clause about 'Native batch folder, not an SWB project' adds context without being verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with four required parameters including nested objects and no output schema, the description is incomplete. It does not explain the required format for files and stages, the meaning of run_id and project, or what happens after execution. It also lacks guidance on when to use it versus siblings, making it insufficient for an agent to call correctly without additional knowledge.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It only hints that stages contain tool and input_file, but it does not explain project, run_id, or the structure of files. The description adds almost no meaning to the parameters beyond what the schema already shows, leaving most parameter semantics undocumented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action 'Prepare input files' and explains that stages specify tool and input_file, which clarifies the creation/configuration nature. It also distinguishes itself from running tools by explicitly stating 'Does not run.' However, the description does not explicitly say it creates an experiment record, which might be ambiguous given the tool name, but it is clear enough for a setup step.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context: it prepares input files and does not run, so it is used before submit_experiment. It also mentions 'Native batch folder, not an SWB project,' which hints at environment suitability. However, it does not explicitly name alternative tools or provide when-not-to-use conditions, leaving some inference required.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_experimentC
Read execution state, process IDs, timing, manifest and validation label.
| Name | Required | Description | Default |
|---|---|---|---|
| run_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must carry the full burden of behavioral disclosure. It only states what data is read, but does not mention side effects (though 'Read' implies non-mutating), authentication requirements, error behavior if run_id is invalid, or any constraints. It is minimal and does not disclose potential limitations or security considerations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence that front-loads the action ('Read') and lists the specific data items. There is no fluff or redundancy; every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the low complexity (one parameter, no output schema), the description partially covers what is returned (execution state, process IDs, timing, manifest, validation label) but omits critical context such as whether it returns a single object or list, error handling, and any required permissions. It is not fully complete for an agent to call it confidently.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 0% for the single parameter run_id, and the description does not mention it at all. The parameter name is self-explanatory as a run identifier, but the description adds no meaning beyond the schema, failing to compensate for the lack of schema documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the verb 'Read' and specifies the resource (execution state, process IDs, timing, manifest, validation label). It clearly indicates this is a retrieval operation for experiment details, and the tool name 'get_experiment' reinforces that. It distinguishes from siblings like 'list_experiments' (which likely returns a list) and 'read_log' (which reads logs), though it does not explicitly name alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus its siblings. It does not mention alternatives, conditions for selection, or exclusions. An agent cannot determine from the description whether to call this instead of list_experiments or read_log.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_artifactsB
Index native files; does not read large TDR files into model context.
| Name | Required | Description | Default |
|---|---|---|---|
| run_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of behavioral disclosure. It usefully reveals that large TDR files are not read into model context, suggesting a low-cost listing operation. However, it does not clarify return behavior, side effects, or whether the index is up-to-date.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is one concise sentence, front-loads the purpose, and adds a useful caveat without wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter listing tool, the description covers the central caveat but leaves gaps: what exactly is returned, how 'run_id' scopes the artifacts, and what 'native files' means. There is no output schema to compensate, so the agent has to infer part of the contract.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the description never mentions 'run_id' or how it relates to the native files being indexed. The parameter is somewhat self-explanatory from its name, but the description adds no meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('Index') on a resource ('native files') and adds a distinguishing behavioral note about not reading large TDR files into model context. It doesn't explicitly name sibling tools, but the second clause helps separate it from content-loading operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'does not read large TDR files into model context' implies this tool is appropriate when you want to index/listing without loading large content, but it does not explicitly say when to prefer it over alternatives such as read_log or list_experiments.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_experimentsA
List persistent experiments, paginated. Read-only.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| offset | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It explicitly states 'Read-only,' which is a meaningful safety-related behavior, and mentions pagination. However, it does not disclose ordering, whether results include all experiment states, or what happens when pagination boundaries are exceeded. Still, the core behavioral trait is covered.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short sentences with no filler. 'List persistent experiments' states the core action, 'paginated' covers the parameters, and 'Read-only' covers safety. Every word earns its place and the most important information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list operation with two optional, well-understood pagination parameters and no output schema, the description is nearly complete. It tells the agent what the tool does, that it is read-only, and that it supports pagination. Additional details like result ordering or default page size would be nice, but they are not essential for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It does not explain limit or offset individually, but the word 'paginated' conveys how these parameters function together. Since the parameters are simple integers with defaults and self-explanatory titles, the minimal description provides sufficient semantics without much additional detail.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'List persistent experiments.' It also signals pagination and read-only behavior, which clearly distinguishes it from siblings like get_experiment, create_experiment, and submit_experiment. The name alone would be somewhat generic, but the description adds enough specificity to make the tool's purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies use when listing experiments in a paginated, read-only fashion, but it does not explicitly name alternatives or state when not to use this tool. The read-only hint contrasts with create_experiment and submit_experiment, and 'list' contrasts with get_experiment, but these contrasts are left for the agent to infer rather than explicitly guided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
read_logB
Read bounded log increments; cursor offset is bytes.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| offset | No | ||
| run_id | Yes | ||
| stage_index | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries the full burden. It discloses that reads are bounded and that offset is byte-based, which is useful context. However, it does not mention error behavior, response format, rate limits, or what 'bounded' means in size.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single terse sentence with no filler. Every word contributes, and it front-loads the core action and key scoping detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With four parameters, no annotations, and no output schema, the description is far too sparse. It does not explain the run_id parameter, the meaning of limit, pagination beyond byte offsets, or what the caller should expect in the result.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate for all parameters. It only clarifies the semantics of 'offset' (bytes), leaving run_id, limit, and stage_index unexplained in both schema and description. That is weak compensation for a four-parameter tool.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('read') and resource ('log increments'), and the byte-offset detail helps characterize the operation. It is clearly distinct from sibling tools about experiments and artifacts, though 'increments' is slightly vague and the description does not mention the run_id context.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit guidance on when to use this tool versus alternatives. The intended use is implied by the name and description, and the siblings are unrelated, so confusion is unlikely, but no exclusions or alternative routing are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
submit_experimentA
Launch a prepared experiment asynchronously. Duplicate requests do not restart it. Poll status; no fixed runtime kill.
| Name | Required | Description | Default |
|---|---|---|---|
| run_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and delivers meaningful behavioral detail: the launch is asynchronous, duplicate requests do not restart the experiment, and there is no fixed runtime kill. This goes beyond the tool name and schema, though it does not cover response shape, error behavior, or auth requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, each adding distinct value: the main action, duplicate-request idempotency, and polling/no-kill expectations. No filler or redundancy, and the core action is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is adequate for a one-parameter submission action, but with no output schema and no annotations, it omits how the agent should determine submission success and which specific sibling to poll for status. 'Poll status' is helpful but vague about the mechanism.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema provides only a run_id string with no description, and the description does not explicitly define run_id. It weakly ties run_id to 'a prepared experiment' and duplicate-request behavior, but the semantic burden falls mostly on the parameter name itself.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Launch a prepared experiment asynchronously.' It clearly distinguishes this from sibling tools like create_experiment (preparation) and get_experiment/read_log (monitoring), so an agent can tell what action it performs.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use the tool—on an already-prepared experiment—and gives follow-up guidance to 'Poll status.' However, it does not explicitly name alternatives or say when not to use this tool versus create_experiment or get_experiment, so the guidance is mostly implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
6 tool updates
v0.1.0- First observed
create_experiment - First observed
get_experiment - First observed
list_artifacts - First observed
list_experiments - First observed
read_log - First observed
submit_experiment
TDQS
Scored across 6 tools
Each tool targets a distinct resource/action: listing vs fetching experiment metadata, preparing vs launching an experiment, reading logs vs listing files. No two tools have overlapping purposes.
All tools follow a consistent verb_noun snake_case pattern (list_experiments, get_experiment, create_experiment, submit_experiment, read_log, list_artifacts). There is no mixing of conventions or vague verbs.
Six tools is well-scoped for an experiment management server, covering the essential lifecycle without bloat. Each tool serves a clear, necessary role.
The surface covers the main workflow: create, submit, monitor (get/read_log), and list artifacts. Missing operations like delete/cancel or update are not explicitly present, but the core experiment lifecycle is well served and the absence is a minor gap.
Maintenance
Related MCP Connectors
MCP server that lets AI assistants use all OneSchema features exposed via the public API.
Build, validate, and manage API simulations in WireMock Cloud from MCP-compatible AI agents.
Remote MCP server for AI.TV creators — delegate account operations to your AI agent over MCP.
OCR, transcription, file extraction, and image generation for AI agents via MCP.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to interact with Aspen Plus process simulations through a standardized MCP interface, supporting simulation control, data access, and flowsheet manipulation.32MIT
- AlicenseBqualityCmaintenanceEnables AI agents to automate COMSOL Multiphysics simulations, including model management, geometry building, physics configuration, meshing, solving, and results visualization through the MCP protocol.78MIT
- AlicenseCqualityDmaintenanceEnables AI agents to control Ansys Electronics Desktop (HFSS, Maxwell, Q3D, etc.) using MCP tools for simulation automation.10042PolyForm Noncommercial 1.0.0
- AlicenseNot gradedqualityDmaintenanceEnables AI agents to automate COMSOL Multiphysics simulations, including model management, geometry building, physics configuration, meshing, solving, and results visualization via the MCP protocol.MIT