Rubrik Security Cloud

io.github.rubrikinc由 GitHub 帳號 rubrikinc 發布v0.11.20261026更新於 Nov 6, 2026

Connect AI assistants to the Rubrik Security Cloud GraphQL API to discover, query, and automate.

概覽

AI 產生的概覽

將 AI 助理連接到 Rubrik Security Cloud 的 GraphQL API,用來探索 schema、查詢備份與合規資料,並執行支援的寫入操作。

可以做什麼
  • 搜尋 RSC GraphQL schema,檢視操作簽章與型別定義,可離線且不需憑證
  • 列出工作負載的保護狀態、合規情況與備份歷史,以及近期事件、叢集和 SLA 網域
  • 檢索 Rubrik 知識庫文章、產品文件與已知問題以排查故障
  • 對即時 RSC API 執行唯讀 GraphQL 查詢,並輪詢作業直到完成
  • 啟用寫入工具後可觸發隨需快照、註冊主機與指派 SLA
  • 將可重複使用的具名工作流程以 JSON 檔儲存、列出與刪除
適用情境
適合 Rubrik 管理員與團隊讓助理回答備份保護、合規、叢集健康與故障相關問題,或草擬並執行針對 RSC 的 GraphQL 查詢與自動化。探索類工具不需憑證即可使用,方便評估 API 或做原型開發。
執行需求
以 stdio 本機程序執行,透過 uvx 或 pip 安裝(需 Python 3.10 以上)。執行類工具需要 Rubrik Security Cloud 服務帳戶,可用 RSC_SERVICE_ACCOUNT_FILE 指定 JSON 檔路徑,或使用 RSC_URL、RSC_CLIENT_ID 與 RSC_CLIENT_SECRET,或設定檔提供。探索類工具不需憑證。即時查詢需要能連線到 RSC 端點。
安裝前請注意
服務帳戶密鑰(RSC_CLIENT_SECRET 或 JSON 檔)可存取你的 Rubrik 環境,應使用最小權限、最好唯讀的角色,限制檔案權限並定期輪換密鑰。快照、主機註冊與 SLA 指派等寫入工具預設關閉,需在策略中明確啟用;啟用後由模型決定何時呼叫,提示注入可能造成非預期變更。工作流程工具會在設定目錄中寫入與刪除檔案。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Rubrik Security Cloud,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

Rubrik MCP

An MCP server that connects AI assistants to the Rubrik Security Cloud GraphQL API. It's built for Rubrik admins and teams automating against Rubrik, and runs locally (on your own workstation or on an agent's server) alongside the AI assistant that calls it.


What you can do

Discovery

The MCP ships with a pre-built index of the entire RSC GraphQL API. The discovery tools let the AI agent explore that index — searching operations, inspecting full argument signatures, tracing input and return types — to find exactly the right operation and field shape for any request. This produces precise, well-formed GraphQL on the first try.

Discovery tools require no RSC credentials and work entirely offline. This makes them useful on their own: if you're evaluating the API, prototyping an integration, or building automation before you have production credentials, you can start immediately.

> "What operations are available for SLA management?"> "Show me the full argument shape for the assignSla mutation."> "Generate Python code to assign an SLA domain to a list of workload IDs."

Because the agent understands both queries and mutations from the schema index, it can generate runnable Python code for any write operation — without ever connecting to RSC.

Execution

With an RSC service account, the agent can run live GraphQL queries against your environment:

  • List workloads with protection status, compliance state, and backup history
  • Retrieve recent events and failures
  • Trigger on-demand snapshots and poll until they complete
  • Register hosts and assign SLA domains

Raw GraphQL execution is read-only. If you ask for a write operation not covered by a built-in tool, the server returns the attempted mutation and the agent generates a runnable code sample. A small number of write operations are available as dedicated built-in tools: on-demand snapshots (rsc_take_on_demand_snapshot), host onboarding (rsc_onboard_host), and SLA assignment (rsc_assign_sla). These are disabled by default — set "writes_enabled": true in the gating policy to expose them. For everything else, the generated code approach gives you a runnable script with full control.

