原型 · 预览版:收录官方注册中心里的全部服务器,每 30 分钟同步一次。评价和账户功能将在后续阶段推出。
PopNx MCP为使用 AI 的人准备的 MCP 服务器 · 用大白话讲清楚

DualSPHysics MCP

作者:vegetableno1版本 0.2.0i★ –i在你的电脑上运行
注册名称io.github.vegetableno1/dualsphysics

安装

概览

作者提供的说明(英文原文)

Agent toolchain for the DualSPHysics SPH solver: case creation, runs, post-processing, validation.

PopNx MCP 的三大支柱

这三项永远不会合并成一个分数:意见、测量和人气是不同的东西。

它能帮你做什么

我们还没有为它写通俗的介绍。下面是我们从注册中心读取到的事实。

  • 连接方式: 在你的电脑上运行
  • 传输方式: stdio
  • 分类: 其他

安装

选择你使用的 AI 应用,然后复制设置。

安装之前

  • 基础检查:1 项中通过 1 项
  • 在你的电脑上运行,拥有你的用户账户的权限(文件、网络、应用)。
  • 需要你自己填写: DSPH_GENCASE, DSPH_SOLVER, DSPH_PARTVTK, DSPH_MEASURETOOL, DSPH_JOBS_DIR, DSPH_OMP_THREADS

你需要

  • PyPI已安装 Python 的 uv(用于 uvx 命令)

你用的是哪个应用?

在上方选择你的应用。我们会记住它,下次按钮会显示“安装到 …”。

打开 Claude Desktop → Settings → Developer → Edit Config,把下面的内容粘贴到 claude_desktop_config.json

{
  "mcpServers": {
    "dualsphysics": {
      "command": "uvx",
      "args": [
        "dualsphysics-mcp"
      ],
      "env": {
        "DSPH_GENCASE": "your-value",
        "DSPH_SOLVER": "your-value",
        "DSPH_PARTVTK": "your-value",
        "DSPH_MEASURETOOL": "your-value",
        "DSPH_JOBS_DIR": "your-value",
        "DSPH_OMP_THREADS": "your-value"
      }
    }
  }
}

在终端中运行这条命令

claude mcp add dualsphysics --env DSPH_GENCASE=your-value --env DSPH_SOLVER=your-value --env DSPH_PARTVTK=your-value --env DSPH_MEASURETOOL=your-value --env DSPH_JOBS_DIR=your-value --env DSPH_OMP_THREADS=your-value -- uvx dualsphysics-mcp

运行前请先填写空着的值。

在 Cursor 中打开

或者自己复制设置

粘贴到项目中的 .cursor/mcp.json,或 ~/.cursor/mcp.json

{
  "mcpServers": {
    "dualsphysics": {
      "command": "uvx",
      "args": [
        "dualsphysics-mcp"
      ],
      "env": {
        "DSPH_GENCASE": "your-value",
        "DSPH_SOLVER": "your-value",
        "DSPH_PARTVTK": "your-value",
        "DSPH_MEASURETOOL": "your-value",
        "DSPH_JOBS_DIR": "your-value",
        "DSPH_OMP_THREADS": "your-value"
      }
    }
  }
}

浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。

在 VS Code 中打开

或者自己复制设置

粘贴到项目中的 .vscode/mcp.json

{
  "servers": {
    "dualsphysics": {
      "type": "stdio",
      "command": "uvx",
      "args": [
        "dualsphysics-mcp"
      ],
      "env": {
        "DSPH_GENCASE": "your-value",
        "DSPH_SOLVER": "your-value",
        "DSPH_PARTVTK": "your-value",
        "DSPH_MEASURETOOL": "your-value",
        "DSPH_JOBS_DIR": "your-value",
        "DSPH_OMP_THREADS": "your-value"
      }
    }
  }
}

浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。

这个服务器在你的电脑上运行,而 ChatGPT 只能连接互联网上的服务器。请选择其他应用。

你的选择通过 Cookie 保存在这台设备上,无需账户。

