{"openapi":"3.1.0","info":{"title":"Metaplane (BYOK) API","version":"0.1.0","description":"Metaplane (BYOK) lets an AI assistant read your own Metaplane data through the Metaplane API with a key you supply (Metaplane API key). Read-only: 8 tools (list_connections, get_connection_sync_status, list_connection_monitors, get_monitor, get_monitor_status, get_monitor_evaluation_history, list_tagged_monitors, list_tagged_objects). The BYOK key travels with each request, is used for that one...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-metaplane.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-metaplane/docs"},"termsOfService":"https://connectorbay.com/byok-metaplane/terms"},"servers":[{"url":"https://byok-metaplane.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-metaplane/docs"},"security":[{"upstreamKey":[]}],"components":{"securitySchemes":{"bearer":{"type":"http","scheme":"bearer","description":"Optional. A Pro API key raises rate limits; no credentials are required."},"upstreamKey":{"type":"apiKey","in":"header","name":"X-Upstream-Key","description":"Your own key for the service this connector wraps (bring your own key). Used for that one call only; never stored, logged or cached."}},"schemas":{"Error":{"type":"object","properties":{"ok":{"const":false},"error":{"type":"object"}}}}},"paths":{"/v1/tools/list_connections":{"post":{"operationId":"list_connections","summary":"List the data stack connections (warehouses, BI tools, dbt, Airflow, Fivetran and more) with name, type, enabled state a","description":"List the data stack connections (warehouses, BI tools, dbt, Airflow, Fivetran and more) with name, type, enabled state and status. Use for \"Which sources are connected to Metaplane\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"include_deleted":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":false,"description":"Also list deleted connections.","title":"Include Deleted"}},"title":"list_connectionsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_connection_sync_status":{"post":{"operationId":"get_connection_sync_status","summary":"Get the current sync status of a connection with the time and the error message of the last sync, if any. This only read","description":"Get the current sync status of a connection with the time and the error message of the last sync, if any. This only reads the status and does not start a sync. Use for \"Is my Metaplane connection syncing without errors\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"connection_id":{"description":"Connection id (UUID, the id value from list_connections).","maxLength":200,"title":"Connection Id","type":"string"}},"required":["connection_id"],"title":"get_connection_sync_statusArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_connection_monitors":{"post":{"operationId":"list_connection_monitors","summary":"List the monitors of one connection with type, name, schedule, monitored table or column path, enabled state and tags. S","description":"List the monitors of one connection with type, name, schedule, monitored table or column path, enabled state and tags. SQL and thresholds are left out. Use for \"Which monitors does Metaplane run on my warehouse\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"connection_id":{"description":"Connection id (UUID, the id value from list_connections).","maxLength":200,"title":"Connection Id","type":"string"},"include_disabled":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":false,"description":"Also list disabled monitors.","title":"Include Disabled"}},"required":["connection_id"],"title":"list_connection_monitorsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_monitor":{"post":{"operationId":"get_monitor","summary":"Get one monitor by id: type, name, schedule, monitored path, enabled state, tags and change times. SQL and thresholds ar","description":"Get one monitor by id: type, name, schedule, monitored path, enabled state, tags and change times. SQL and thresholds are left out. Use for \"Show details of Metaplane monitor {monitor_id}\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"monitor_id":{"description":"Monitor id (UUID, the id value from list_connection_monitors).","maxLength":200,"title":"Monitor Id","type":"string"}},"required":["monitor_id"],"title":"get_monitorArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_monitor_status":{"post":{"operationId":"get_monitor_status","summary":"Get the latest evaluation of a monitor per group: result, lower and upper bound, status (PASS, FAIL, IN_TRAINING and mor","description":"Get the latest evaluation of a monitor per group: result, lower and upper bound, status (PASS, FAIL, IN_TRAINING and more) and open incident ids. Use for \"Is Metaplane monitor {monitor_id} passing\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"monitor_id":{"description":"Monitor id (UUID, the id value from list_connection_monitors).","maxLength":200,"title":"Monitor Id","type":"string"}},"required":["monitor_id"],"title":"get_monitor_statusArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_monitor_evaluation_history":{"post":{"operationId":"get_monitor_evaluation_history","summary":"Get the past evaluations of a monitor, newest first: result, expected bounds, pass or fail status and time. A question o","description":"Get the past evaluations of a monitor, newest first: result, expected bounds, pass or fail status and time. A question only, nothing is changed. Use for \"How did Metaplane monitor {monitor_id} evaluate over time\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"monitor_id":{"description":"Monitor id (UUID, the id value from list_connection_monitors).","maxLength":200,"title":"Monitor Id","type":"string"},"limit":{"anyOf":[{"maximum":500,"minimum":1,"type":"integer"},{"type":"null"}],"default":100,"description":"How many evaluations to return (1 to 500).","title":"Limit"},"sort_order":{"anyOf":[{"enum":["ASC","DESC"],"type":"string"},{"type":"null"}],"default":"DESC","description":"Order by time: DESC for newest first, ASC for oldest first.","title":"Sort Order"}},"required":["monitor_id"],"title":"get_monitor_evaluation_historyArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_tagged_monitors":{"post":{"operationId":"list_tagged_monitors","summary":"List the monitors that carry a tag, with type, name, schedule, monitored path and enabled state. Use for \"Which Metaplan","description":"List the monitors that carry a tag, with type, name, schedule, monitored path and enabled state. Use for \"Which Metaplane monitors have the tag finance\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"tag":{"description":"Tag name, for example finance.","maxLength":200,"title":"Tag","type":"string"},"include_disabled":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":false,"description":"Also list disabled monitors.","title":"Include Disabled"}},"required":["tag"],"title":"list_tagged_monitorsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_tagged_objects":{"post":{"operationId":"list_tagged_objects","summary":"List the tables and columns that carry a tag, as type and absolute path (database.schema.table.column). Pages are chaine","description":"List the tables and columns that carry a tag, as type and absolute path (database.schema.table.column). Pages are chained with next_page_token. Use for \"Which tables are tagged pii in Metaplane\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"tag":{"description":"Tag name, for example pii.","maxLength":200,"title":"Tag","type":"string"},"next_page_token":{"anyOf":[{"maxLength":500,"type":"string"},{"type":"null"}],"default":null,"description":"Token from nextPageToken of the previous answer to fetch the next page.","title":"Next Page Token"}},"required":["tag"],"title":"list_tagged_objectsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}}}}