Kanysh Basic · MCP copilot · local

Kanysh Basic.
Model
calculations,
from your chat.

An AI copilot for calculations on geological models, alongside Petrel and RMS. Open an exported model, calculate scenarios and check the results in plain words from any MCP client. It works today in Claude Desktop and Claude Code. Models and computation stay on your workstation.

v 0.2.0-dev6· macOS · Windows · Linux· Apache-2.0· free
Open 3D scene →
Norne · phi · 44 927 active · Statoil / OPM · ODbL-1.0
Models and computation stay on your workstation· Works alongside Petrel and RMS· Every result independently checked· Open source on GitHub · Apache-2.0

Code computes the numbers, not the language model.
You confirm the assumptions.

The Kanysh Basic principle
§ 01 / Concept

Not a Petrel replacement.
A copilot
beside it.

You build the model where you always have. Kanysh Basic takes the exported files — DATA/GRDECL, surfaces, wells, LAS — and does the work that usually goes to Excel and manual checks: regional volumes, scenarios, reconciliation and QC. There is one control: conversation.

Task
By hand · Petrel + Excel
Kanysh Basic
Running a calculation
Configure a process in menus, copy parameters between tabs
One sentence in chat. The agent picks the tool.
Assumptions
Hidden in project settings and someone else’s spreadsheets
Proposals with file and line. Nothing runs until you confirm.
Checking
Eyeballing, or re-computing by hand with a second method
Independent check of every result: PASS / FAIL / NOT RUN.
History
The project is overwritten, versions get lost
Immutable revisions of inputs and results.
Reconciliation
Matching Petrel and RMS tables by hand
Reconcile against CSV and explain the differences.
Report
Screenshots and manual formatting
HTML, Excel, PDF — with assumptions and statuses.
Language
English
Any language your MCP client speaks.
§ 02 / Workflows

One sentence,
one calculation.

Five core workflows are ready MCP prompts, plus large models and running your own deck in OPM Flow. No tool names to learn: describe the task in your own words, and the agent picks the tool and asks for what is missing.

check_model

Model check

“Check the model and show issues with severity and IJK”

  • DATA/GRDECL import with INCLUDE, BOX/EQUALS/COPY
  • degenerate and twisted cells
  • findings are never silently repaired

regional_volumes

Regional volumes

“Calculate oil and free gas by EQLNUM with my contacts”

  • STOIIP and GIIP per region
  • OWC/GOC, Bo/Bg, residual saturations
  • Sw-height functions, polygons

reconcile_petrel

Reconcile with Petrel/RMS

“Compare the volumes with my Petrel CSV and explain the differences”

  • explicit metric and unit mapping
  • possible causes kept apart from evidence
  • inputs are never changed

tornado_analysis

Sensitivity

“Run a porosity tornado for two regions”

  • tornado over the ranges you give
  • correlated Monte Carlo with a seed
  • failed draws are never resampled

compare_versions

Compare revisions

“Compare two model versions and the pore-volume impact”

  • changed cells on equal IJK
  • impact per region
  • wells vs model from LAS

export

Reports and 3D

“Export the report to Excel and PDF and show the model in 3D”

  • HTML, JSON, CSV, PNG, Excel, PDF
  • offline 3D scene in the browser
  • ISSUES / NOT RUN statuses preserved

eclipse_import

Large models

“Import the EGRID and INIT and check the model”

  • streaming import of ASCII DATA and binary EGRID/INIT
  • checked at 200 million cells
  • GPU edition: CUDA volumes cross-checked on CPU

simulation_deck_run

Flow simulation in OPM Flow

“Run my deck in OPM Flow and compare with ECLIPSE”

  • your .DATA and INCLUDEs run exactly as supplied
  • Linux, or Windows via WSL2
  • SMSPEC summary → Parquet, reference comparison
§ 03 / How it works

The agent asks. You confirm. Code computes.

The LLM in your MCP client understands the task and calls Kanysh Basic’s typed tools. The numbers are computed by tested Python code on your machine’s CPU, and every result is checked by an independent method.

  • 01 — FolderYou add a folder with the export. Kanysh sees only what you allow.
  • 02 — Assessfolder_assess identifies file roles and proposes contacts, PVT and units — with file and line.
  • 03 — ConfirmYou confirm or edit the assumptions. Missing constants are never filled in.
  • 04 — CalculateA logged job; inputs and results are kept as immutable revisions.
  • 05 — ReportIndependent checks, PASS / ISSUES / NOT RUN statuses, Excel and PDF export.
