Skip to main content
Glama

mcp-cohesity

A Model Context Protocol (MCP) server for Cohesity DataProtect, providing AI assistants with full access to backup management, recovery operations, and data protection monitoring through the Cohesity REST API.

Features

14 tools across six categories:

Cluster

Tool

Description

get_cluster_info

Get cluster name, ID, software version, and node count

get_cluster_stats

Get storage capacity (used/total) and throughput statistics

Protection Policies & Groups

Tool

Description

list_protection_policies

List all data protection policies with schedule and retention settings

list_protection_groups

List protection groups (backup jobs) with status, schedule, and last run info

get_protection_group

Get detailed configuration of a specific protection group

run_protection_group

Trigger an on-demand backup run for a protection group

Backup Runs

Tool

Description

list_protection_runs

List recent backup runs with status, duration, and data size

get_protection_run

Get detailed information about a specific backup run

Protection Sources

Tool

Description

list_sources

List all registered sources (vSphere, Physical, NAS, SQL, etc.)

get_source

Get full object hierarchy details for a specific source

Recovery

Tool

Description

list_recovery_tasks

List recovery tasks with status and type

get_recovery_task

Get detailed information about a specific recovery task

Alerts

Tool

Description

list_alerts

List cluster alerts filtered by severity, category, and state

resolve_alert

Mark an alert as resolved with resolution notes

Related MCP server: Commvault MCP Server

Installation

git clone git@github.com:fredriksknese/mcp-cohesity.git
cd mcp-cohesity
npm install
npm run build

Configuration

The server is configured via environment variables:

Variable

Required

Default

Description

COHESITY_CLUSTER

Yes

Cohesity cluster hostname or IP address

COHESITY_USERNAME

Yes

Username for authentication

COHESITY_PASSWORD

Yes

Password for authentication

COHESITY_DOMAIN

No

LOCAL

Authentication domain

COHESITY_ALLOW_SELF_SIGNED

No

true

Accept self-signed SSL certificates

Usage with Claude Desktop

Add to your claude_desktop_config.json:

{
  "mcpServers": {
    "cohesity": {
      "command": "node",
      "args": ["/absolute/path/to/mcp-cohesity/dist/index.js"],
      "env": {
        "COHESITY_CLUSTER": "your-cohesity-cluster.example.com",
        "COHESITY_USERNAME": "admin",
        "COHESITY_PASSWORD": "your-password",
        "COHESITY_DOMAIN": "LOCAL"
      }
    }
  }
}

Usage with Claude Code

Add to your Claude Code MCP settings:

claude mcp add cohesity -- node /absolute/path/to/mcp-cohesity/dist/index.js

Set the required environment variables before running, or configure them in your MCP settings.

Example Prompts

Once connected, you can ask your AI assistant things like:

  • "Show me the current cluster storage utilization"

  • "List all protection groups that failed their last backup"

  • "Trigger an on-demand backup for the VM production group"

  • "What are the critical alerts on the cluster right now?"

  • "Show me all backup runs in the last 24 hours"

  • "List all VMware protection sources registered on the cluster"

  • "Get the details of the last backup run for protection group ID 12345"

  • "Resolve alert ID abc123 — disk was replaced"

  • "What recovery tasks are currently running?"

  • "List all protection policies and their retention settings"

Development

npm run dev      # Run with tsx (auto-reloads)
npm run build    # Compile TypeScript to dist/
npm start        # Run compiled output

Architecture

src/
├── index.ts              # Entry point — creates MCP server + STDIO transport
├── cohesity-client.ts    # HTTP client with token-based auth and V1/V2 API support
└── tools/
    ├── cluster.ts        # Cluster info and stats (2 tools)
    ├── protection.ts     # Protection policies and groups (4 tools)
    ├── runs.ts           # Backup run management (2 tools)
    ├── sources.ts        # Protection source management (2 tools)
    ├── recovery.ts       # Recovery task management (2 tools)
    └── alerts.ts         # Alert management (2 tools)

API Details

This server uses two Cohesity API versions:

  • V2 API (/v2/) — Used for protection groups, runs, sources, and recoveries

  • V1 API (/irisservices/api/v1/public/) — Used for alerts and source hierarchy

