MCP APIs
Reference for the tools exposed by the Revefi MCP server.
Overview
The Revefi MCP server exposes the tools listed on this page to MCP-compatible clients such as Claude Code, Cursor, and Claude Desktop. To connect a client, follow MCP Setup.
Which tools your client sees depends on the warehouse connected to your Revefi account:
| Tool group | Available for |
|---|---|
| Raden | All accounts |
| Feed | All accounts |
| Table SLA monitors | All accounts |
| Snowflake | Snowflake accounts |
| Databricks | Databricks accounts |
Tools that change data in your account carry a Modifies data note. Most MCP clients ask you to approve these calls before they run.
Times are in epoch seconds (UTC) unless stated otherwise.
Raden
Ask questions of Raden, Revefi's AI agent for data engineering.
ask_raden
Ask Raden a natural-language question about your data, warehouse, spend, usage, or data quality.
If Raden answers quickly, the answer is returned directly with status complete. For a longer question, the tool returns a session_id with status running. Call get_raden_session_status with that session_id to fetch the answer once it's ready.
| Parameter | Type | Required | Description |
|---|---|---|---|
question | string | Yes | The natural-language question to ask Raden |
get_raden_session_status
Check on a question started by ask_raden. Returns status running while Raden is still working, or complete with the answer once it's done.
| Parameter | Type | Required | Description |
|---|---|---|---|
session_id | string | Yes | The session_id returned by ask_raden |
Feed
get_feed_items
List items from your Revefi feed — data quality incidents, spend and usage alerts, digests, and newly discovered tables — newest first.
Returns { items[], offset, limit, has_more }. Each item has id, created_utc_seconds, title, summary, severity, status, url, and an entities map naming the databases, schemas, and warehouses it concerns. When has_more is true, call again with offset increased by limit.
| Parameter | Type | Required | Description |
|---|---|---|---|
offset | integer | No | Number of items to skip. Default 0. |
limit | integer | No | Maximum number of items to return. Default 20, maximum 50. |
tag_filters | array of strings | No | Only items carrying one of these user-defined tags |
revefi_tag_filters | array of strings | No | Only items carrying one of these Revefi-assigned tags |
database_filters | array of strings | No | Only items for tables in these databases |
schema_filters | array of strings | No | Only items for tables in these schemas |
warehouse_filters | array of strings | No | Only items for these warehouses |
notification_channel_filters | array of integers | No | Only items sent to these notification configuration IDs |
Table SLA monitors
A table SLA monitor alerts when a table hasn't been updated within a set number of minutes. See Setting Table SLA for how these monitors work in the Revefi app.
list_sla_monitors
List table SLA monitors, optionally filtered by table location.
Returns { monitors[], truncated }. Each monitor has id, database, schema, table, dataSourceId, displayName, slaMinutes, collectionFrequency, and isMuted. When truncated is true, narrow the filters or raise limit.
| Parameter | Type | Required | Description |
|---|---|---|---|
database_name | string | No | Filter to a specific database |
schema_name | string | No | Filter to a specific schema |
table_name | string | No | Filter to a specific table |
limit | number | No | Maximum number of monitors to return. Default 25, maximum 100. |
get_sla_monitor
Get a single table SLA monitor by its ID.
Returns id, database, schema, table, dataSourceId, displayName, description, slaMinutes, collectionFrequency, and isMuted.
| Parameter | Type | Required | Description |
|---|---|---|---|
monitor_id | number | Yes | The SLA monitor ID |
create_sla_monitor
Modifies dataCreates a monitor that sends alerts. Confirm the table and threshold before running it.
Create a table SLA monitor that alerts when the table hasn't been updated within sla_minutes. Returns the ID of the new monitor.
| Parameter | Type | Required | Description |
|---|---|---|---|
database_name | string | Yes | Database of the table |
schema_name | string | Yes | Schema of the table |
table_name | string | Yes | Name of the table |
sla_minutes | number | Yes | Alert if the table hasn't been updated within this many minutes |
collection_frequency | string | No | How often to evaluate the monitor: hourly, daily, or weekly. Default hourly. |
data_source_id | number | No | Data source ID of the table. Defaults to your account's warehouse. |
display_name | string | No | Display name for the monitor |
description | string | No | Description of the monitor |
update_sla_monitor
Modifies dataChanges the alert threshold of an existing monitor.
Update an existing monitor's alert threshold, collection frequency, or both. The monitor's table, name, and description can't be changed with this tool.
This tool rejects:
- Muted monitors — unmute the monitor first.
- Monitors on a specific-times schedule — edit these in the Revefi app.
| Parameter | Type | Required | Description |
|---|---|---|---|
monitor_id | number | Yes | The SLA monitor ID |
sla_minutes | number | No | New threshold: alert if the table hasn't been updated within this many minutes |
collection_frequency | string | No | How often to evaluate the monitor: hourly, daily, or weekly |
get_sla_monitor_evaluations
Get the evaluation history for one table SLA monitor: whether each check passed or breached, and when. Identify the monitor by monitor_id or by table (database_name, schema_name, table_name). If a table matches more than one monitor, the tool returns the candidates instead of guessing.
Returns at most 60 evaluations, oldest first. The latest_status field is one of:
| Status | Meaning |
|---|---|
SUCCESS | The table is meeting its SLA |
FAILURE | The table is breaching its SLA |
CONTINUED_FAILURE | The table is still breaching its SLA |
INACTIVE | The monitor is paused |
| Parameter | Type | Required | Description |
|---|---|---|---|
monitor_id | number | No | The SLA monitor ID, if known |
database_name | string | No | Database of the table |
schema_name | string | No | Schema of the table |
table_name | string | No | Name of the table |
num_days_history | integer | No | Days of history to scan. Default 14, maximum 90. Because only the newest 60 evaluations are returned, a frequently evaluated monitor may cover fewer days — check history_from_utc_seconds in the response for the actual window. |
get_all_sla_monitor_evaluations
Get the current SLA status of all your table SLA monitors — use this to find which tables are breaching their SLA. Returns latest_status and sla_minutes for each monitor, without history unless evaluations_per_monitor is set. For the full history of one monitor, use get_sla_monitor_evaluations.
A monitor marked unavailable can't be evaluated; unavailable_count gives the total. Returns at most 25 monitors; when truncated is true, narrow the filters.
| Parameter | Type | Required | Description |
|---|---|---|---|
database_name | string | No | Only monitors on tables in this database |
schema_name | string | No | Only monitors on tables in this schema |
table_name | string | No | Only monitors on this table |
limit | number | No | Maximum number of monitors to return. Default and maximum 25. |
evaluations_per_monitor | integer | No | Number of most recent evaluations to include for each monitor. Default 0, maximum 60. |
num_days_history | integer | No | Days of history to scan for each monitor. Default 14, maximum 90. Applies only when evaluations_per_monitor is set. |
Snowflake
These tools are available when your Revefi account is connected to Snowflake.
get_contract_usage
Get your Snowflake contract usage: total spend, spend over the last 30 days, a daily breakdown, and the contract number.
This tool takes no parameters.
get_query_insights
Get performance insights for a Snowflake query — why it's slow and how to optimize it. Returns insights such as cartesian joins, memory spills, and high execution time, each with a readable description.
| Parameter | Type | Required | Description |
|---|---|---|---|
query_id | string | Yes | The Snowflake query ID to analyze |
start_time | number | No | Start of the time range. Defaults to 30 days ago. |
end_time | number | No | End of the time range. Defaults to now. |
get_top_warehouses_by_spend
Get the Snowflake warehouses that consumed the most credits, highest first.
Returns a list of warehouse_name, total_credits_used, total_credits_used_compute, and total_credits_used_cloud_services.
| Parameter | Type | Required | Description |
|---|---|---|---|
limit | number | No | Maximum number of warehouses to return. Default 5. |
period | string | No | Time period: 1d, 7d, or 30d. Default 30d. |
get_top_users_by_credits
Get the Snowflake users who consumed the most credits.
Returns a list of user_name, credits, and query_count.
| Parameter | Type | Required | Description |
|---|---|---|---|
limit | number | No | Maximum number of users to return. Default 10. |
period | string | No | Time period: 24h, 7d, or 30d. Default 30d. |
get_top_queries
Get the top Snowflake queries by execution time or bytes scanned, optionally filtered by warehouse or user.
Returns a list of query_id, user_name, warehouse_name, query_type, total_elapsed_time_seconds, execution_time_seconds, and bytes_scanned.
| Parameter | Type | Required | Description |
|---|---|---|---|
limit | number | No | Maximum number of queries to return. Default 10. |
warehouse_name | string | No | Filter to a specific warehouse |
user_name | string | No | Filter to a specific user |
order_by | string | No | total_elapsed_time (includes queuing) or bytes_scanned. Default total_elapsed_time. |
get_warehouse_details
Get Snowflake warehouse names and sizes, and whether Revefi manages them. Returns all warehouses if no filter is given.
Returns totalWarehouses and a warehouses list with warehouseName, size, type, state, managedWarehouseStatus, and lastAutoManageOperation (when present).
| Parameter | Type | Required | Description |
|---|---|---|---|
warehouse_names | array of strings | No | Filter to these warehouses. Returns all warehouses if omitted. |
get_warehouse_utilization
Get warehouse utilization — active time, idle time, and suspension patterns — to spot underutilized warehouses.
Returns a list of warehouseName, uptimeSeconds, activeSeconds, idleBeforeSuspensionSeconds, and warehouseStatus.
| Parameter | Type | Required | Description |
|---|---|---|---|
warehouse_names | array of strings | Yes | Warehouses to analyze. At least one is required. |
start_time | number | No | Start of the time range |
end_time | number | No | End of the time range |
manage_warehouse_auto_optimization
Modifies dataChanges your Snowflake warehouse configuration. Confirm the warehouses and action before running it.
Start, stop, pause, or resume Revefi auto-optimization on Snowflake warehouses. Returns success or failure for each warehouse.
| Action | Effect |
|---|---|
start | Turn on auto-optimization |
stop | Turn off auto-optimization and revert the warehouse configuration |
pause | Temporarily suspend auto-optimization |
resume | Resume paused auto-optimization |
| Parameter | Type | Required | Description |
|---|---|---|---|
warehouse_names | array of strings | Yes | Warehouses to manage. At least one is required. |
action | string | Yes | start, stop, pause, or resume |
Databricks
These tools are available when your Revefi account is connected to Databricks.
search_jobs
Search for Databricks jobs by name or keyword. The search is case-insensitive and matches partial names.
Returns a list of matching jobs with job_id, name, and workspace_id. Use the job_id with the other Databricks tools.
| Parameter | Type | Required | Description |
|---|---|---|---|
job_name | string | Yes | Job name or keyword to search for, e.g. test_customer_job |
limit | number | No | Maximum number of results to return. Default 5, maximum 20. |
get_job_details
Get a Databricks job's tasks, configuration, and metadata — useful for understanding its task dependencies, compute, and owners.
Returns jobId, name, description, creatorUserName, runAsUserName, workspaceId, workspaceName, and a tasksList. Each task includes its taskKey, description, dependenciesList, computeType (JOB_CLUSTER, ALL_PURPOSE, or SQL_WAREHOUSE), sourceCode, and clusterConfig.
| Parameter | Type | Required | Description |
|---|---|---|---|
job_id | string | Yes | The Databricks job ID |
get_latest_job_run
Get details of the most recent run of a Databricks job — useful for checking performance or diagnosing failures.
Returns job_id, job_run_id, name, start_time, end_time, duration_seconds, state (e.g. TERMINATED, RUNNING), termination_code (e.g. SUCCESS, FAILED), termination_message, run_page_url, and task_runs with the timing and status of each task.
| Parameter | Type | Required | Description |
|---|---|---|---|
job_id | string | Yes | The Databricks job ID |
get_recommended_cluster_configs
Get recommended cluster configurations for a Databricks job from its most recent Revefi experiment. This tool doesn't run a new experiment — the job must already have a completed one. If none exists, the tool returns an error; create an experiment for the job in the Revefi app, wait for it to complete, and call the tool again.
Returns the experiment's experimentId, jobId, status, startTime, and endTime, along with:
originalClusterConfigandoriginalJobExecutionMetrics— the job's original configuration and how it performed.experimentClusterConfigDetailsList— each configuration that was tested, with its execution metrics.recommendedClusterConfigId— the ID of the best-performing configuration.perClusterOriginalConfigsListandperClusterRestoreConfigsList— the baseline and current configuration of each cluster, for jobs analyzed per cluster.
| Parameter | Type | Required | Description |
|---|---|---|---|
job_id | string | Yes | The Databricks job ID |
Updated about 11 hours ago