Norne · a real MCP run# Geologist: "Calculate oil and gas for EQLNUM 1 and 3. OWC −2692 / −2618 m, GOC −2582 m, Bo 1.2, Bg 0.005, Sw 0.25 — confirmed" # Agent: folder_assess(source="norne") ↳ EQUIL: E3.prop, lines 18, 20 — proposal eclipse_import(...) ↳ 113,344 cells · 44,927 active model_qc(...) ↳ ISSUES · 243 degenerate, 1 twisted regional_volumes(regions=[1, 3], ...) # Answer: EQLNUM 1 STOIIP 9,347,774 sm³ EQLNUM 3 STOIIP 2,860,856 sm³ Total STOIIP 12,208,630 sm³ GIIP 6.197 bn sm³ independent check: PASS
§ 04 / Architecture

Conversation in your client.
Computation on your machine.

Kanysh Basic is a local MCP server with an offline viewer. It has no built-in LLM and no cloud. Your MCP client decides which messages reach its AI provider.

Conversation

MCP client
  • Claude Desktop, Claude Code — ready now
  • Codex, Cursor and others — via stdio
  • ChatGPT — via Secure MCP Tunnel, planned
  • You choose the AI provider and what it receives

Kanysh Basic

Local MCP server
  • Python 3.12 · official MCP SDK
  • Typed tools and durable jobs
  • Immutable revisions and a job ledger
  • Independent numerical checks
  • CPU process pools · optional CUDA
  • Offline viewer · REST API · CLI

Data

Your exports
  • Eclipse DATA / GRDECL · EGRID / INIT · .GRID
  • IRAP, ZMAP+, CPS-3 surfaces
  • RMS wells; Petrel ASCII trajectories, tops and polygons
  • LAS · CSV · ROFF
  • Poststack SEG-Y → Zarr tiles
GEOLOGIST  ⟶  MCP CLIENT  ⟶  KANYSH BASIC  ⟶  YOUR FILES  ⟶  CHECKED REPORT
§ 05 / Demo

Norne: open data,
a real calculation.

The public Norne field model (Statoil / OPM): 113,344 cells, 44,927 active. The whole path, from folder assessment to PDF, ran through a real MCP session. Fluid parameters are explicit demo assumptions, not a reserves estimate.

Norne porosity, 3D scene
Porosity · all 44,927 active cells
Regional volumes, EQLNUM 1 and 3
EQLNUM Cells OWC, m STOIIP, sm³ GIIP, million sm³
14 22426929 347 7745 375
31 29626182 860 856822
Total5 520—12 208 6306 197
STOIIP tornado · porosity ×0.9–1.1
EQLNUM 111.27 – 13.14
EQLNUM 311.92 – 12.49
base 12.21 million sm³

Model QC: ISSUES — 243 degenerate cells and 1 twisted cell. They are not silently removed: volumes are calculated for QC-compatible regions 1 and 3. Demo assumptions: Bo 1.2, Bg 0.005, Sw 0.25. Norne data: Statoil / OPM, ODbL-1.0 / DbCL-1.0.

§ 06 / Scale

From Norne to 200 million cells.
And real Volve data.

We test Kanysh Basic beyond the demo. A synthetic corner-point model with 200 million cells runs the whole path on an ordinary laptop, and the real Equinor Volve model showed where we match ECLIPSE and where gaps remain.

200 million cells · synthetic
Stage Time Peak RAM
Import DATA/COORD/ZCORN17.7 min12,1 GiB
Model QC12.3 min2,6 GiB
Regional volumes14.6 min2,1 GiB
Tornado13.8 min2,1 GiB

Laptop: 16 threads, 64 GB RAM, Windows 11, CPU. A single run; all checks PASS, with three deliberately broken cells excluded explicitly. Method and raw data.

Equinor Volve · real data
  • 680,400 cells, 183,545 active — exactly as ECLIPSE after MINPV/PINCH
  • Pore volume vs ECLIPSE PORV: median difference 3.4·10⁻⁵ after the deck’s own multipliers
  • The deck in OPM Flow: 339 report steps to 2016 in 35 min. Initial in-place volumes match, pressure within 0.46 %, cumulative production within 0.9 %
  • Parser gaps found and fixed: MAXVALUE/MINVALUE, MULTIREG. ADDZCORN is not supported yet; the import refuses explicitly