需要你填写的值

  • DSPH_GENCASE env
    Path to the GenCase_linux64 executable (auto-discovered if unset)
  • DSPH_SOLVER env
    Path to the DualSPHysics CPU solver executable (auto-discovered if unset)
  • DSPH_PARTVTK env
    Path to the PartVTK_linux64 executable (auto-discovered if unset)
  • DSPH_MEASURETOOL env
    Path to the MeasureTool_linux64 executable (auto-discovered if unset)
  • DSPH_JOBS_DIR env
    Directory for simulation job outputs (defaults to ./jobs)
  • DSPH_OMP_THREADS env
    OpenMP threads for the CPU solver (defaults to CPU count)

这些设置是根据作者在注册中心的条目生成的。如果 README 的写法不同,请以 README 为准。

它能做什么

它在你的电脑上运行;安装后,工具列表会显示在你的 AI 应用中。

基础检查i

我们检查的是任何人都能看到的信息;我们没有阅读代码。不适用的检查项不计入总数。 · 检查于 2026年11月7日

  • ✓ 通过

    作者与仓库一致

    注册名称已通过 GitHub 账户 vegetableno1 验证,该账户拥有此仓库

  • … 尚未检查

    仍在维护

    我们还没有从 GitHub 读取这个仓库

  • … 尚未检查

    有许可证

    我们还没有从 GitHub 读取这个仓库

  • – 不适用

    端点有响应

    它在你的电脑上运行,没有互联网端点

  • – 不适用

    使用 OAuth 登录

    在你的电脑上运行,改用本地设置

  • … 尚未检查

    工具描述中没有隐藏指令

    它在你的电脑上运行;我们只能读取互联网端点的工具列表

与“其他”中的其他服务器比较i

  • 星标数多于此分类中其他 32583 个服务器的 0%
  • 发布到注册中心的时间比此分类中其他 32583 个服务器的 49% 更新
  • 基础检查结果等于或优于此分类中其他 32583 个服务器的 100%

与注册中心里这个分类中所有活跃的服务器比较。只有当发布者拥有该仓库时,星标数才计入。

常见问题

DualSPHysics MCP 安全吗?

它在 1 项适用的基础检查中通过了 1 项。我们没有阅读代码。在添加密钥或令牌之前,请先看看这个服务器要求哪些权限,并使用只具备所需权限的密钥。

它需要哪些密钥或代码?

注册中心没有列出必需的密钥,不过有些服务器会在首次使用时要求你登录。

它在我的电脑上运行还是在云端?

它在你的电脑上运行。你的 AI 应用会在需要时启动它,数据不会经过作者的服务器(除非它自己调用在线服务)。

它还在维护吗?

GitHub 仓库最后更新于–,最新版本(0.2.0)于43天前进入注册中心。

哪些应用可以使用它?

支持 MCP 的应用,例如 Claude Desktop、Claude Code、Cursor 和 VS Code。你的电脑上还需要有 Python (uv)。

有什么可以替代它?

同一分类中有:Spec Driven Development, Remote Desktop Commander, sync. labs

替代选择

同一分类中其他作者的服务器,按星标数排序。

如何看卡片:★ GitHub 星标i三大支柱:评价 · 检查 · 使用情况i更新 = 最新版本发布到注册中心的时间i

Spec Driven Development

作者:formulahendry

MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.

在你的电脑上运行★ 440MIT14个月前更新
安装

Remote Desktop Commander

作者:desktop-commander

Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.

在云端运行★ 211昨天更新
安装

sync. labs

作者:synchronicity-labs

Lipsync videos, dub them into other languages, make talking videos and open sync. Studio.

电脑或云端今天更新
安装

作者的 README

打开 README

按原文从作者的仓库复制。PopNx MCP 没有审查或背书其内容。HTML、图片和脚本已被移除。链接会离开本站。

DualSPHysics MCP

Language: English | 中文

Design, run, and verify DualSPHysics simulations from an AI agent — not just stare at them.

