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 groupAvailable for
RadenAll accounts
FeedAll accounts
Table SLA monitorsAll accounts
SnowflakeSnowflake accounts
DatabricksDatabricks 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.

ParameterTypeRequiredDescription
questionstringYesThe 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.

ParameterTypeRequiredDescription
session_idstringYesThe 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.

ParameterTypeRequiredDescription
offsetintegerNoNumber of items to skip. Default 0.
limitintegerNoMaximum number of items to return. Default 20, maximum 50.
tag_filtersarray of stringsNoOnly items carrying one of these user-defined tags
revefi_tag_filtersarray of stringsNoOnly items carrying one of these Revefi-assigned tags
database_filtersarray of stringsNoOnly items for tables in these databases
schema_filtersarray of stringsNoOnly items for tables in these schemas
warehouse_filtersarray of stringsNoOnly items for these warehouses
notification_channel_filtersarray of integersNoOnly 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.

ParameterTypeRequiredDescription
database_namestringNoFilter to a specific database
schema_namestringNoFilter to a specific schema
table_namestringNoFilter to a specific table
limitnumberNoMaximum 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.

ParameterTypeRequiredDescription
monitor_idnumberYesThe SLA monitor ID

create_sla_monitor

🚧

Modifies data

Creates 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.

ParameterTypeRequiredDescription
database_namestringYesDatabase of the table
schema_namestringYesSchema of the table
table_namestringYesName of the table
sla_minutesnumberYesAlert if the table hasn't been updated within this many minutes
collection_frequencystringNoHow often to evaluate the monitor: hourly, daily, or weekly. Default hourly.
data_source_idnumberNoData source ID of the table. Defaults to your account's warehouse.
display_namestringNoDisplay name for the monitor
descriptionstringNoDescription of the monitor

update_sla_monitor

🚧

Modifies data

Changes 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.
ParameterTypeRequiredDescription
monitor_idnumberYesThe SLA monitor ID
sla_minutesnumberNoNew threshold: alert if the table hasn't been updated within this many minutes
collection_frequencystringNoHow 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:

StatusMeaning
SUCCESSThe table is meeting its SLA
FAILUREThe table is breaching its SLA
CONTINUED_FAILUREThe table is still breaching its SLA
INACTIVEThe monitor is paused
ParameterTypeRequiredDescription
monitor_idnumberNoThe SLA monitor ID, if known
database_namestringNoDatabase of the table
schema_namestringNoSchema of the table
table_namestringNoName of the table
num_days_historyintegerNoDays 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.

ParameterTypeRequiredDescription
database_namestringNoOnly monitors on tables in this database
schema_namestringNoOnly monitors on tables in this schema
table_namestringNoOnly monitors on this table
limitnumberNoMaximum number of monitors to return. Default and maximum 25.
evaluations_per_monitorintegerNoNumber of most recent evaluations to include for each monitor. Default 0, maximum 60.
num_days_historyintegerNoDays 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.

ParameterTypeRequiredDescription
query_idstringYesThe Snowflake query ID to analyze
start_timenumberNoStart of the time range. Defaults to 30 days ago.
end_timenumberNoEnd 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.

ParameterTypeRequiredDescription
limitnumberNoMaximum number of warehouses to return. Default 5.
periodstringNoTime 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.

ParameterTypeRequiredDescription
limitnumberNoMaximum number of users to return. Default 10.
periodstringNoTime 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.

ParameterTypeRequiredDescription
limitnumberNoMaximum number of queries to return. Default 10.
warehouse_namestringNoFilter to a specific warehouse
user_namestringNoFilter to a specific user
order_bystringNototal_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).

ParameterTypeRequiredDescription
warehouse_namesarray of stringsNoFilter 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.

ParameterTypeRequiredDescription
warehouse_namesarray of stringsYesWarehouses to analyze. At least one is required.
start_timenumberNoStart of the time range
end_timenumberNoEnd of the time range

manage_warehouse_auto_optimization

🚧

Modifies data

Changes 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.

ActionEffect
startTurn on auto-optimization
stopTurn off auto-optimization and revert the warehouse configuration
pauseTemporarily suspend auto-optimization
resumeResume paused auto-optimization
ParameterTypeRequiredDescription
warehouse_namesarray of stringsYesWarehouses to manage. At least one is required.
actionstringYesstart, 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.

ParameterTypeRequiredDescription
job_namestringYesJob name or keyword to search for, e.g. test_customer_job
limitnumberNoMaximum 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.

ParameterTypeRequiredDescription
job_idstringYesThe 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.

ParameterTypeRequiredDescription
job_idstringYesThe 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:

  • originalClusterConfig and originalJobExecutionMetrics — 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.
  • perClusterOriginalConfigsList and perClusterRestoreConfigsList — the baseline and current configuration of each cluster, for jobs analyzed per cluster.
ParameterTypeRequiredDescription
job_idstringYesThe Databricks job ID

Did this page help you?