Endpoint
Authorization: Bearer. Most MCP clients handle this automatically after the OAuth flow.
Example workflow
A typical agent task chains three tools:Tools
Identity
| Tool | Description |
|---|---|
oleander_whoami | Returns the authenticated identity and organization resolved by the MCP server |
oleander_health_check | Returns MCP server health and timestamp |
Lake queries
| Tool | Description |
|---|---|
oleander_query_lake | Run 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
| Tool | Description |
|---|---|
oleander_list_catalogs | List all available Iceberg catalogs and their tables |
oleander_list_catalog_namespaces | List namespaces in a catalog |
oleander_list_catalog_tables | List tables in a catalog or namespace |
oleander_read_table_metadata | Read Iceberg table metadata - schema, partition specs, snapshots, location |
oleander_read_table_size | Compute table size from Iceberg manifests, optionally scoped to a snapshot or partition |
oleander_create_catalog_namespace | Create an Iceberg namespace in a catalog |
oleander_create_table | Create an Iceberg table with a given schema |
oleander_drop_table | Drop an Iceberg table |
oleander_add_table_columns | Add columns to an existing Iceberg table |
oleander_rename_table_column | Rename a column in an Iceberg table |
oleander_drop_table_columns | Drop columns from an Iceberg table |
oleander_load_table | Load a file into an existing Iceberg table |
oleander_upload_and_load_table | Upload a file and load it into an Iceberg table in one step |
Spark
| Tool | Description |
|---|---|
oleander_list_spark_artifacts | List uploaded PySpark scripts and JARs |
oleander_upload_spark_artifact | Upload a PySpark script or JAR as a versioned artifact |
oleander_get_spark_artifact_content | Fetch the source of a PySpark artifact by name and version |
oleander_submit_spark_job | Submit a Spark job run for a named artifact |
oleander_abort_spark_job_run | Abort a running Spark job |
Runs and pipelines
| Tool | Description |
|---|---|
oleander_list_job_runs | List recent runs for a job by namespace and name |
oleander_get_job_run | Get full execution context for a job run - state, timestamps, I/O, datasets, warnings |
oleander_get_job_run_logs | Get paginated logs for a job run, with optional text search and severity filter |
oleander_get_job_run_traces | Get paginated OTel trace spans for a job run |
oleander_get_job_run_cost | Get cost breakdown for a job run - vCPU-hours, GB-hours, cost per record |
oleander_list_pipeline_runs | List runs for a pipeline with time range and state filters |
oleander_get_pipeline_run | Get full execution context for a pipeline run across all its job runs |
oleander_get_pipeline_run_cost | Get aggregated cost across all job runs in a pipeline execution |
oleander_get_bigquery_table_cost | Get cost breakdown for a BigQuery table - producing pipelines, query types, full-scan detection |
Lineage
| Tool | Description |
|---|---|
oleander_list_lineage_run_events | List raw OpenLineage run events with time range, job, namespace, and state filters |
oleander_get_job_run_lineage | Get the lineage graph for a run - inputs, outputs, child runs, downstream consumers, schema |
oleander_get_column_lineage | Get column-level lineage for a dataset version - upstream sources and downstream dependents |
Investigations
| Tool | Description |
|---|---|
oleander_list_investigations | List investigations for your organization |
oleander_get_investigation | Get the full output of an investigation - telemetry gathered, root cause, remediation |