Skip to main content
The oleander MCP server exposes your context graph - lake tables, catalogs, pipeline runs, lineage, costs, logs, and traces - to any MCP-compatible agent.

Endpoint

https://oleander.dev/mcp
Authenticate with your oleander API key via Authorization: Bearer. Most MCP clients handle this automatically after the OAuth flow.

Example workflow

A typical agent task chains three tools:
oleander_list_catalogs        → discover available tables
oleander_query_lake           → SELECT from a table
oleander_get_job_run_lineage  → trace what that run read and wrote
The agent calls these in sequence, each result informing the next, without you specifying the order.

Tools

Identity

ToolDescription
oleander_whoamiReturns the authenticated identity and organization resolved by the MCP server
oleander_health_checkReturns MCP server health and timestamp

Lake queries

ToolDescription
oleander_query_lakeRun a SQL query against the oleander lake (DuckDB). Supports all registered catalogs, Iceberg tables, and telemetry tables. Write operations require allow_save: true.

Catalogs and tables

ToolDescription
oleander_list_catalogsList all available Iceberg catalogs and their tables
oleander_list_catalog_namespacesList namespaces in a catalog
oleander_list_catalog_tablesList tables in a catalog or namespace
oleander_read_table_metadataRead Iceberg table metadata - schema, partition specs, snapshots, location
oleander_read_table_sizeCompute table size from Iceberg manifests, optionally scoped to a snapshot or partition
oleander_create_catalog_namespaceCreate an Iceberg namespace in a catalog
oleander_create_tableCreate an Iceberg table with a given schema
oleander_drop_tableDrop an Iceberg table
oleander_add_table_columnsAdd columns to an existing Iceberg table
oleander_rename_table_columnRename a column in an Iceberg table
oleander_drop_table_columnsDrop columns from an Iceberg table
oleander_load_tableLoad a file into an existing Iceberg table
oleander_upload_and_load_tableUpload a file and load it into an Iceberg table in one step

Spark

ToolDescription
oleander_list_spark_artifactsList uploaded PySpark scripts and JARs
oleander_upload_spark_artifactUpload a PySpark script or JAR as a versioned artifact
oleander_get_spark_artifact_contentFetch the source of a PySpark artifact by name and version
oleander_submit_spark_jobSubmit a Spark job run for a named artifact
oleander_abort_spark_job_runAbort a running Spark job

Runs and pipelines

ToolDescription
oleander_list_job_runsList recent runs for a job by namespace and name
oleander_get_job_runGet full execution context for a job run - state, timestamps, I/O, datasets, warnings
oleander_get_job_run_logsGet paginated logs for a job run, with optional text search and severity filter
oleander_get_job_run_tracesGet paginated OTel trace spans for a job run
oleander_get_job_run_costGet cost breakdown for a job run - vCPU-hours, GB-hours, cost per record
oleander_list_pipeline_runsList runs for a pipeline with time range and state filters
oleander_get_pipeline_runGet full execution context for a pipeline run across all its job runs
oleander_get_pipeline_run_costGet aggregated cost across all job runs in a pipeline execution
oleander_get_bigquery_table_costGet cost breakdown for a BigQuery table - producing pipelines, query types, full-scan detection

Lineage

ToolDescription
oleander_list_lineage_run_eventsList raw OpenLineage run events with time range, job, namespace, and state filters
oleander_get_job_run_lineageGet the lineage graph for a run - inputs, outputs, child runs, downstream consumers, schema
oleander_get_column_lineageGet column-level lineage for a dataset version - upstream sources and downstream dependents

Investigations

ToolDescription
oleander_list_investigationsList investigations for your organization
oleander_get_investigationGet the full output of an investigation - telemetry gathered, root cause, remediation

Editor setup