[!WARNING] Write tools act on your Rubrik environment, and the LLM driving the MCP decides when to call them. Any model can misread instructions or be influenced by untrusted data it reads (prompt injection) and invoke a write tool you did not intend — for example an SLA change via rsc_assign_sla that leaves data unprotected. As more write tools are added, this surface grows. They are disabled by default for that reason; enabling them is an explicit choice. The durable boundary is a least-privilege, read-only service account, which cannot perform any write operation regardless of which model you use or how the agent behaves. See Service account role recommendations, and enable Quorum Authorization for destructive operations.

Built-in tools

Discovery — no credentials required

ToolWhat it does
rsc_search_schemaFind the right query or mutation by keyword, field meaning, or type vocabulary in one call
rsc_describe_operation_fullArgument signature with all input/enum types expanded inline
rsc_describe_typeFields and values for a GraphQL type

Execution — service account required

ToolWhat it does
rsc_execute_operationRun any raw GraphQL query (mutations generate code instead)
rsc_get_workloadsWorkloads with protection status, compliance, and backup history
rsc_get_eventsRecent events and activity, always time-scoped
rsc_get_clustersRubrik clusters registered in RSC, with status, version, capacity, and runway
rsc_get_sla_domainsSLA Domains with base frequency, retention lock, archival, and replication settings
rsc_search_helpSearch KB articles, product docs, and known issues by keyword
rsc_take_on_demand_snapshotTrigger a backup for a workload and return the job ID
rsc_wait_for_jobPoll a job until completion
rsc_onboard_hostRegister a physical or virtual host
rsc_assign_slaAssign, unassign, or set do-not-protect on workloads

Workflow management — service account required

ToolWhat it does
rsc_save_workflowSave a conversation flow as a named reusable tool
rsc_list_workflowsList all saved workflows
rsc_delete_workflowRemove a saved workflow

Tool creation

After the agent has done the discovery work to answer a question, you can save that entire flow as a named MCP tool:

"Save this as a workflow so I can reuse it."

On the next restart, that tool appears alongside the built-in tools — a single call instead of multi-step schema discovery. Repeated operations use fewer tokens and respond faster. Workflow files are plain JSON you can edit, version-control, and share with your team.


Installation

Prerequisites

  • uv (recommended), or Python 3.10 or later with pip
  • A Rubrik Security Cloud account with a service account (for execution tools only)

Install via agent prompt

If you're using Claude Code, paste this into the chat and the agent will handle the rest:

"Add the Rubrik MCP server (PyPI package rubrik-mcp, run it with uvx rubrik-mcp) to my Claude Code MCP configuration. My RSC service account JSON is at ~/.rsc/service_account.json."

For Claude Desktop:

"Add the Rubrik MCP server (PyPI package rubrik-mcp, run it with uvx rubrik-mcp) to my Claude Desktop config. My RSC service account JSON is at ~/.rsc/service_account.json."

Install manually

Using uvx (recommended): there is nothing to install separately. uvx rubrik-mcp downloads the package from PyPI into a cached, isolated environment and runs it. Use it directly as the command in your client configuration below. To pin a specific release, use rubrik-mcp@<version>, for example uvx [email protected].

Using pip:

bash
pip install rubrik-mcp

Note the full path to the installed command. You will use it in place of uvx rubrik-mcp in the client configuration:

bash
which rubrik-mcp# example: /Users/you/.venv/bin/rubrik-mcp

Hardened install (optional)

For environments that require install-time hash verification (each package checked against a known-good cryptographic hash before it is installed), a hashed requirements.txt is published in this repository for each release. Install the verified dependency set first, then the package itself:

bash
pip install --require-hashes -r requirements.txtpip install --no-deps rubrik-mcp