Equinor Volve data (Equinor Open Data Licence) is not redistributed with Kanysh. The deck needed 3 documented edits for OPM to accept it; OPM ignored ADDZCORN and PRIORITY. Full report.

§ 07 / Install

One file.
Three steps.
First word: “begin”.

For Claude Desktop it is a one-click .mcpb extension. For other MCP clients the same archive runs as a regular stdio server. uv installs the Python dependencies; the archive holds the code and the public Norne demo, nothing else.

01 · Download
Download the .mcpb file
The standard edition is CPU, 14.0 MB. For NVIDIA cards there is a separate GPU edition (CUDA 12.6; the first install downloads about 2.5 GB); both can be installed side by side. macOS, Linux and Windows — native, no WSL; installation on a real Windows machine is still being verified: Windows guide.
↳ ~1 minute
02 · Install
Open it in Claude Desktop
The client installs the dependencies, which needs network access and disk space. Choose a results folder and, optionally, your exported model folder — it gets read-only access.
↳ Claude Desktop · a few minutes
03 · Start
Choose the “begin” prompt
The agent explains what it can do. Add a folder with your export, or open the Norne demo: saved results, no recalculation.
↳ ready to work
Other MCP clients

Codex, Cursor and others

Clone the repository, install dependencies with uv (Python 3.12 required) and register a stdio server in your client’s configuration (on Windows the path is .venv\Scripts\kanysh-basic.exe). No git? The .mcpb file is a regular zip: unpack it and run uv run --directory <folder> server.py.

ChatGPT on the web and in its app connects only to remote MCP servers over HTTPS, so a local server is out of reach. Connecting via OpenAI Secure MCP Tunnel is planned.

shellgit clone https://github.com/almukhanomr/kanysh && cd kanysh uv python install 3.12 uv sync --frozen --no-dev --extra ui --extra viewer --python 3.12 # Claude Desktop / Claude Code: uv run --no-sync kanysh-basic setup
JSON · Cursor, manual Claude Desktop and most clients{ "mcpServers": { "kanysh-basic": { "command": "/path/to/kanysh/.venv/bin/kanysh-basic", "args": ["--home", "/path/to/state", "mcp", "--profile", "agent"] } } }
Codex · ~/.codex/config.toml[mcp_servers.kanysh-basic] command = "/path/to/kanysh/.venv/bin/kanysh-basic" args = ["--home", "/path/to/state", "mcp", "--profile", "agent"] startup_timeout_sec = 120
Kanysh Basic · 0.2.0-dev6v0.2.0-dev6 release github.com/almukhanomr/kanysh · v0.2.0-dev6 ↗ manifest MCPB v0.4 · uv runtime · python >=3.12 <3.13 platform win32 · darwin · linux license Apache-2.0 cpu kanysh-basic-0.2.0-dev6.mcpb · 13 977 034 B sha256 1c52a8c8753cc74eaa7150719540e935554c0c411cf9aa00148456c5325f6a58 gpu kanysh-basic-gpu-0.2.0-dev6.mcpb · 13 983 348 B · CUDA 12.6 sha256 312b9107cafc1e1e736771a00eec5f1c2d6cce7186094470dd1042bbdc717b54 status early release · Claude Desktop and Claude Code — ready; other MCP clients — via stdio
§ 08 / Limits

Honest about what
Basic does not do.

A numerical PASS does not replace geological judgement. Here is where the limits are today.

§ 09 / Kanysh Advanced

Next: a geological
workstation driven
by conversation.

Kanysh Advanced is the next step: an AI-native workstation in the browser, on the customer’s GPU server, on top of OSDU. Seismic, wells and modelling through a dialogue with the agent. This is a development direction, not a delivery promise: Basic does not include these features.

Now
Basic
accepted · 0.2.0-dev6

MCP copilot alongside Petrel/RMS: import, QC, volumes, reconciliation, sensitivity, reports.

Advanced
Modelling
planned

Multi-horizon, multi-fault structural models, well-log upscaling, facies and spatial property simulation, well correlation.

Advanced
Scale and server
planned

Large ROFF, remote GPU compute, S3 and OSDU, server-side rendering of large scenes, seismic interpretation.