Authentication uses the V2 sessions endpoint (POST /v2/users/sessions) with Bearer token auth. Tokens are automatically refreshed on expiry.

Requirements

  • Node.js 18+

  • Cohesity DataProtect cluster with REST API access (tested with Cohesity 6.x+)

License

SEE LICENSE IN LICENSE

Available Tools

14 tools
get_cluster_infoA

Get Cohesity cluster information including name, ID, software version, and node count

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior4/5

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

Description explicitly lists the return fields and implies a read-only operation with 'Get'. Without annotations, it adequately covers the tool's behavior, though it could mention that no side effects occur.

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

Conciseness5/5

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

Single sentence with no redundant words, directly conveying the tool's action and outputs. Every word earns its place.

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

Completeness4/5

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

Given no output schema, the description lists the return fields appropriately. It could explicitly state that no input is required, but overall complete for a simple read tool.

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?

No parameters exist, so schema coverage is 100% by default. The description adds no parameter info but doesn't need to; baseline 4 applies for zero-parameter tools.

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?

Description clearly states 'Get Cohesity cluster information' with specific fields (name, ID, software version, node count), making the purpose unambiguous and distinguishing it from sibling tools like get_cluster_stats.

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

Usage Guidelines3/5

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

No explicit guidance on when to use this tool vs alternatives. While the zero-parameter call is straightforward, the description does not mention exclusions or alternative tools for specific use cases.

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

get_cluster_statsA

Get Cohesity cluster storage and throughput statistics including used/total capacity and data throughput

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4/5.0
Behavior3/5

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

No annotations are provided, so the description must convey behavioral traits. It accurately indicates a read operation fetching statistics, but does not disclose any additional constraints, rate limits, or side effects.

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

Conciseness5/5

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

The description is a single sentence that conveys the tool's purpose without extraneous information. Every word is necessary and front-loaded.

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

Completeness4/5

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

For a zero-parameter tool, the description is fairly complete, specifying the type of statistics retrieved. However, the absence of an output schema and lack of detail on the exact return format leave some ambiguity.

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?

The input schema has no parameters, making schema description coverage 100%. The baseline is 4; no additional parameter explanation is needed.

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 description clearly states the verb 'Get', the resource 'cluster statistics', and specifies the included metrics (used/total capacity, data throughput). It distinguishes from siblings like get_cluster_info, which likely provides general cluster information.

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

Usage Guidelines3/5

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

The description implies usage for retrieving stats, but provides no explicit guidance on when to use this tool versus alternatives (e.g., get_cluster_info) or any conditions that warrant its use.

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

get_protection_groupB

Get detailed information about a specific Cohesity protection group including configuration, schedule, and last run status

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesProtection group ID
include_last_run_infoNoInclude information about the last backup run

TDQS

B3.4/5.0
Behavior2/5

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

No annotations exist, so the description must disclose behavioral traits. It states it gets details but does not mention that it is a read-only operation, any potential side effects, or performance considerations. The description adds minimal transparency beyond basic function.

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

Conciseness5/5

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

A single, front-loaded sentence with 15 words, no redundant information. Every word contributes to understanding the tool's purpose.

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

Completeness4/5

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

Given the tool's simplicity (two parameters, one required) and no output schema, the description covers key return content (configuration, schedule, last run status). It lacks details on error handling or edge cases, but is largely complete for a read tool.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents both parameters. The description adds context by mentioning 'last run status', which relates to include_last_run_info, but does not elaborate on parameter meaning or usage beyond what the schema provides. Baseline 3 is appropriate.

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 description clearly states the verb 'Get' and the resource 'protection group', and specifies what details are included (configuration, schedule, last run status). It distinguishes itself from sibling tools like list_protection_groups (which lists multiple groups) and get_protection_run (which targets runs).

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives like list_protection_groups or run_protection_group. There is no mention of prerequisites or when not to use it.

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

get_protection_runA

Get detailed information about a specific Cohesity backup run including per-object status and statistics

ParametersJSON Schema
NameRequiredDescriptionDefault
protection_group_idYesProtection group ID the run belongs to
run_idYesRun ID to retrieve details for
include_object_detailsNoInclude per-object backup details (can increase response size)

TDQS

A3.9/5.0
Behavior4/5

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

