SCAL Digital Assistant Suite MCP Server
Integrates with OpenAI's API to generate LLM engineering assessments of the SCAL results.
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., "@SCAL Digital Assistant Suite MCP ServerGenerate SWOF table using Corey method"
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.
SCAL Digital Assistant Suite v5.0
Multi-method Special Core Analysis — Relative Permeability & Capillary Pressure
Eclipse-ready .INC · Cydar-aligned QC · LangGraph agent · Streamlit UI · FastAPI · MCP Server
What Is This?
A complete engineering toolkit for generating, quality-controlling, and exporting relative permeability and capillary pressure curves for reservoir simulation. Starting from laboratory endpoint measurements, you choose a Kr model, set parameters, and the suite produces:
A validated
SWOForSGOFEclipse.INCfile ready toINCLUDEin your DATA deckA
.zippackage (INC + Excel report + CSV + QC log + manifest)A structured Cydar-aligned physics QC report (25+ checks across KR/PC/XC/CD categories)
A LLM engineering assessment via the LangGraph agent
Related MCP server: Corrosion Engineering MCP Server
What's New in v5.0
Feature | Detail |
MCP Server v2024-11-05 | Full JSON-RPC 2.0 stdio transport; 6 tools; Claude Desktop ready |
Pc-LET model | Lomeland SCA 2008 / Cydar manual p.47; selectable alongside Brooks-Corey |
Petroleum Office LET example | Default LET values cross-checked against |
Brooks-Corey equiv. Corey | nw_equiv = (2+3λ)/λ shown in CLI, INC header, API response |
| HTTP endpoint returns full MCP tool schema for discovery |
Pc model field | `pc_model: BC |
Philliec459 alignment | Corey formulation cross-checked against Panel implementation |
Supported Kr Methods
Method | Reference | Key Params | Best For |
Corey | Corey (1954); Philliec459 Panel | nw, no | Clean sands, baseline, screening |
LET | Lomeland et al. SCA2005-32; PO Blueprint | Lw/Ew/Tw, Lp/Ep/Tp | Mixed-wet, heterogeneous, S-shaped |
Brooks-Corey | Brooks & Corey (1964) | λ (linked kr + Pc) | Physically grounded; tight formations |
Burdine | Burdine (1953) Trans. AIME 198 | λ | Pore-bundle theory |
Chierici | Chierici (1984) SPEJ 24(3) | aw/bw, ap/bp | Fractured/vuggy carbonates |
Cydar Modified Corey | CYDAR-SCAL Manual (2025) p.48 | α, H, V | Endpoint slope control; CYDAR HM |
Supported Pc Models
Model | Formula | When to Use |
Brooks-Corey |
| Default; standard drainage |
Pc-LET |
| Sigmoidal shape; Cydar recommended |
None | Pc = 0 | Kr-only export |
Key Equations (cross-referenced)
Normalised Saturation
Sw* = (Sw − Swi) / (1 − Swi − Sor) [Petroleum Office convention]
So* = 1 − Sw*Corey (1954)
krw = krw_end × Sw*^nw
kro = kro_end × (1−Sw*)^noReference: Philliec459 Panel; Petroleum Office scal-corey-let
LET (Lomeland et al. 2005)
krw = krw_end × Sw*^Lw / [Sw*^Lw + Ew×(1−Sw*)^Tw]
kro = kro_end × (1−Sw*)^Lo / [(1−Sw*)^Lo + Eo×Sw*^To]Petroleum Office example (po.scal.let.relperm): Lo=2.5, Eo=2.0, To=1.5 | Lw=3.0, Ew=1.5, Tw=2.0
Brooks-Corey (1964)
krw = krw_end × Sw*^((2+3λ)/λ)
kro = kro_end × (1−Sw*)^2 × [1 − Sw*^((2+λ)/λ)]
Pc = Pe × Sw*^(−1/λ)
Equivalent Corey nw = (2+3λ)/λ [Petroleum Office relationship]Cydar Modified Corey (manual p.48)
krw = krw_end × [Sw*^(2α)/(2α) + Sw*^α/α + H×Sw*] / norm
kro = kro_end × [(1−Sw*)^(2α)/(2α) + (1−Sw*)^α/α + V×(1−Sw*)] / norm
H = krw slope at Swi (0 = flat, water-wet)
V = kro slope at 1-SorPc-LET (Cydar manual p.47; Lomeland SCA 2008)
Pc(Sw*) = Pc_max × (1−Sw*)^L / [(1−Sw*)^L + E×Sw*^T]
L ≥ 1 (lower curvature) E > 0 (elevation) T ≥ 0.5 (upper curvature)Architecture
scal-suite-pro/
├── corey_engine.py All 6 Kr models + Pc models + Excel + INC export
├── scal_qc.py Cydar-aligned QC: KR/PC/XC/CD check suites
├── agents.py LangGraph: PhysicsQC → EngineeringQA → ReportSynthesis
├── mcp_scal_server.py MCP stdio server (JSON-RPC 2.0) + interactive CLI
├── main.py FastAPI: /compute-scal /methods /mcp-manifest
├── seria_correlations.py BSP badin USman empirical correlations
├── Home.py Streamlit multi-page entry point
├── pages/
│ ├── app_ui.py SCAL engine UI
│ └── seria_ui.py badin correlations UI
├── claude_desktop_config_example.json MCP config for Claude Desktop
├── .env.example
├── Dockerfile
├── docker-compose.yml
└── requirements.txtQuick Start (Local)
git clone <repo>
cd scal-suite-pro
cp .env.example .env # add OPENAI_API_KEY (optional — for LLM QA)
pip install -r requirements.txt
# Terminal 1 — FastAPI backend
uvicorn main:app --reload --port 8000
# Terminal 2 — Streamlit frontend
streamlit run Home.pyOpen http://localhost:8501 | API docs http://localhost:8000/docs
MCP Server Integration
Run as stdio server
python mcp_scal_server.py --mcpInteractive CLI (no LLM required)
python mcp_scal_server.pyConnect to Claude Desktop
Edit your Claude Desktop config file:
Windows:
%APPDATA%\Claude\claude_desktop_config.jsonmacOS:
~/Library/Application Support/Claude/claude_desktop_config.json
{
"mcpServers": {
"scal-suite": {
"command": "python",
"args": ["mcp_scal_server.py", "--mcp"],
"cwd": "C:/path/to/scal-suite-pro"
}
}
}See claude_desktop_config_example.json for the annotated version.
MCP Tools
Tool | Description |
| Full catalogue: models, equations, typical ranges, wettability guide |
| Run Kr+Pc simulation → saturation table + Cydar QC report |
| Raw SWOF/SGOF .INC text from a supplied table |
| Build .zip: INC + XLSX + CSV + QC log + manifest |
| QC suite against any external saturation table |
| BSP badin Seria/West Anduki empirical values |
Test a single call
python mcp_scal_server.py --mcp '{"jsonrpc":"2.0","id":1,"method":"tools/list","params":{}}'
python mcp_scal_server.py --mcp '{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"list_kr_methods","arguments":{}}}'Docker
cp .env.example .env
docker-compose up --buildFrontend: http://localhost:8501 | Backend docs: http://localhost:8000/docs | MCP manifest: http://localhost:8000/api/v1/mcp-manifest
Eclipse Output
Fluid System | Keyword | Column Order |
Oil-Water |
| Sw Krw Kro Pc_ow (bar) |
Gas-Water |
| Sg Krg Krw Pc_gw (bar) — ascending Sg |
INCLUDE
'SCAL_FUNCTIONS.INC' /.zip Package Contents
File | Description |
| Eclipse E100/E300 SWOF/SGOF keyword table |
| Saturation table + embedded Kr and Pc line charts |
| Raw Sw/Kr/Pc values |
| Cydar-aligned QC log (25+ checks) |
| Method, endpoints, Pc model, QC status, timestamp, references |
QC Checks (Cydar-SCAL aligned)
Category | Codes | Checks |
Kr physical | KR-01 → KR-14 | Endpoints, monotonicity, crossover, exponent ranges, wettability |
Pc physical | PC-01 → PC-07 | Monotonicity, sign convention, entry pressure, Leverett J |
Cross-checks | XC-01 → XC-03 | Amott-Harvey wettability, Rapoport-Leas, capillary number |
Cydar-specific | CD-01 → CD-04 | LET params, Pc-LET params, Modified Corey H/V/α, dimensionless numbers |
API Reference
POST /api/v1/compute-scal
{
"method": "LET",
"system": "Oil-Water",
"swc": 0.20,
"s_res": 0.25,
"krw_end": 0.30,
"kr_phase_end": 0.80,
"pc_model": "LET",
"n_points": 30,
"let_params": { "Lw": 3.0, "Ew": 1.5, "Tw": 2.0, "Lp": 2.5, "Ep": 2.0, "Tp": 1.5 },
"pc_let_params": { "pc_max": 5.0, "L": 2.0, "E": 1.0, "T": 2.0 }
}GET /api/v1/methods — method catalogue with equations
GET /api/v1/mcp-manifest — MCP tool schema + Claude Desktop config snippet
References
Corey, A.T. (1954). The interrelation between gas and oil relative permeabilities. Producers Monthly.
Burdine, N.T. (1953). Relative permeability calculations from pore-size distribution data. Trans. AIME, 198.
Brooks, R.H. & Corey, A.T. (1964). Hydraulic Properties of Porous Media. Colorado State University.
Lomeland, F., Ebeltoft, E. & Thomas, W.H. (2005). A new versatile relative permeability correlation. SPE-SCA2005-32.
Lomeland, F., Ebeltoft, E. & Thomas, W.H. (2008). A new versatile capillary pressure correlation. SCA2008-18.
Chierici, G.L. (1984). Novel relations for drainage and imbibition curves. SPEJ, 24(3).
Cydarex (2025). CYDAR-SCAL User Manual. http://cydarex.fr/files/CYDAR_SCAL.pdf
Petroleum Office. Corey and LET Kr Models. https://petroleumoffice.com/doc/scal-corey-let
Petroleum Office. LET Relative Permeability Curves Blueprint. https://petroleumoffice.com/blueprint/po.scal.let.relperm
Philliec459. Panel for Corey Relative Permeability Curves. https://github.com/Philliec459/Panel-used-to-Create-Relative-Permeability-Curves-using-the-Corey-Technique
Dake, L.P. (1978). Fundamentals of Reservoir Engineering. Elsevier.
Anthropic (2024). Model Context Protocol Specification 2024-11-05. https://spec.modelcontextprotocol.io
This server cannot be deployed
Maintenance
Related MCP Connectors
AI Visibility and Content Intelligence tools for Claude and MCP-compatible agents.
Build and manage AI-native customer support agents from Claude or any MCP client.
A structured financial modeling layer for AI agents. Build, version, and audit financial models without drift, then export to Excel, from Claude or any MCP client. Learn more: https://layerz.cc/for-agents
Agent personas for Claude. 16 tools, 13 personas, 3 workflows. Zero extra API cost. Free.
Related MCP Servers
- AlicenseAqualityDmaintenanceEnables AI assistants to perform petroleum engineering calculations including PVT analysis, well performance modeling, and reservoir simulation support using industry-standard correlations and field units.4544GPL 3.0
- AlicenseNot gradedqualityFmaintenanceProvides AI agents with physics-based corrosion engineering calculations, from rapid handbook lookups to mechanistic electrochemical models with dual-tier pitting assessment for material compatibility screening and corrosion rate prediction.1MIT
petropt/petro-mcpprivate
AlicenseBqualityBmaintenanceMCP server that gives LLMs access to petroleum engineering data and tools. Parse well logs, query production data, fit decline curves, calculate EUR, and run nodal analysis -- all through natural language with any MCP-compatible AI assistant.831MIT- AlicenseNot gradedqualityDmaintenanceEnables LLM agents to perform Bayesian Maximum Entropy geostatistical analysis through natural language rather than code, supporting spatial, network, and physics-informed uncertainty modeling.1MIT