Skip to main content
Glama
rubrikinc

Rubrik MCP

Official
by rubrikinc

rsc_save_workflow

Destructive

Save a multi-step workflow as a named, callable MCP tool to persist it for future use. It is written to config and registered immediately.

Instructions

Save a multi-step workflow as a named, callable MCP tool.

Call this after completing a workflow in conversation to persist it for future use. The workflow is written to the workflows/ dir under the MCP config directory (~/.config/rubrik-mcp/workflows/ by default, or under $RUBRIK_MCP_CONFIG_DIR when set) and registered immediately. It loads automatically on next server start. The exact file path is returned in the response.

Provide either spec (the complete workflow dict) or steps + the other fields individually. Passing spec is simpler when the LLM has already constructed the full definition.

Workflow spec format: { "schema_version": 1, "name": "rsc_my_workflow", "description": "What this does and when to use it.", "steps": [ { "id": "step1", "mcp": "rubrik", "tool": "rsc_execute_operation", "args": {"operation": "query { accountId }"} }, { "id": "step2", "mcp": "virustotal", "tool": "get_threat_actor_files", "args": {"threat_actor_id": "${step1.data.accountId}"} } ] }

RSC steps ("mcp": "rubrik") execute server-side. Non-RSC steps are returned as next_steps for the LLM to execute. Use "${step_id.path.to.value}" in args to reference prior step results.

Args: name: Tool name (valid Python identifier, e.g. "rsc_get_aws_failures"). description: What this workflow does and when to use it. steps: List of step dicts (id, mcp, tool, args). spec: Complete workflow spec dict — use instead of name/description/steps when passing the full definition at once.

Returns: Dict with status, name, path, and a note about restart behavior.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
nameYes
specNo
stepsNo
descriptionYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well beyond the annotations: it names the exact write location (~/.config/rubrik-mcp/workflows/, overridable via $RUBRIK_MCP_CONFIG_DIR), states the workflow is registered immediately, that it loads on next server start, and that the file path comes back in the response. It also discloses the execution split — RSC steps run server-side while non-RSC steps are returned as next_steps — which is critical behavioral context an agent cannot infer. The destructiveHint=true annotation is consistent with a tool that writes files and registers a new callable tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with purpose and trigger, then the args. The embedded spec example is long but earns its place by making the step/interpolation format unambiguous. Slightly verbose in the Returns note, but no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description correctly supplies the return shape (status, name, path, restart note) and explains the persistence/restart lifecycle. Combined with the arg documentation and the step-format example, an agent has everything needed to construct and call it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description carries the full burden, and it does: it defines all four parameters, gives the naming constraint ('valid Python identifier, e.g. rsc_get_aws_failures'), and shows a full spec example with interpolation syntax. The only gap is a mild tension with the schema — it says to provide 'either spec or steps + other fields,' yet name and description are unconditionally required, and the description does not resolve that.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The first sentence gives a specific verb+resource+outcome: 'Save a multi-step workflow as a named, callable MCP tool.' It is clearly distinguishable from siblings like rsc_list_workflows and rsc_delete_workflow, which operate on an existing workflow store rather than creating one.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'Call this after completing a workflow in conversation to persist it for future use' gives a concrete trigger condition, and the description explains the spec-vs-steps alternative for constructing the call. It stops short of stating when NOT to use it (e.g., updating or overwriting an existing workflow) or which sibling to prefer for editing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.