requirements.txt is generated from the locked, hash-pinned dependency set (uv export); --require-hashes makes pip refuse any package whose hash does not match, and --no-deps on the second step keeps the verified set untouched. Then configure your client with the full path to rubrik-mcp, as in the pip instructions above. This path is optional; the standard install is sufficient for most users.

Configure your MCP client

Claude Code:

bash
claude mcp add rubrik -e RSC_SERVICE_ACCOUNT_FILE=/path/to/service_account.json -- uvx rubrik-mcp

Options such as -e go before --; everything after -- is the command that launches the server. For discovery-only usage, omit the -e option.

Verify it's registered:

bash
claude mcp list

Claude Desktop: edit ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):

json
{  "mcpServers": {    "rubrik": {      "command": "uvx",      "args": ["rubrik-mcp"],      "env": {        "RSC_SERVICE_ACCOUNT_FILE": "/path/to/service_account.json"      }    }  }}

Desktop apps don't always inherit your shell's PATH. If Claude Desktop reports that it can't find uvx, replace "uvx" with its full path from which uvx (for example /Users/you/.local/bin/uvx).

Other MCP clients (generic stdio):

json
{  "name": "rubrik",  "transport": "stdio",  "command": "uvx",  "args": ["rubrik-mcp"],  "env": {    "RSC_SERVICE_ACCOUNT_FILE": "/path/to/service_account.json"  }}

If you installed with pip, set "command" to the full path of rubrik-mcp and drop "args".


Service account setup

Create a service account in RSC at Settings > Users and Roles > Service Accounts. Download the JSON credential file when prompted — RSC will not show the secret again.

The credential file looks like this:

json
{  "client_id": "client|...",  "client_secret": "...",  "access_token_uri": "https://<your-rsc-domain>/api/client_token"}

Provide it to the MCP server using one of three methods (checked in this order):

Option A — Service account JSON file (recommended)

bash
export RSC_SERVICE_ACCOUNT_FILE=/path/to/service_account.json

Option B — Individual environment variables

bash
export RSC_URL=https://<your-rsc-domain>export RSC_CLIENT_ID=client|...export RSC_CLIENT_SECRET=...

Option C — Config file at ~/.rsc/config.json

json
{  "client_id": "client|...",  "client_secret": "...",  "access_token_uri": "https://<your-rsc-domain>/api/client_token"}

Service account role recommendations

The role you assign to the service account determines what the MCP server can access. Assign only what your workflows actually need.

For monitoring, reporting, and auditing — assign a read-only role. This covers workload listing, compliance status, event history, and backup reporting. A read-only role cannot modify SLA assignments, trigger snapshots, or change any configuration. This is the right starting point for most users.

For DevOps automation — assign a role with the specific permissions your automation requires. Common additions: SLA management permissions (to assign or modify SLA domains) and on-demand backup permissions (to trigger snapshots). Do not grant cluster admin or global admin unless the workflow explicitly requires it.

General guidance:

  • Create a dedicated role for the MCP service account rather than reusing an existing admin role. Name it clearly (e.g. "MCP Read-Only" or "MCP DevOps").
  • Configure roles at Settings > Users and Roles > Roles. Rubrik's permission model is hierarchical — scope roles to specific clusters or workload types where possible rather than granting global access.
  • For destructive operations (snapshot deletion, SLA policy removal, cluster configuration), enable Quorum Authorization at Settings > Security > Quorum Authorization. This requires a second authorized user to approve the operation before it executes, even when the service account has the necessary permissions.
  • Restrict which IPs can authenticate using the RSC IP allowlist at Settings > Security > IP Allowlist. Add only the IP or CIDR range of the machine running the MCP server.
  • Rotate client secrets on a schedule (monthly at minimum). Secrets do not expire by default. Use chmod 600 on any file containing a client_secret.
  • All API activity is recorded in RSC audit logs at Reports > Audit Logs. Review periodically.
  • Each request to RSC identifies the MCP in its headers: Sdk-Language: rubrik-mcp, Sdk-Version set to the MCP version, and a User-Agent such as rubrik-mcp/<version> (rsc-python-client/<version>; Python/<version>) claude-code/2.1.0. The last part is the MCP client's self-reported name and version. No other client or user information is sent.

