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)
PYAccess 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': 64Conformance 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.jsonLatest 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.