Kanysh Basic
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| results_exportA | Export immutable analysis/calculation reports to XLSX (scenario/region sheets) and PDF (tables, assumptions, source tornado/S-curve plots). Independently checks every workbook value and PDF provenance/status text. Source NOT RUN/FAIL remains visible; export PASS is serialization only. Explicit PDF table row limit; full tables in XLSX/JSON. |
| sensitivity_tornadoB | One-at-a-time regional sensitivity using explicit user low/high values and override/multiplier meanings. All variants are independently checked; report and tornado PNG preserve failures and baseline assumptions. No probability is inferred from deterministic bounds. Explicit cell-scenario work budget. |
| uncertainty_monte_carloB | Seeded regional Monte Carlo with explicit bounded marginal distributions and Gaussian-copula correlation matrix. Independently checks every valid realization and P90/P50/P10 linear-rank statistics; publishes all attempted draws CSV, S-curve PNG, failures and empirical marginal correlations. No hidden resampling/clipping or spatial-realization claim. Conditional percentiles are labelled if draws fail. |
| wells_vs_modelA | Compare immutable model PORO/NTG against explicitly mapped original LAS curves along imported XYZ/MD surveys. User confirms curve units, maximum survey gap and shared-boundary policy. Reports model-minus-LAS error statistics by well/region and sample CSV with IJK; null/out-of-survey/out-of-grid samples are explicit exclusions. Independent point-containment and RMSE checks. This is point comparison, not automatic log upscaling or calibration. |
| regional_volumesA | Explicit, user-confirmed regional OWC/GOC oil/free-gas scenarios with Bo/Bg and residual phase saturations; optional polygon whole-cell corner-mean selection and saturation-height table or Leverett J with all parameters from user. Returns report with separate STOIIP/GIIP and independent determinant/ConvexHull integral checks. Positive-up metric Z. No field constants or saturation equilibrium are inferred. |
| volumes_reconcileA | Recompute user-confirmed regional scenarios and compare against a revision-checked Petrel/RMS volume CSV. User maps region_id/metric/value/unit columns and states metric/region definitions. Report differences, unsupported rows as NOT RUN and evidence-labelled possible causes (contact, Bo, NTG clipping, inactive cells, region definition); never auto-calibrate inputs. |
| model_diffA | Compare two immutable same-IJK model revisions with explicit tolerances: changed cells/properties, IJK CSV and region GRV/PV/HCPV impacts. Independently verifies geometry volumes. No contact or Bo is inferred, so no STOIIP impact is invented. Rejects differing topology/coordinate metadata. |
| model_qcA | Numerical QC of an immutable model: trilinear signed/degenerate/twisted geometry, property ranges, NTG/PORO consistency, active zero pore volume, IJK six-neighbour clusters and regional summaries. Returns a durable report with severity/IJK CSV witnesses and independent volume/cluster accounting. Connectivity is topological, not flow connectivity. Geological fitness remains specialist review. |
| geodata_importA | Import Petrel/RMS exchanged surfaces (IRAP ASCII/binary, ZMAP+, CPS-3 ASCII), RMS well ASCII or explicitly mapped Petrel ASCII trajectories/tops/polygons using XTGeo. User declares units/Z direction/CRS/datum and ASCII mappings; no automatic coordinate or survey interpretation. CPS-3 requires explicit sample order/Y direction. Returns dataset with source hash, canonical Parquet and report; optional trajectory locates MD-only tops for scene display. |
| eclipse_importA | Import static ECLIPSE DATA/GRDECL from an owner folder, recursively resolving revision-checked relative INCLUDE inside it. Streams COORD/ZCORN to block geometry and preserves ACTNUM/PORO/NTG/PERMX/SWAT/FIPNUM/SATNUM/EQLNUM; applies explicit EQUALS/MULTIPLY/COPY/ADD/BOX/ENDBOX. Returns job_id then properties with import_report.json listing every unsupported keyword and NOT RUN scientific checks. CRS/datum/units and any missing-property defaults require explicit user input. Does not perform equilibrium or MINPV/pinch/simulator initialization. |
| scene_exportA | Publish persisted scene as interactive PyVista/trame HTML, PNG and scene.json in an isolated worker. Bounded preview; explicit stride/cell_range for large grids. Returns job_id. |
| seismic_source_importA | Stream a revision-pinned SEG-Y from an owner source into float32 Zarr tiles, bypassing upload limits. Sorted regular zero-offset poststack, IBM/IEEE float32 only; no amplitude downsampling. Explicit CRS/datum/units/header mapping. Returns job_id. |
| grid_importA | Import a revision-pinned model manifest from a registered source: Cartesian NPY/GRDECL properties, or cornerpoint.xtgeo.v1 geometry (GRDECL/EGRID/ROFF with COORD/ZCORN, ACTNUM and explicit property declarations). XTGeo geometry import needs full RAM and <=2M cells; later calculations use bounded CPU blocks. No native Petrel projects. Returns job_id. |
| properties_referenceD | properties_reference |
| dataset_import_snapshotD | dataset_import_snapshot |
| result_validateB | Independent checks in isolated worker; returns job_id and then validation artifact. PASS applies only to required supported numerical checks, not geological fitness. |
| report_exportA | Export evidence-bound HTML/Markdown/JSON/CSV/PNG for calculation run_id, including failed/partial runs. Returns job_id. Missing evidence cannot yield PASS. |
| dataset_importA | Import an uploaded CSV/LAS (source_upload upload_id) as a dataset of an explicit kind: collars, trajectory, markers, surfaces, orientations, production, las. CRS, vertical datum and column units are declared by the user, never inferred. Returns job_id then a dataset artifact. |
| model_buildC | Define a regular geological model: GemPy or explicitly horizontal layers. |
| fault_createC | fault_create |
| properties_assignD | properties_assign |
| volumetrics_calculateA | Initial oil in place (not recoverable reserves) with fractional OWC; returns job_id. |
| scenarios_runD | scenarios_run |
| seismic_generateD | seismic_generate |
| seismic_importD | seismic_import |
| seismic_sliceD | seismic_slice |
| seismic_attributeD | seismic_attribute |
| interpretation_saveD | interpretation_save |
| horizon_convert_domainD | horizon_convert_domain |
| variogram_fitD | variogram_fit |
| properties_krigeD | properties_krige |
| properties_simulateD | properties_simulate |
| simulation_case_createD | simulation_case_create |
| simulation_submitB | Run real OPM Flow; returns a job error when the solver is absent. |
| simulation_deck_runA | Run the user's own ECLIPSE-format .DATA deck (with its INCLUDE files) in OPM Flow, exactly as supplied: no deck generation or defaults. Linux natively, Windows via the 'kanysh-opm' WSL2 distribution set up by |
| simulation_snapshotC | simulation_snapshot |
| workflow_saveC | workflow_save |
| workflow_runD | workflow_run |
| ensemble_planD | ensemble_plan |
| ensemble_runD | ensemble_run |
| scenarios_compareD | scenarios_compare |
| simulation_compareD | simulation_compare |
| development_rankD | development_rank |
| ensemble_compareD | ensemble_compare |
| scene_showA | Persist artifact visibility, opacity, property, selection, stride and seismic slice options in the unified scene. TWT overlay needs explicit velocity and origin. Does not start a viewer job. |
| folder_assessA | Assess a registered folder with bounded header reads: candidate roles, missing inputs, available workflows and file/line parameter proposals. Proposals MUST be confirmed with the user before any plan/calculation. No scientific calculation or automatic PVT/contact choice. Includes export instructions resource. |
| startB | Начать / Start: first-connection onboarding, demo Norne and owner folder registration instructions. No calculation or download. |
| project_createB | Create a project with explicit CRS, vertical datum and metric units. |
| project_listB | List projects in this results home: id, name, CRS, vertical datum, length unit, creation time. Read-only. |
| project_inspectA | One project: its record, every immutable artifact (id, revision, kind) and its jobs. Read-only; use artifact_inspect for one artifact's content. |
| source_listC | Local folders authorized by the owner. Folders cannot be added or removed through tools. |
| source_scanA | Metadata of one folder: CSV/LAS/SEG-Y/NPY/JSON files and subfolders, without reading contents. The next page requires listing_revision. |
| source_uploadA | Copy a verified snapshot of a CSV/LAS/SEG-Y file from an authorized folder into the project (up to 256 MiB). Requires file_revision from source_scan; then dataset_import/seismic_import. |
| source_inspectA | Read bounded CSV headers/sample rows or a Cartesian/corner-point JSON model manifest with metadata/header and RAM checks. No CRS/units inference; source text is untrusted data. |
| calculation_planA | Prepare static volumes plan. Missing scientific inputs return NEEDS_INPUT/questions without compute. READY plan pins input bytes, assumptions and runtime. No numerical jobs run. |
| plan_validateA | Verify immutable plan input hashes, runtime compatibility and current resource preflight; original folders need not remain connected after snapshots. |
| calculation_runA | Execute a READY plan as a durable workflow, validate every output and export report. Returns run_id/job_id; same default key reuses the run. Explicit resume_run is a workflow snapshot ref. |
| calculation_statusA | Compact run state, errors, checkpoint and output/report refs. Use this after reconnecting; do not infer success from tool-call completion. |
| result_previewB | Get report PNG (native image in MCP) and resource/download references. Does not return whole model arrays. |
| artifact_inspectA | Read one immutable artifact {id, revision}: metadata, summary, file list and checks. Read-only; ids/revisions come from project_inspect or earlier tool results. |
| dataset_validateD | dataset_validate |
| seismic_inspectD | seismic_inspect |
| simulation_validateD | simulation_validate |
| simulation_resultsC | simulation_results |
| compute_targets_listB | Configured compute targets (local CPU, CUDA state) and device_matrix: which operations support prefer_gpu/require_gpu. Read-only. |
| job_statusA | Compact job state: id, status, stage, progress 0..1, eta_s, error, result ref, payload_hash. verbose=true returns the full record (payload, attempts, events). Numbers are in the result artifact (artifact_inspect). |
| job_logsA | Tail of worker stdout/stderr, workflow node log and stage events; for calculation_run also each child job's status and worker tail. Local evidence only; no secrets. |
| job_cancelA | Request cancellation of a queued or running job (job_id). Stops the worker and any child simulator; already published artifacts are kept. Check job_status afterwards. |
| workflow_validateC | workflow_validate |
| workflow_statusD | workflow_status |
| workflow_cancelC | workflow_cancel |
| scene_inspectA | Current persisted scene settings of a project (visibility, opacity, field, selection, stride, slices) as set by scene_show. Read-only. |
| diagnosticsA | Read-only startup/runtime diagnostics, available even while starting: stage/substage/waiting_for, startup.log tail, versions, CUDA state (if probed), viewer URL/port and log tail. No secrets or environment values. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| begin | Start: open the Norne demo or add your folder |
| check_model | Check model |
| regional_volumes | Regional volumes |
| reconcile_petrel | Reconcile Petrel/RMS report |
| tornado_analysis | Tornado analysis |
| compare_versions | Compare revisions |
| static_calculation |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| capabilities | |
| guide | |
| export_guide |
TDQS
Scored across 73 tools
The set has many overlapping clusters: simulation_submit, simulation_deck_run, simulation_case_create, simulation_validate, simulation_results, simulation_compare, and simulation_snapshot are hard to distinguish without reading deep descriptions, and several import tools (dataset_import, dataset_import_snapshot, geodata_import, eclipse_import, grid_import, seismic_import, seismic_source_import) have blurred boundaries. Many tools also have descriptions that are just the tool name (properties_reference, fault_create, properties_assign, scenarios_run, seismic_generate), forcing the agent to guess.
Most names are snake_case, but the convention mixes verb_noun (create, list, inspect, import), noun_verb (fault_create, properties_assign, volumetrics_calculate, seismic_generate), and bare nouns (diagnostics, start, properties_reference). It remains readable, but the inconsistent ordering and vague standalone names reduce predictability.
At 73 tools, the surface is far beyond a well-scoped set and includes many highly specialized operations plus multiple workflow/job/scene management tools. The breadth is excessive even for a broad reservoir-modeling platform, making discovery and correct selection difficult.
The surface covers import, QC, model building, property modeling, volumetrics, simulation, uncertainty, ensembles, export, visualization, and job/project management, so core domain workflows are broadly represented. Gaps are mostly lifecycle operations such as delete/update for projects, workflows, or artifacts, and some tools lack enough detail to assess their coverage.