Ten Model Context Protocol tools wrap a local DualSPHysics SPH toolchain end to end: design cases as structured parameters (no hand-written XML, no solver needed to iterate), run them as background CPU jobs with progress, throughput and the solver's own ETA on tap, post-process into ParaView-ready VTK and CSV time series, and verify a 2D dam-break against the Koshizuka & Oka (1996) experiment with per-time errors and MAE / RMSE / max.

The server only launches the DualSPHysics command-line tools as subprocesses; DualSPHysics itself is not distributed here — it is free LGPL-2.1-or-later software, this package neither links nor redistributes its code or binaries, so the MIT licence carries no extra obligations. If you publish work using DualSPHysics, cite *Dominguez et al. (2022), Computational Particle Mechanics 9:867–895, doi:10.1007/s40571-021-00404-2.*

Tools

ToolWhat it does
check_environmentFind the four DualSPHysics tools on this machine: resolved path, provenance (env var, PATH, scan), version, solver feature flags; install hints when one is missing.
create_caseDescribe a 2D dam-break experiment in plain parameters and get a GenCase *_Def.xml back — no XML by hand, no solver needed. Returns a particle-count estimate for self-checking.
edit_caseChange parameters of an existing case (in place or to a save_path), re-validating the merged result.
describe_caseRead a case file back as a summary: dp, domain, column/tank/obstacle, timing, gauges, particle estimate.
gencaseDiscretise the case into Case.xml + Case.bi4 (plus preview VTK) and report the real particle counts.
run_caseStart the CPU solver in the background (jobs/ directory, Run.out, Part_*.bi4) and return a job_id immediately.
job_statusPoll a job: state, t/tmax, percent, the solver's Time/Sec throughput and projected finish, Run.out tail.
partvtkTurn Part_*.bi4 output into VTK particle files for ParaView; filters and variables pass through.
measure_toolProbe the solution at points and get CSV time series back (comma separator enforced for deterministic parsing).
validate_dambreakReconstruct the dam-tip surge front from the CSV and score it against the embedded Koshizuka & Oka (1996) series: per-time errors + MAE/RMSE/max.

Working chain: check_environment → create_case → describe_case → gencase → run_case → poll job_status → partvtk + measure_tool → validate_dambreak. Vocabulary, three guards and particle-estimate arithmetic: docs/case-generation.md.

Domain contracts

Behaviours of the wrapped tools that their -h output does not tell you:

  • Geometry outside the domain box is silently clipped by GenCase (exit 0, no warning) — create_case containment-checks every domain.
  • DualSPHysics CSVs default to semicolon separators; measure_tool forces commas unless the caller passes their own -csvsep.
  • MeasureTool points files reject leading # comment lines; MeasureTool errors print on stdout, not stderr.
  • Time/Sec in Run.out is wall-clock seconds per simulated second — not steps/second; the row tail is the solver's projected finish.
  • Run.out row formats differ between solver v5.0/v5.2 and v5.4; the parser handles both.

All fourteen contracts (formats, exit codes): docs/domain-contracts.md.

Install

Python 3.10+. The binaries are discovered from DSPH_* environment variables, PATH, or conventional install roots (/opt, /usr/local, ~/softwares, ~, cwd → /DualSPHysics*/bin/linux).

uv sync                 # or: python -m venv .venv && .venv/bin/pip install -e .

Getting the solver (the GitHub repository ships GenCase / PartVTK / MeasureTool prebuilt but not the solver):

  1. Full package from https://dual.sphysics.org/downloads/, or
  2. git clone https://github.com/DualSPHysics/DualSPHysics and build the CPU solver with make -f Makefile_cpu (g++ only, no CUDA needed), then copy the prebuilt tools from bin/linux/.

Configure through environment variables (no .env parsing; see .env.example — the same paths appear in examples/mcp_config.example.json):

DSPH_GENCASE=/home/<user>/softwares/DualSPHysics/bin/linux/GenCase_linux64