No annotations are provided, so the description carries the full burden. It correctly indicates a read operation ('Get detailed information') and mentions the specific data it returns (per-object status and statistics). This is sufficient behavioral disclosure.

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

Conciseness5/5

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

The description is a single sentence that is concise and front-loaded, directly stating the action and scope without unnecessary words.

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

Completeness3/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 could elaborate on the return structure. It hints at per-object status and statistics but does not specify the exact fields or format. Adequate for a simple retrieval tool but not fully complete.

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

Parameters3/5

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

Input schema covers all 3 parameters with descriptions (100% coverage). The description adds value by linking 'per-object status' to the include_object_details parameter but does not provide significant additional meaning beyond the schema.

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?

Description clearly states the tool retrieves detailed information about a specific Cohesity backup run, including per-object status and statistics. This distinguishes it from sibling tools like list_protection_runs which list runs.

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

Usage Guidelines3/5

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

The description implies usage for getting detailed info on a specific run but does not explicitly state when to use this tool over alternatives like list_protection_runs. No exclusion criteria or context are provided.

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

get_recovery_taskA

Get detailed information about a specific Cohesity recovery task including per-object restore status

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesRecovery task ID to retrieve details for
include_tenantsNoInclude tenant information in the response

TDQS

A3.5/5.0
Behavior3/5

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

No annotations are provided, so the description carries full burden for behavioral disclosure. It implies a read-only operation with 'get' and adds detail about 'per-object restore status', but does not mention authentication, error handling, or potential side effects. Adequate but with gaps.

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

Conciseness5/5

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

The description is a single sentence that is front-loaded with purpose and contains no extraneous words. It is concise and structured effectively.

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

Completeness3/5

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

Given there is no output schema, the description partially compensates by mentioning 'per-object restore status', but it does not describe the response format or other fields. For a simple tool with few parameters, it is adequate but not complete.

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

Parameters3/5

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

Schema coverage is 100% with both parameters described. The description does not add additional meaning beyond the schema, so baseline of 3 is appropriate.

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 description clearly states the action 'Get' and the resource 'detailed information about a specific Cohesity recovery task', and adds specificity with 'including per-object restore status'. This distinguishes it from sibling tools like list_recovery_tasks and other get_* tools.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives (e.g., list_recovery_tasks) or any prerequisites. It lacks explicit context for selecting this tool.

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

get_sourceB

Get detailed information about a specific Cohesity protection source including its object hierarchy

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesSource ID to retrieve details for
environmentNoEnvironment type of the source (e.g., kVMware, kPhysical, kNas)
include_entity_permission_infoNoInclude entity permission information

TDQS

B3.4/5.0
Behavior2/5

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

No annotations are provided, and the description does not disclose behavioral traits such as side effects, permissions required, or data volume. It only states the basic action.

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?

The description is a single, direct sentence that conveys the core purpose without extra words, achieving good conciseness.

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

Completeness3/5

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

Given the moderate complexity (3 parameters, no output schema), the description is minimally adequate but lacks details on return values or parameter relationships.

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

Parameters3/5

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

The input schema already describes all three parameters (100% coverage). The description adds no additional meaning beyond what the schema provides.

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 description clearly states the verb 'Get' and resource 'detailed information about a specific Cohesity protection source' and mentions 'including its object hierarchy', which distinguishes it from sibling tools like list_sources.

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

Usage Guidelines3/5

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

The description implies usage when a specific source ID is known, but does not explicitly state when to use this tool versus alternatives, nor when not to use it.

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

list_alertsC

List Cohesity cluster alerts with severity, description, and resolution status

ParametersJSON Schema
NameRequiredDescriptionDefault
alert_statesNoFilter by alert state (default: open alerts only)
alert_severitiesNoFilter by severity level
alert_categoriesNoFilter by alert category
start_date_usecsNoFilter alerts created after this Unix timestamp in microseconds
end_date_usecsNoFilter alerts created before this Unix timestamp in microseconds
max_resultsNoMaximum number of alerts to return

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description must carry behavioral details. It only says 'list', implying read-only, but fails to mention pagination, default filters (e.g., open alerts), or response structure.

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?

A single short sentence with no fluff. While concise, it could be slightly more informative without losing brevity.

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

