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: your code reads the exact versions your team trusts, publishes results others reuse, and everything stays on your server.
Available Python SDK 0.x preview — Preview (0.x) release; Windows is not yet qualified
Quickstart
Sign in from Python through your browser, or connect an MCP client.
Python sign-in
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)MCP client
{
"mcpServers": {
"ophiolite": {
"url": "https://ophiolite.example.org/mcp",
"headers": { "Authorization": "Bearer <agent key from Settings → Agents>" }
}
}
}Technical details
Install the SDK at the commit this release pins:
python -m pip install 'ophiolite[pandas,numpy,validation] @ git+https://github.com/tuna-soup/ophiolite-sdk@ac62ad00e2fe399756474cd655ee6b750966dd88'Or read with a project access key from your account settings:
import os
from ophiolite import Client, Credential
# A project 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'])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, a read-only file system and limits on memory, time, processes and output, inside your boundary.
Technical details
The limits per job, quoted from the runner:
DEFAULTS = {'memory_mb': 256, 'seconds': 60, 'cpus': 1.0, 'pids': 64Tools and notebooks
Write a step in Python, run it on your own computer against an exact version, and publish its result with the exact inputs it read. The notebook gallery has worked examples that read a project from a notebook.
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.jsonLatest changes for developers
- Replaced operation routes are deprecated. Operation routes that have a named successor answer as before, with Deprecation and Sunset headers and a link to the route that replaces them.
- Unversioned browser routes are deprecated. The browser routes from before the versioned API answer as before, with Deprecation and Sunset headers naming the date after which they may be removed.
- 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.