Saving your own tools

When you find yourself asking the same question repeatedly, save it:

"Save this as a workflow so I can reuse it."

The AI calls rsc_save_workflow, which writes a JSON file to the MCP config directory's workflows/ folder — ~/.config/rubrik-mcp/workflows/ by default, or under $RUBRIK_MCP_CONFIG_DIR when set (see docs/docker.md for the containerized case). On the next restart, that workflow is registered as a named MCP tool — a single call instead of multi-step schema discovery. Repeated operations use fewer tokens and respond faster.

Workflow files are plain JSON. Open them in any editor, adjust the query, change the defaults, or share them with your team.

Community-contributed workflows (threat feed management, SLA operations, and more) are available in the rubrik-community repository. Copy any JSON file into the config directory's workflows/ folder (~/.config/rubrik-mcp/workflows/ by default, or under $RUBRIK_MCP_CONFIG_DIR) and restart your MCP client to install it.


Further reading

For the full built-in tools reference, architecture diagram, the local gating policy (~/.config/rubrik-mcp/mcp-policy.json, relocatable via $RUBRIK_MCP_CONFIG_DIR), the audit log (mcp-audit.log, in the same config directory), upgrade notes for config previously kept in ~/.rubrik, and development setup, see docs/advanced.md. To run the server in a container, see docs/docker.md.

來源:README.md,提交 64f6c46

工具

13

rsc_search_schema

Search the full RSC GraphQL schema to find relevant operations. Searches operation names/descriptions, field semantics, and type-level vocabulary in one call and returns the best candidate operations ranked by relevance. Use this whenever you need to find an operation and don't already know its name. The search runs three complementary indexes: - Operation index: matches operation names and descriptions directly - Field index: finds concepts buried in nested type fields (e.g. "who is logged in" → Group.activeUsers → operations returning Group) - Type index: matches domain concepts to operations via aggregate type vocabulary (e.g. "cluster storage runway" → Cluster type → listing ops) Each index ranks operations on its own, and the lists are merged by rank (reciprocal rank fusion). An operation surfaced by several indexes appears once and ranks higher; `source` names the index where it ranked best. Args: search: Natural-language query or keywords describing what you want. Must be non-empty. Use descriptive terms, not operation names. operation_type: Filter results to "query", "mutation", or "all" (default). Use "query" for read-only intent, "mutation" for write intent. Returns: Dict with: - operations: list of dicts with name, type, description, return_type, score, source (ops/fields/types). `score` is a fused rank score, roughly 0.014 to 0.05; it orders results within one response and isn't comparable across searches. - search: the search string used

輸入參數search必填operation_type

rsc_describe_type

Get the definition of a GraphQL type used in RSC operations. Args: name: Type name (e.g. "CreateGlobalSlaInput", "SlaAssignTypeEnum"). Returns: Dict with name, kind, and either: - fields: {fieldName: {type, description}} for objects/inputs/interfaces - values: [str] for enums - types: [str] for unions

輸入參數name必填

rsc_describe_operation_full

Get an operation's signature with all input types expanded inline. Returns an operation's argument signature with all input/enum types expanded inline — recursively up to `depth` levels. Combines the operation lookup and rsc_describe_type into one call so you have everything needed to construct a correct query without guessing. Args: name: camelCase operation name (e.g. "azureNativeVirtualMachines"). operation_type: "query" or "mutation". depth: How many levels of input types to expand (default 2). Returns: Dict with operation details plus: - "expanded_types": all referenced input/enum type definitions - "return_type_fields": object/interface types in the return type, expanded 2 levels deep (connection wrapper → node fields), so you know exactly which fields are selectable in the query body. Interface types include an "inline_fragments" key listing each concrete implementor and its fields — these fields are ONLY accessible via "... on TypeName { field }" inline fragments in your query; they cannot be queried directly on the interface.