Completeness2/5

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

Given 6 parameters and no output schema, the description lacks details on return format, sorting, or limitations. It does not cover pagination or the default max_results behavior highlighted in the schema.

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

Parameters3/5

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

All 6 parameters are fully described in the schema (100% coverage). The tool description adds no extra meaning beyond what the schema already provides, earning the baseline score.

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

Purpose4/5

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

The description clearly states 'List Cohesity cluster alerts' with a specific verb and resource. It mentions included fields (severity, description, resolution status), but does not differentiate from sibling tools like resolve_alert or other list tools.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. No context on prerequisites, filters, or exclusions is given.

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

list_protection_groupsA

List Cohesity protection groups (backup jobs) with status, schedule, and last run information

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoFilter protection groups by name (partial match)
environmentNoFilter by environment type (e.g., kVMware, kPhysical, kNas, kSQL)
is_activeNoFilter by active/inactive state
is_pausedNoFilter by paused state
max_resultsNoMaximum number of results to return

TDQS

A3.5/5.0
Behavior2/5

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

No annotations are provided, so the description must fully convey behavior. It does not disclose whether the operation is read-only, whether pagination applies, or what the response format looks like. The agent cannot infer safety or limitations beyond the listed output fields.

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

Conciseness5/5

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

The description is a single, focused sentence with no extraneous information. Every word adds value.

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

Completeness3/5

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

Given 5 parameters, no output schema, and no annotations, the description is adequate but incomplete. It does not explain pagination behavior, response format, or default ordering, which are important for a list tool.

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

Parameters3/5

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

All 5 parameters have descriptions in the schema (100% coverage), so the description does not need to add detail. However, the description adds no additional context beyond what the schema provides, such as default sorting or interaction between filters.

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 description clearly states the verb 'List', the resource 'Cohesity protection groups (backup jobs)', and includes what information is returned (status, schedule, last run). It distinguishes from sibling tools like get_protection_group (single group) and list_protection_runs (runs).

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

Usage Guidelines3/5

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

The description implies usage for overview of protection groups but does not explicitly state when to use this tool versus alternatives like get_protection_group for detailed info or list_protection_runs for runs. No exclusions or prerequisites are mentioned.

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

list_protection_policiesA

List all Cohesity data protection policies including schedule, retention, and replication settings

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoFilter policies by name (partial match)

TDQS

A4/5.0
Behavior4/5

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

The description clearly indicates this is a read-only listing operation, which is appropriate. However, since no annotations are provided, it would benefit from mentioning any potential performance implications or limits, but as a simple list, the current transparency is good.

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

Conciseness5/5

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

The description is a single, well-structured sentence that conveys all essential information without any unnecessary words.

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

Completeness4/5

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

Given that the tool has only one optional parameter, no output schema, and no annotations, the description adequately explains the tool's purpose and output. It could mention pagination or result limits, but overall it is sufficiently complete for a list operation.

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

Parameters3/5

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

The input schema provides a clear description for the single optional 'name' parameter. The description does not add any additional meaning beyond the schema, so with 100% schema coverage, a score of 3 is appropriate.

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 description clearly states the verb 'list' and the resource 'protection policies', and specifies that it includes schedule, retention, and replication settings. This effectively distinguishes it from sibling tools like list_protection_groups or list_protection_runs.

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

Usage Guidelines3/5

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

The description does not provide explicit guidance on when to use this tool versus alternatives. It only states what the tool does, leaving the agent to infer appropriate usage context from sibling tool names.

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

list_protection_runsB

List recent backup runs for a Cohesity protection group with status, duration, and data size

ParametersJSON Schema
NameRequiredDescriptionDefault
protection_group_idYesProtection group ID to list runs for
run_typesNoFilter by run type
local_backup_run_statusNoFilter by run status
start_time_usecsNoFilter runs that started after this Unix timestamp in microseconds
end_time_usecsNoFilter runs that ended before this Unix timestamp in microseconds
max_resultsNoMaximum number of runs to return

TDQS

B3/5.0
Behavior2/5

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

No annotations provided, so description must disclose behavior. It only states the tool lists runs with fields, omitting details like read-only nature, pagination, ordering, or rate limits.

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