DSPH_SOLVER=/home/ /softwares/DualSPHysics/bin/linux/DualSPHysics5.4CPU_linux64 DSPH_PARTVTK=/home/ /softwares/DualSPHysics/bin/linux/PartVTK_linux64 DSPH_MEASURETOOL=/home/ /softwares/DualSPHysics/bin/linux/MeasureTool_linux64 DSPH_JOBS_DIR=/abs/path/to/jobs # optional, default ./jobs DSPH_OMP_THREADS=8 # optional, default all cores

Run

.venv/bin/python mcp_server.py    # hub-style entry point (stdio)

.venv/bin/dualsphysics-mcp # console script uvx dualsphysics-mcp # published on PyPI

Client registration templates: examples/mcp_config.example.json:

{ "mcpServers": { "dualsphysics-mcp": { "command": "uvx", "args": ["dualsphysics-mcp"] } } }
claude mcp add dualsphysics-mcp -- /abs/repo/path/.venv/bin/python /abs/repo/path/mcp_server.py

Example: 2D dam-break validation (Koshizuka & Oka 1996)

examples/dambreak_val2d/ holds the showcase: the official validation layout (dp = 0.01 m; 1 m × 2 m water column in a 4 m × 3 m tank; TimeMax = 2 s, TimeOut = 0.01 s; Verlet / Wendland / artificial viscosity 0.02 / Fourtakas DDT 0.1), regenerated by gen_dambreak_val2d.py (MIT), a surge-front MeasureTool points file (401 points along z = 0.03 m), and the digitised experiment.

Measured on this case (GenCase v5.4.354 / solver v5.4.355, 8 CPU threads, i5-10210U):

QuantityValue
Total particles21,001 (fluid 20,000 + bound 1,001)
Part files201 (Part_0000 … Part_0200)
Solver wall time (TimeMax = 2 s)≈ 14 min
Dam-tip MAE vs experiment (0.09–0.75 s)0.220 m (22.0 % of the column); RMSE 0.240 m
Dam-tip error, early collapse (t ≤ 0.2 s)within ±0.01–0.16 m
Wall impactfront pins at 3.98 m at t ≈ 0.67 s

The residual is SPH physics, not a measurement artefact: the front extraction tracks the solver's own SWL gauge (mean deviation 8 mm < 10 mm point spacing), and the experiment ends at X/a ≈ 4.13 — beyond the 4 m tank — so the comparison saturates after wall impact (validate_dambreak notes impact_time_s).

Agent transcript:

check_environment()                                  # all four tools found

gencase("examples/dambreak_val2d/CaseDambreakVal2D_Def.xml") -> particle_counts: total=21001 fluid=20000 bound=1001 run_case(" /CaseDambreakVal2D") # returns job_id job_status(job_id) # poll until percent=100 partvtk(job_id=job_id) # 201 fluid VTK files measure_tool(job_id=job_id, points_file="examples/dambreak_val2d/points_damtip.txt") validate_dambreak(csv_path=" ", points_file="examples/dambreak_val2d/points_damtip.txt")

validate_dambreak reports per-time errors plus MAE / RMSE / max in metres and as % of the 1 m column. The figure comes from examples/make_validation_figure.py; examples/render_dambreak.py turns the same run's Part_*.vtk into an MP4 animation (dev dependencies).

Tests

uv run pytest -q          # or: .venv/bin/python -m pytest

uv run ruff check .

The suite is green without any solver installed (discovery, command construction, log-fixture parsing, validation math, case generation, stdio end-to-end). Tests marked solver exercise a real local toolchain and auto-skip otherwise.

Contents

  • src/dualsphysics_mcp/ — MCP server, tool discovery and config, error codes, the ten tools in tools/.
  • examples/ — validation case, create_case_demo.py, figure + animation scripts, client template.
  • tests/ — pytest suite (solver tests auto-skip).

Repository rules

  • Committed: source, tests, examples, documentation, templates.
  • Not committed: DualSPHysics binaries or sources (LGPL work stays out), virtual environments, .env, job outputs and generated results.
  • Experiment values in examples/dambreak_val2d/ are digitised facts cited to Koshizuka & Oka (1996) as shipped with the DualSPHysics examples; the generated case XML and all code here are original MIT content — details in CONTRIBUTING.md.
问 PopNx