Advanced
Dynamics
planned

Basic already runs your finished deck in OPM Flow. Next: building the flow model, history matching (ES-MDA), ensembles and development-plan optimisation.

Kanysh Advanced interface concept
Kanysh
project: Tengiz-East  ·  OSDU: connected
● GPU · 71% VRAM · allocated geologist
⬡ ◈ ⌇ ▦ ≋ ⊞
inline 1247 · crossline 3204 tile · seismic/tengiz/1247.png z: t-domain · 0—5200 ms
Top Triassic · auto-tracked
SDMS stream CDP 4120 ────────────────── 4380 colormap: copper
Agent · LangGraph live
geologist
Show inline 1247 for Tengiz and track the Top Triassic.
→ osdu_get_seismic(survey="tengiz-east", inline=1247)
→ track_horizon(name="Top Triassic", method="seisnet")
kanysh
The slice is rendered. Top Triassic tracked over 92% of the area, uncertain zones highlighted — check near CDP 4280. Save the horizon to OSDU?
geologist
Compute Wyllie porosity for KZ-12 in this interval.
● _ ↵
Tengiz-East · OSDU · 4 wells · queue: 2 jobs online
§ 10 / Partnership

Looking for pilots
and partners for Advanced.

Basic shows the working core: verifiable calculations from a conversation. We are open to pilots on real models and to conversations with investors and strategic partners, especially those who know Petrel/RMS workflows, OSDU and oil and gas interpretation.

Get in touch →
§ 11 / FAQ

Frequently asked questions.

In short: what it is, where the data lives, what you need to run it.

+What is Kanysh Basic?
It is an AI copilot for calculations on geological models that works alongside Petrel and RMS. Technically it is a local MCP server with an offline viewer: you talk in your MCP client (for example Claude Desktop or Claude Code), and Kanysh Basic imports exported models, calculates volumes and scenarios and returns reports with independent checks.
+Does it replace Petrel or RMS?
No. You build the model as usual. Kanysh Basic works with exported files (DATA/GRDECL, EGRID/ROFF, surfaces, wells, LAS, CSV) and takes over the calculations and checks that usually end up in Excel. Native Petrel and RMS project databases are not supported.
+Where does my data go?
Models, calculations and results stay on your workstation. Kanysh Basic has no cloud and no built-in LLM. Your MCP client’s AI provider sees the conversation and tool results; you and your client settings decide exactly what is sent.
+Does it work with ChatGPT?
Kanysh Basic is a standard MCP server, so it works with clients that launch local MCP servers: Claude Desktop, Claude Code, Codex, Cursor and others. ChatGPT on the web and in its app connects only to remote servers over HTTPS, and your workstation’s localhost is out of its reach. Connecting via OpenAI Secure MCP Tunnel is planned; computation would still stay on your workstation.
+Can the AI get the numbers wrong?
The numbers come from deterministic Python code, not the language model, and every result is checked by an independent method. Parameters found in files are only proposals with a file and line reference: nothing runs without your confirmation, and missing constants are never filled in.
+What do I need to run it?
Any MCP client that launches local servers. The easiest are Claude Desktop (the .mcpb extension) and Claude Code: ready to use today. Codex, Cursor and others connect via stdio. macOS, Linux or Windows and network access for the first dependency install are enough. A GPU is optional: computation runs on CPU by default, and there is a separate GPU edition for NVIDIA. How to install.
+Can it run flow simulation?
Yes, optionally. The simulation_deck_run tool runs your finished ECLIPSE deck in OPM Flow exactly as supplied: nothing is generated or defaulted. It needs Linux, or Windows with WSL2 — kanysh-basic setup-opm installs OPM into a dedicated distribution and self-tests it on SPE1. Without a set-up OPM the request refuses honestly, with install steps. Building the flow model and history matching belong to Kanysh Advanced.
+How much does it cost?
Kanysh Basic is free, licensed under Apache-2.0, with source code on GitHub. Pilots on your models and Kanysh Advanced are discussed separately: write to us.
+What about OSDU, seismic and the GPU server?
That is Kanysh Advanced, the next stage: an AI-native workstation in the browser, on the customer’s GPU server, on top of OSDU. It is a development direction today; Basic does not include these features. Read more.
Kanysh Basic · v 0.2.0-dev6

Download the .mcpb.
Type “begin”.
Then calculate.