Conciseness3/5

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

Single sentence of 14 words is concise but lacks structure. It omits important information like filtering options or output format, making it somewhat underspecified.

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

Completeness2/5

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

Given 12 sibling tools and no output schema, the description is too minimal. It doesn't describe return format, ordering, or how it differs from get_protection_run, leaving gaps for correct invocation.

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

Parameters3/5

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

Schema coverage is 100% with each parameter described. The description adds only the vague term 'recent', which provides minimal extra value beyond the schema.

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 description clearly states the tool lists 'recent backup runs' for a protection group, specifying included fields (status, duration, data size). This distinguishes it from sibling tools like get_protection_run or list_protection_groups.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives (e.g., get_protection_run for a single run, run_protection_group for initiating). The description does not mention prerequisites or exclusions.

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

list_recovery_tasksB

List Cohesity recovery tasks with status, type, and progress information

ParametersJSON Schema
NameRequiredDescriptionDefault
statusNoFilter recovery tasks by status
environmentsNoFilter by source environment type
start_time_usecsNoFilter tasks created after this Unix timestamp in microseconds
end_time_usecsNoFilter tasks created before this Unix timestamp in microseconds
max_resultsNoMaximum number of results to return

TDQS

B3.1/5.0
Behavior2/5

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

Without annotations, the description must disclose behavioral traits. It only states the tool lists tasks with basic fields. It does not mention pagination, authorization needs, rate limits, or what happens without filters. The default max_results is not mentioned.

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?

Single sentence, 10 words, no redundancy. It is front-loaded with purpose. However, it could be slightly more informative without losing conciseness.

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

Completeness2/5

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

For a tool with 5 parameters and no output schema or annotations, the description is too sparse. It omits important context like default results, ordering, time filter expectations, and pagination behavior.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents all parameters. The description adds only that the tool returns 'status, type, and progress', which is generic. With full schema coverage, baseline is 3.

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?

Description clearly states the verb 'List', the resource 'Cohesity recovery tasks', and the information returned ('status, type, and progress'). This distinguishes it from siblings like 'get_recovery_task' (singular) and other listing tools for different resources.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives. While siblings like 'get_recovery_task' handle individual tasks, the description does not mention this or provide any when/not-to-use criteria.

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

list_sourcesB

List all registered Cohesity protection sources such as vSphere, Physical servers, NAS, SQL, and more

ParametersJSON Schema
NameRequiredDescriptionDefault
environmentsNoFilter by environment type
include_data_store_detailsNoInclude datastore details for VMware sources

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations, the description must cover behavioral traits, but it only states the action without discussing pagination, performance, authentication requirements, or what happens when no sources exist. The description fails to add value beyond the basic purpose.

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?

The description is a single concise sentence with no unnecessary words. However, it could be slightly more informative without sacrificing conciseness, hence a 4.

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

Completeness2/5

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

Given the optional parameters and lack of output schema, the description is incomplete. It does not explain that sources can be filtered by environment or that datastore details can be included, leaving the agent without critical usage context.

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

Parameters3/5

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

Schema coverage is 100% with descriptions for both parameters. The description hints at the 'environments' parameter via examples but does not add new information about the parameters or their usage, so the baseline score of 3 is appropriate.

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 description clearly states the verb 'List' and the resource 'all registered Cohesity protection sources', and provides specific examples (vSphere, Physical servers, NAS, SQL) that differentiate it from sibling tools like 'get_source' which targets a single source.

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

Usage Guidelines2/5

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

The description does not provide any guidance on when to use this tool versus alternatives (e.g., 'get_source' for a specific source), nor does it mention the optional filtering capability or any prerequisites.

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

resolve_alertB

Mark a Cohesity alert as resolved

ParametersJSON Schema
NameRequiredDescriptionDefault
alert_idYesAlert ID to resolve
resolution_summaryNoSummary of how the alert was resolved
resolution_detailsNoDetailed description of the resolution actions taken

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations provided, the description alone must disclose side effects. It only states the action ('mark as resolved') without mentioning permissions, whether the change is reversible, or any downstream effects like notifications.

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?

Single sentence of 6 words is very concise. It conveys purpose without wasted words, but lacks any structure or additional context.

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