輸入參數name必填depthoperation_type必填

rsc_get_workloads

List workloads with protection, compliance, usage, and backup status. Each result includes: - Identity: fid, name, objectType - SLA: slaDomain (assigned SLA), protectionStatus (Protected/NoSla/DoNotProtect) - Compliance: complianceStatus (IN_COMPLIANCE, OUT_OF_COMPLIANCE, etc.) - Backup history: lastSnapshot, localSnapshots, missedSnapshots, totalSnapshots - Usage: physicalBytes, logicalBytes - Location: location (e.g. vCenter, host, or instance the workload lives on), cluster (Rubrik cluster managing the workload) Args: object_type: Filter by workload type, e.g. "NutanixVirtualMachine", "VmwareVirtualMachine", "AzureNativeVm", "AwsNativeEc2Instance". Cannot be combined with excluded_object_types. protection_status: One of "Protected", "NoSla", "DoNotProtect". Omit to return all statuses. search_term: Filter by name substring. compliance_status: Filter by compliance state. One of: "IN_COMPLIANCE" — protected, active, no missed snapshots. "OUT_OF_COMPLIANCE" — protected, active, one or more missed snapshots. "UNPROTECTED" — no effective SLA assigned. "NOT_APPLICABLE" — protected but relic or archived; compliance not evaluated. "NOT_AVAILABLE" — protected and active but compliance could not be computed (SLA engine error or unmet precondition). "EMPTY" — report sync has not yet produced a value for this object; data is absent, not wrong. Indicates the cluster's report sync is lagging. Note: "NULL" also exists in the underlying store but is excluded from this filter — it indicates a workload with no compliance status object at all (distinct from EMPTY) and is not used in practice by the ETL pipeline. sla_time_range: Compliance window to evaluate. Defaults to the entire protec

輸入參數limitorg_idsla_idsort_byis_localcluster_idsort_orderobject_fidsobject_typesearch_termobject_statesla_time_range另有 3 個

rsc_search_help

Search Rubrik KB articles, product documentation, and known issues. Use when: an RSC event or workload has a failure/error message, the user asks a troubleshooting or "how do I" question, or an error code (e.g. RBK91030123) is present. Always call this before answering from memory — KB articles reflect the current product state. Results include title, description snippet, source type, and a direct link to the full article. Args: query: Free-text search string (e.g. "ransomware recovery", "SLA not applying"). source: Limit results to one source. One of: KB_ARTICLES, PRODUCT_DOCS, KNOWN_ISSUES. Omit to search all sources. limit: Maximum number of results to return. Default 10. Returns: A dict with `count` (total matches), `returned` (how many results are in this response), `truncated` (True when more results exist than were returned), and `results` (list of items with title, source, description, and link). Report `count` for "how many" questions, not `len(results)`. Note: `link` may be null for some results.

輸入參數limitquery必填source

rsc_get_events

Get recent events and activity for workloads. Returns backup jobs, failures, anomalies, and other activity. Always scoped to a time window (default: last 24 hours) to keep queries fast. For failure details, each event includes the error message, reason, and recommended remedy where available. Args: last_hours: How far back to look, in hours. Default 24. Always provide this — omitting a time range makes the query very slow. workload_id: Filter to a specific workload FID (from rsc_get_workloads). Use this to answer "why did the backup fail for workload X". object_name: Filter by object name substring. status: Filter by event status. One of: SUCCESS, FAILURE, WARNING, RUNNING, CANCELED, CANCELING, QUEUED, PARTIAL_SUCCESS, TASK_FAILURE, TASK_SUCCESS, INFO. severity: Filter by severity. One of: SEVERITY_CRITICAL, SEVERITY_WARNING, SEVERITY_INFO. activity_type: Filter by activity type. Common values: BACKUP, RECOVERY, REPLICATION, ARCHIVE, ANOMALY, INDEX, LOG_BACKUP. cluster_id: Filter by Rubrik cluster UUID. limit: Maximum number of events to return. Default 100. Returns: A dict with `count` (true total matching the filter), `returned` (how many events are in this response), `truncated` (True when more events exist than were returned, because of `limit` or the record cap), and `events` (the list of event records). Report `count` for "how many" questions, not `len(events)`.

