Ccpp Tools
БесплатноНе проверенMCP server providing deterministic, standards-traceable engineering calculations for combined-cycle power plant balance-of-plant design, such as fluid propertie
Описание
MCP server providing deterministic, standards-traceable engineering calculations for combined-cycle power plant balance-of-plant design, such as fluid properties, pipe sizing, pump NPSH, and valve sizing, with every result including method, assumptions, and warnings.
README
ci License: Apache-2.0 Python 3.12+
Deterministic, standards-traceable engineering calculations for combined-cycle power plant (CCPP) balance-of-plant design — exposed as an MCP server.
LLM agents are excellent at orchestrating an engineering workflow in natural language and terrible at arithmetic. This server splits the work accordingly: any MCP client (Claude Desktop, Claude mobile, Claude Code, Cursor, or an internal agent) drives the conversation, while every number comes from a pure, tested Python function that returns its evidence — the governing standard, the equation evaluated, the assumptions you must own, and the warnings you must not ignore.
"Verify this fuel-oil transfer system: 60 m³/h diesel at 40 °C,
180 m discharge run rising 18 m, flooded suction, NPSHr 4 m…"
Claude (orchestration, no arithmetic)
│ tank_capacity → 3,240 m³ working → 2 × 1,800 m³
│ fluid_props_liquid → ρ 819.8 kg/m³, μ 1.97 mPa·s [ASTM D341]
│ pipe_size_select → NPS 4 SCH 40, 2.03 m/s ✓ (1–3 band)
│ dp_segment_liquid → Re 8.6e4, f 0.0205, 9.76 m [Crane TP-410]
│ pump_tdh → TDH 28.8 m → rate at 32 m
│ pump_npsha → NPSHa 13.0 m vs NPSHr 4.0 ✓
└ valve_cv_liquid → Cv 11.9, not choked [ISA 75.01]
The full conversation, produced by a real Claude client calling this server end to end, is preserved verbatim in docs/cases/case-01-transcript.md, and an interactive overview lets you step through the tool chain response by response.
Why trust the numbers
Every calculation is held by two independent legs (docs/verification.md):
- Golden tests from the governing documents. The IAPWS-IF97 water/steam implementation is written from the release itself (regions 1/2/4 + R12-08 viscosity, stdlib only) and locked by the release's own computer-program verification tables at 8–9 significant figures.
- Cross-validation against independent implementations. ~1,800 swept
assertions compare the runtime core against
fluidsandiapws— which are test-only dependencies. The runtime has zero third-party calculation code, so the comparison is never circular.
The harness has already earned its keep: it caught a wall-thickness transcription error (NPS 18 SCH 80, 23.88 → 23.83 mm) and rejected five golden values written from memory instead of the document. Both incidents are kept in the verification log on purpose.
Quick start
uvx ccpp-tools-mcp # stdio (once published to PyPI)
# or from a checkout:
uv run ccpp-tools-mcp # stdio
uv run ccpp-tools-mcp --transport streamable-http --port 8899 # HTTP
Claude Desktop (claude_desktop_config.json):
{
"mcpServers": {
"ccpp-tools": {
"command": "uvx",
"args": ["ccpp-tools-mcp"]
}
}
}
Claude Code:
claude mcp add ccpp-tools -- uvx ccpp-tools-mcp
Claude mobile / web: run the HTTP transport, expose it (e.g.
cloudflared tunnel --url http://localhost:8899), and add
https://<your-tunnel>/mcp as a custom connector.
Then paste the demo prompt from docs/cases/case-01-fuel-oil-transfer.md and watch the tool chain run.
Tools (v1)
| Tool | What it computes | Standard basis |
|---|---|---|
fluid_props_liquid |
ρ, ν/μ, Pv, SG for petroleum liquids (preset or custom 2-point fit) | API gravity / ASTM D341 |
fluid_props_steam |
water/steam v, h, s, cp, μ; saturation states | IAPWS-IF97 / R12-08 (own implementation) |
tank_capacity |
working/nominal volume, residence time | volume balance (ahead of API 650/620) |
pipe_size_select |
smallest NPS/SCH meeting a velocity limit | ASME B36.10M + continuity |
pipe_wall_thickness |
pressure-design wall vs selected schedule | ASME B31.1 §104.1.2 |
dp_segment_liquid |
Darcy friction + Crane fitting losses, Re/velocity flags | Crane TP-410 / Colebrook-White |
list_crane_fittings |
accepted fitting keys and their K basis | Crane TP-410 |
pump_tdh |
total dynamic head balance | Hydraulic Institute |
pump_npsha |
NPSH available + margin vs NPSHr | HI 9.6.1 concepts |
pump_power |
hydraulic / shaft power | ρgQH |
valve_cv_liquid |
required Cv/Kv + choked-flow check | ISA 75.01 / IEC 60534-2-1 |
The response envelope
Every tool returns the same contract — a number you can defend:
{
"result": { "npsha_m": 12.99, "margin_m": 8.99 },
"method": { "standard": "Hydraulic Institute (HI 9.6.1 concepts)",
"equation": "NPSHa = (P_surface,abs - Pv)/(rho g) + z_static - h_f,suction" },
"assumptions": [ "atmospheric pressure 101.325 kPa(a)",
"vapor pressure 0.5 kPa(a) at pumping temperature" ],
"warnings": [],
"validity": "ok"
}
Warnings are load-bearing: an undersized line answers with the number and a velocity flag; a deep-turndown case flags the laminar–turbulent transition; a near-saturation valve sizing reports choked flow. The orchestrating agent is expected to surface every warning to the user — the Case 01 transcript shows that happening.
Architecture
flowchart LR
subgraph clients [MCP clients]
A[Claude Desktop / mobile]
B[Claude Code / Cursor]
C[internal plant agent]:::private
end
subgraph server [ccpp-tools-mcp]
E[slim envelope<br/>result + method + assumptions + warnings]
subgraph core [stdlib-only calculation core]
P[pipe: B36.10M · B31.1]
H[hydro: Colebrook · Crane K]
Q[equipment: pump · tank · ISA 75.01]
F[props: ASTM D341 · IAPWS-IF97]
end
end
subgraph oracles [test-only oracles]
O1[fluids]
O2[iapws]
O3[official verification tables]
end
A & B & C -->|stdio / streamable-http| E --> core
core -.->|cross-validated in CI| oracles
classDef private stroke-dasharray: 5 5,stroke:#888,color:#888;
The internal orchestrating agent shown dashed is a private, out-of-scope deployment; everything demonstrated here runs on generic public MCP clients.
Scope and honest limits
- Decision support, not engineering of record. Results carry their assumptions; the responsible engineer owns criterion selection, margins, and code compliance.
- v1 is liquid-service only; compressible dP, heat-exchanger rating, and parallel-flow distribution arrive in v1.1 with their own validated cases.
- IF-97 regions 3 (near-critical) and 5 are deliberately not implemented — out-of-range inputs raise instead of extrapolating.
- The bundled diesel preset is a representative ASTM D975 sample, not project fuel data, and says so in every response.
- Full gap list: docs/verification.md.
Development
uv sync --dev
git config core.hooksPath .githooks # forbidden-token pre-commit gate
uv run pytest -q -m "not cross" # unit + golden
uv run pytest -q -m cross tests/cross # sweeps vs fluids / iapws
uv run ruff check . && uv run mypy # lint + strict types
License
Apache-2.0. Crane TP-410, ASME, ISA, HI, ASTM, and IAPWS are referenced as public standards; bring your own licensed copies for engineering use.
Установка Ccpp Tools
У этого сервера нет опубликованного пакета — он собирается из исходников. Открой репозиторий и следуй инструкции в README.
▸ github.com/jinhyunan/ccpp-tools-mcpFAQ
Ccpp Tools MCP бесплатный?
Да, Ccpp Tools MCP бесплатный — установка в пару кликов через Unyly без оплаты.
Нужен ли API-ключ для Ccpp Tools?
Нет, Ccpp Tools работает без API-ключей и переменных окружения.
Ccpp Tools — hosted или self-hosted?
Доступен hosted-вариант: Unyly запускает сервер в облаке, локальная установка не обязательна.
Как установить Ccpp Tools в Claude Desktop, Claude Code или Cursor?
Открой Ccpp Tools на unyly.org, выбери вкладку своего клиента (Claude Desktop, Claude Code, Cursor) и нажми Install — конфиг сгенерируется автоматически, без правки JSON.
Похожие MCP
LibreOffice Tools
Enables AI agents to read, write, and edit Office documents via LibreOffice with token-efficient design. Supports multiple formats including DOCX, XLSX, PPTX, a
автор: passerbyflutterdannote/figma-use
Full Figma control: create shapes, text, components, set styles, auto-layout, variables, export. 80+ tools.
автор: dannoteLogo.dev
Search and retrieve company logos by brand or domain. Customize size, format, and theme to match your design needs. Accelerate design, prototyping, and content
автор: NOVA-3951PIX4Dmatic
Enables GUI automation for controlling PIX4Dmatic on Windows through MCP. Supports launching, focusing, capturing screenshots, sending hotkeys, clicking UI elem
автор: jangjo123Compare Ccpp Tools with
Не уверен что выбрать?
Найди свой стек за 60 секунд
Автор?
Embed-бейдж для README
Похожее
Все в категории design
