Pre-release. Ophiolite runs today for design partners; public source and server image publication are in preparation.

Developers

Build on exact versions

One typed API for everything the Workspace does, a Python SDK and command line on top of it, and agents that reach it over MCP under the same rules.

Available Python SDK 0.x preview — Preview (0.x) release; Windows is not yet qualified

Quickstart

Sign in from Python through your browser, use an access key, or connect an MCP client.

Python sign-in

python -m pip install 'ophiolite[pandas,numpy,validation] @ git+https://github.com/tuna-soup/ophiolite-sdk@af9a867b2bc181bb455ea1a2c3da4b45450c77e2'

python - <<'PY'
from ophiolite import auth
# Opens your browser; approve the request in the Workspace. Nothing is typed into the script.
auth.device_login('https://ophiolite.example.org', 'geoscience', write=True)
PY

Access key

import os
from ophiolite import Client, Credential

# An access key from your account settings, in the environment, never in the source.
credential = Credential.bearer(os.environ['OPHIOLITE_TOKEN'], grant=os.environ.get('OPHIOLITE_GRANT'))
with Client(os.environ['OPHIOLITE_URL'], os.environ['OPHIOLITE_PROJECT'], credential) as client:
    data = client.read(asset_id, exact_revision, curves=['GR'])

MCP client

{
  "mcpServers": {
    "ophiolite": {
      "url": "https://ophiolite.example.org/mcp",
      "headers": { "Authorization": "Bearer <agent key from Settings → Agents>" }
    }
  }
}

One API, one schema

Every operation is in one OpenAPI document with generated Python and TypeScript types. The browser is an ordinary client of it, so anything you can do in the Workspace you can do from code, under the same permission checks.

Sandboxed runs

Jobs run in containers with no network and a read-only file system, with these limits per job:

DEFAULTS = {'memory_mb': 256, 'seconds': 60, 'cpus': 1.0, 'pids': 64

Conformance tasks

Partial Offline, server and agent tasks, each with an oracle, run nightly against a deployment. A model-driven agent test over MCP is not yet part of the suite.

Published with the source release; design partners run them today:

python conformance/run.py offline
python conformance/run.py server
python conformance/run.py agent
python conformance/run.py server --target https://… --people people.json

Latest results

Latest changes for developers

  • Portable bundles with an offline reader. Versioned export bundles, archives and bundle import, read offline with no server.
  • Wells and wellbores as typed entities. Typed wells and wellbores with evidenced associations in the browser and the SDK.
  • Managed catalog and mandatory conditional sharing. Shared assets, snapshots, originals and reviews move into the managed store with a verified migration; sharing changes must name the version they read.
  • Sign-in that lasts a working week. One session policy for the browser, SDK and applications: seven days idle, thirty days at most; sign-in returns you to the page you asked for.