輸入參數limitstatusseveritycluster_idlast_hoursobject_nameworkload_idactivity_type

rsc_get_clusters

List Rubrik CDM clusters registered in RSC. Use for any question about cluster inventory, connection status (connected/disconnected/degraded), CDM version, storage capacity, runway, sync health, node health, or hardware warnings. Filters: name, connection status, cluster type. Each result includes: - Identity: id, name, version, type, productType - Status: status (Connected/Disconnected/Initializing), isHealthy - Capacity: metric.totalCapacity, usedCapacity, availableCapacity (bytes) - Runway: estimatedRunway (days before storage is full) - Nodes: clusterNodeConnection.count (number of nodes in the cluster) - Timing: lastConnectionTime Args: name_contains: Filter by cluster name. Passed to the server-side name filter. status: Connection status filter. One of: Connected, Disconnected, Initializing. cluster_type: Cluster type filter. One of: Cloud, ExoCompute, OnPrem, Polaris, Robo, Unknown. limit: Maximum number of clusters to return. Default 20, max 100. Returns: A dict with: - count: true total matching the filter (the connection's `count`). - returned: how many clusters are in this response. - truncated: True when returned < count (more exist than were returned). - clusters: list of cluster records.

輸入參數limitstatuscluster_typename_contains

rsc_get_sla_domains

List SLA Domains (protection policies) configured in RSC. Use for any question about protection policies — filter by name, protected workload type (including Kubernetes), cluster, or retention lock status. Also use for: counting SLA policies, finding which SLAs protect a specific workload type, identifying retention-locked SLAs, or finding SLAs with specific replication or archival configurations. Each result includes: - Identity: id, name, description - Object types: objectTypes (SlaObjectType enum values for workloads this SLA covers) - Coverage: protectedObjectCount (number of workloads under this SLA) - Retention lock: isRetentionLockedSla, retentionLockMode - Base frequency: baseFrequency.duration + unit (primary backup schedule) - Archival: archivalSpecs (target name, type, and frequency threshold) - Replication: replicationSpecsV2 (destination cluster IDs and names) Args: name_contains: Filter by SLA name (server-side name filter). object_type: Filter by protected workload type. Must be a SlaObjectType enum value, e.g. "VSPHERE_OBJECT_TYPE", "K8S_OBJECT_TYPE", "AWS_EC2_EBS_OBJECT_TYPE", "NUTANIX_OBJECT_TYPE". cluster_id: Filter by cluster UUID — returns SLAs associated with that cluster. is_retention_locked: When True, return only retention-locked SLAs. When False, return only non-retention-locked SLAs. Omit to return all. Applied client-side after fetching; `count` reflects the server-side total before this filter. limit: Maximum number of SLA domains to return. Default 50, max 200. Returns: A dict with: - count: true total matching the server-side filter (before is_retention_locked). - returned: how many SLA domains are in this response. - truncated: True when returned < count. - sla_domains: list of SLA domain records.

輸入參數limitcluster_idobject_typename_containsis_retention_locked

rsc_wait_for_job

Poll an RSC job until it completes and return the final status. Handles all job types automatically based on objectType — no polling code needed from the caller. How to get job_id and cluster_id: - CDM workloads: job_id = the `id` field from the AsyncRequestStatus returned by the snapshot mutation. cluster_id = the `cluster_id` field returned by rsc_take_on_demand_snapshot (included automatically for CDM types). Falls back to cluster.id from rsc_get_workloads if needed. - Cloud-native workloads: job_id = `taskchainUuid` from `taskchainUuids[0].taskchainUuid` in the mutation response. cluster_id is not needed. For background monitoring without blocking, run rsc-job-monitor via the Bash tool and watch it with the Monitor tool: Bash(run_in_background=true): /workspace/mcp-validate/venv/bin/rubrik-job-monitor --job-id <id> --object-type <type> [--cluster-id <uuid>] Monitor(command): /workspace/mcp-validate/venv/bin/rubrik-job-monitor --job-id <id> --object-type <type> [--cluster-id <uuid>] Args: job_id: Request ID (CDM) or taskchainUuid (cloud-native). object_type: Workload objectType — determines which status query to use. cluster_id: Rubrik cluster UUID. Required for CDM workloads. Get it from rsc_get_workloads cluster.id. timeout: Maximum seconds to wait before returning. Default 300. poll_interval: Seconds between status checks. Default 10. Returns: Dict with status, progress, done, raw, and optionally timed_out. CDM status values: SUCCEEDED, FAILED, CANCELED, QUEUED, IN_PROGRESS. Cloud-native state values: SUCCEEDED, FAILED, CANCELED, RUNNING, READY. jobInfo status values: SUCCESS, FAILURE, IN_PROGRESS, UNSPECIFIED.

輸入參數job_id必填timeoutcluster_idobject_type必填poll_interval

rsc_execute_operation

Execute a raw GraphQL query against the live RSC API. This tool supports queries only. Mutations are not available via raw GraphQL — use built-in tools (rsc_take_on_demand_snapshot, etc.) for supported write operations. If you submit a mutation, this tool returns a mutation_blocked error with the attempted operation so Claude can generate a Python code sample for you. IMPORTANT: Write `operation` as a single line with no newlines or extra whitespace. Multi-line strings appear as ugly \n escape sequences in the tool call display. Good: "query { nodes { id name } }" Requires RSC credentials — set one of: - RSC_SERVICE_ACCOUNT_FILE env var (path to service account JSON) - RSC_URL + RSC_CLIENT_ID + RSC_CLIENT_SECRET env vars - ~/.rsc/config.json Args: operation: A complete GraphQL query string on a single line, e.g.: "query { accountId }" "query ListSLAs($after: String) { slaDomains(after: $after) { count nodes { id name } pageInfo { hasNextPage endCursor } } }" variables: Optional dict of variable values for parameterized operations. Returns: The raw JSON response from the RSC GraphQL API (data + errors if any). Returns {"error": "mutation_blocked", "blocked_operation": "...", "message": "..."} if a mutation is submitted — Claude will use this to generate a Python code sample. Note: returns the raw GraphQL response with no field filtering or redaction — do not use in contexts where data minimization of personal-data-bearing fields is required.

輸入參數operation必填variables

rsc_save_workflow

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.

輸入參數name必填specstepsdescription必填

rsc_list_workflows

List all user-defined workflows in the MCP config dir's workflows/ folder. Location is ~/.config/rubrik-mcp/workflows/ by default, or under $RUBRIK_MCP_CONFIG_DIR when set. Returns name, description preview, step count, and the resolved file path for each workflow.

無需輸入參數。

rsc_delete_workflow

Delete a user-defined workflow from the MCP config dir's workflows/ folder. Location is ~/.config/rubrik-mcp/workflows/ by default, or under $RUBRIK_MCP_CONFIG_DIR when set. Removes the workflow file from disk. The workflow remains callable in the current server session but will not load on next restart. Args: name: The workflow name (as returned by rsc_list_workflows). Returns: Dict with status, name, and path of the deleted file.

輸入參數name必填

版本歷史

5
  1. v0.11.20261026最新Oct 30, 2026
  2. v0.10.20261012Oct 22, 2026
  3. v0.9.20260928Oct 16, 2026
  4. v0.8.20260928Oct 2, 2026
  5. v0.8.20260914Sep 30, 2026

評分

已滿足適用檢查項的 90%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分
  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具必需15 分
  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分