Endpoint
Authorization: Bearer. Most MCP clients handle this automatically after the OAuth flow.
The server is published to the official MCP registry as dev.oleander/oleander, so most clients can install it by name.
Example workflow
A typical agent task chains three tools:Tools
Queries
Reads and writes go to different tools.query_run is annotated read-only so clients can skip the confirmation prompt; query_submit is annotated as a write and asks first.
lake_query is gone. It pinned DuckDB and returned rows for reads and writes alike; query_run and query_submit replace it and route instead. See Query routing.Saved query schedules
A schedule points at a saved query, sosaved_queries_list/saved_queries_create are here too - without them there’s no query id to schedule.
A saved query has at most one schedule; scheduling an already-scheduled query reschedules it in place rather than adding a second.
saved_queries_schedules_create requires confirm: true - it starts recurring billable compute and overwrites its destination table on every run. See Scheduled queries with time-travel for what these schedules do.
Identity
Catalogs and tables
External connections
BigQuery, Snowflake, and Postgres tables are queried through
query_run as connection.schema.table - no source-specific query tool. Those queries always run on DuckDB.
Spark
Runs and pipelines
Lineage
Investigations
Docs
Registry listings
The server ships aserver.json manifest and is listed where agents look for tools, so most clients can add it without a hand-written config.
Two agent-readable surfaces are served from the site itself:
Annotations
Every tool carries MCP annotations so clients can decide what needs confirmation:readOnlyHintis true for anything that only reads.query_runis guarded to keep that promise - a statement that could mutate is rejected rather than run.destructiveHintis true for drops and aborts.- Tools that start compute or change data take an explicit
confirmargument on top of the annotation.