Completeness2/5

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

No output schema, no annotations, and no usage guidelines. For a mutation tool, it lacks behavioral context like whether the action is undoable or if confirmation is needed.

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

Parameters3/5

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

Schema coverage is 100% (all three parameters have descriptions). The description adds no extra information about parameters, so baseline 3 is appropriate.

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 description uses a specific verb+resource combination: 'Mark a Cohesity alert as resolved'. This clearly distinguishes from sibling tools like list_alerts (listing) and get_* (retrieval).

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

Usage Guidelines2/5

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

No guidance on when to use this tool vs alternatives, nor any prerequisites or exceptions. The description does not mention when not to use it or what conditions must be met (e.g., alert must be active).

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

run_protection_groupB

Trigger an on-demand backup run for a Cohesity protection group

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesProtection group ID to run
run_typeNoType of backup run: kRegular (incremental), kFull, kLog (log backup), kSystemkRegular
objectsNoSpecific objects to back up. Omit to back up all objects in the group.

TDQS

B3.3/5.0
Behavior2/5

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

With no annotations provided, the description must fully convey behavioral traits. It only states the basic action (triggering a run) without disclosing whether the operation is synchronous, what the return value is, or any side effects (e.g., does it wait for completion?). This is insufficient for safe invocation.

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?

The single-sentence description is concise and front-loaded with the action, but it could be slightly longer to include essential context without becoming verbose.

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

Completeness2/5

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

Despite having 3 parameters and no output schema, the description fails to explain the result of the operation, expected behavior (e.g., async vs sync), or how to interpret the response. It is too minimal for an action-triggering tool.

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

Parameters3/5

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

The input schema has 100% parameter description coverage, so the baseline is 3. The tool description adds no extra meaning beyond the schema, repeating the overall purpose without detailing parameter specifics.

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 description clearly states the action ('Trigger an on-demand backup run') and the resource ('Cohesity protection group'), using a specific verb that distinguishes it from sibling tools like 'get_protection_group' or 'list_protection_groups'.

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

Usage Guidelines3/5

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

The description implies the tool is for on-demand runs but provides no explicit guidance on when to use it versus scheduled backups or other alternatives. It lacks prerequisites, exclusions, or context for selecting this tool over siblings.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 14 tool updatesv1.0.0
    • First observedget_cluster_info
    • First observedget_cluster_stats
    • First observedget_protection_group
    • First observedget_protection_run
    • First observedget_recovery_task
    • First observedget_source
    • First observedlist_alerts
    • First observedlist_protection_groups
    • First observedlist_protection_policies
    • First observedlist_protection_runs
    • First observedlist_recovery_tasks
    • First observedlist_sources
    • First observedresolve_alert
    • First observedrun_protection_group

TDQS

A3.7/5.0

Scored across 14 tools

Disambiguation5/5

Each tool targets a distinct entity and action (e.g., get_cluster_info vs get_cluster_stats, list_protection_groups vs list_protection_policies), with no overlap in purpose.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern using snake_case, such as get_cluster_info, list_alerts, run_protection_group, resolve_alert.

Tool Count5/5

14 tools cover the typical operations for a data protection domain without being excessive or insufficient, balancing detail and scope.

Completeness3/5

The set lacks create/update/delete operations for protection groups and policies, which are common lifecycle actions; agents may need those for full management.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    C
    maintenance
    Enables AI assistants to interact with and manage Kubernetes clusters, supporting operations on pods, deployments, services, configmaps, secrets, namespaces, metrics, and events with built-in safety features for destructive actions.
    9
    13 npm
    1
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables AI agents to securely access and manage Commvault environments, including job control, backup schedules, client/storage management, SLA monitoring, and optional DocuSign envelope backup integration.
    17
    Apache 2.0
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables AI assistants to interact with Dell PowerScale (Isilon) OneFS clusters through over 2,400 tools generated from the REST API specification. It supports managing storage protocols, snapshots, networking, and cluster configurations using natural language.
    2
    MIT
  • A
    license
    B
    quality
    C
    maintenance
    Enables AI assistants to manage Nutanix infrastructure via Prism Central and Prism Element APIs, including VM operations, cluster management, networking, and as-built report generation.
    28
    AGPL 3.0