Google Cloud NetApp Volumes MCP Server

Google Cloud NetApp Volumes MCP Server

Enables AI assistants to manage Google Cloud NetApp Volumes resources including storage pools, volumes, snapshots, backups, and more through natural language.

Category
Visit Server

README

Google Cloud NetApp Volumes MCP Server

A Model Context Protocol (MCP) server for managing Google Cloud NetApp Volumes (GCNV) resources through AI assistants such as Gemini CLI, Cursor, and other MCP-compatible clients.

Supported Resources

Resource Operations
Storage Pools create, get, list, update, delete, validate directory service
Volumes create, get, list, update, delete
Snapshots create, get, list, update, delete, revert
Backup Vaults create, get, list, update, delete
Backups create, get, list, update, delete, restore, restore files
Backup Policies create, get, list, update, delete
Replications create, get, list, update, delete, stop, resume, reverse direction, sync, establish peering
Active Directory create, get, list, update, delete
KMS Configs create, get, list, update, delete, verify, encrypt volumes
Quota Rules create, get, list, update, delete
Host Groups create, get, list, update, delete
Operations get, list, cancel

Prerequisites

Quick Start

Run the published package directly (no local build required):

npx gcnv-mcp-server@latest --transport stdio

Or install via the Gemini CLI extension workflow:

# 1. Authenticate
gcloud auth login
gcloud auth application-default login

# 2. Install the extension
gemini extension install <repository-url>

# 3. Verify
gemini mcp list

Gemini automatically starts the MCP server when a linked extension needs it. No manual npm start is required for normal usage.

Authentication

The server uses Google Cloud credentials to authenticate API requests. Configure one of the following before invoking any tool:

  • Application Default Credentials (recommended)
gcloud auth application-default login
  • Service account key file
export GOOGLE_APPLICATION_CREDENTIALS=/path/to/key.json

Transport Modes

The server supports stdio (default) and HTTP/SSE transports.

Stdio (default)

Used automatically by Gemini CLI and other stdio-based MCP clients.

npm start                          # default stdio
npm run start:stdio                # explicit

HTTP/SSE

For web-based MCP clients or remote access.

npm run start:http                 # port 3000
npm start -- -t http -p 8080       # custom port
Option Description Default
--transport, -t stdio or http stdio
--port, -p HTTP listen port 3000

HTTP endpoint: http://localhost:<port>/message

Tool Reference

Storage Pool Tools

Tool Description
gcnv_storage_pool_create Create a storage pool (FLEX / STANDARD / PREMIUM / EXTREME)
gcnv_storage_pool_get Get storage pool details
gcnv_storage_pool_list List storage pools (supports pagination and filtering)
gcnv_storage_pool_update Update pool capacity, description, labels, QoS, or type
gcnv_storage_pool_delete Delete a storage pool
gcnv_storage_pool_validate_directory_service Validate attached directory service

Service level guidance:

  • FLEX -- Smaller minimums, broader region availability, independent performance scaling. Minimum: 1024 GiB (FILE/UNIFIED) or 6144 GiB (UNIFIED large capacity).
  • STANDARD / PREMIUM / EXTREME -- Classic tiers with fixed performance-to-capacity ratio. Minimum: 2048 GiB.
  • serviceLevel is accepted case-insensitively (e.g. flex or FLEX).
  • FLEX pools in a region-level location require both zone and replicaZone; zone-level locations satisfy this automatically.
  • storagePoolType accepts FILE or UNIFIED; UNIFIED is only available for FLEX.
  • scaleType: only set to SCALE_TYPE_SCALEOUT when creating a large capacity FLEX UNIFIED pool. Omit for all other pools (defaults to SCALE_TYPE_DEFAULT).

Volume Tools

Tool Description
gcnv_volume_create Create a volume (NFS, SMB, or iSCSI)
gcnv_volume_get Get volume details including mount points
gcnv_volume_list List volumes with pagination and filtering
gcnv_volume_update Update capacity, description, labels, export policy, tiering, backup config
gcnv_volume_delete Delete a volume

iSCSI notes: Protocols must be ["ISCSI"] only (no mixing). Requires hostGroup or hostGroups. Optional blockDevice object with identifier, osType (LINUX / WINDOWS / ESXI), and sizeGib.

Large capacity volumes: Some workloads require larger volumes and higher throughput, which can be achieved by using the large capacity volume option for these service levels. Large capacity volumes provide six storage endpoints (IP addresses) to load-balance client traffic to the volume and deliver higher performance.

  • FLEX Unified: Large capacity volumes can be sized between 4.8 TiB and 2.48 PiB, or up to 20 PiB with auto-tiering, in increments of 1 GiB, and deliver throughput performance of up to 22 GiBps. The FLEX storage pool must be created with scaleType: SCALE_TYPE_SCALEOUT; non-scale-out FLEX pools cannot host large capacity volumes. When largeCapacityConstituentCount is explicitly set, the minimum drops to 2.4 TiB (2,400 GiB) — FLEX Unified only. When largeCapacityConstituentCount is omitted, the 4.8 TiB (4,916 GiB) floor applies.
  • Premium and Extreme: Large capacity volumes can be sized between 15 TiB and 3 PiB in increments of 1 GiB, and deliver throughput performance of up to 30 GiBps.

A large capacity volume is internally composed of several constituent volumes (FlexVols) distributed across the pool's storage aggregates. On gcnv_volume_create you can optionally pass largeCapacityConstituentCount to control how many constituents the volume is built from:

  • Minimum: 2.
  • Default (when omitted): chosen by the backend based on the active deployment layout.
  • The constituent count must be chosen at create time and cannot be changed later.

SMB attributes: When protocols includes SMB, gcnv_volume_create accepts optional SMB feature flags that map to the smbSettings field on the volume:

  • smbEncryptData: trueENCRYPT_DATA (require SMB encryption in flight)
  • smbHideShare: trueNON_BROWSABLE (hide the share from browse lists)
  • smbAccessBasedEnumeration: trueACCESS_BASED_ENUMERATION (ABE) — controls the visibility of files and folders based on the permissions assigned to the user
  • smbContinuouslyAvailable: trueCONTINUOUSLY_AVAILABLE (CA share for SQL Server / FSLogix; choice is permanent on the volume)
  • smbSettings: ["OPLOCKS", ...] — additional API enum values; merged with the booleans above. Do not pass SMB_SETTINGS_UNSPECIFIED; BROWSABLE and NON_BROWSABLE (or BROWSABLE together with smbHideShare) are rejected. NON_BROWSABLE and CONTINUOUSLY_AVAILABLE together (or smbHideShare with smbContinuouslyAvailable) are also rejected — CA shares must be browsable.

These flags require protocols to include SMB. CONTINUOUSLY_AVAILABLE is not supported on FLEX storage pools — the request is rejected before reaching the API. Use STANDARD, PREMIUM, or EXTREME for CA shares.

Snapshot Tools

Tool Description
gcnv_snapshot_create Create a snapshot of a volume
gcnv_snapshot_get Get snapshot details
gcnv_snapshot_list List snapshots for a volume
gcnv_snapshot_update Update snapshot description or labels
gcnv_snapshot_delete Delete a snapshot
gcnv_snapshot_revert Revert a volume to a snapshot

Backup Vault Tools

Tool Description
gcnv_backup_vault_create Create a backup vault (with optional retention policy)
gcnv_backup_vault_get Get backup vault details
gcnv_backup_vault_list List backup vaults
gcnv_backup_vault_update Update description, labels, or retention policy
gcnv_backup_vault_delete Delete a backup vault

Backup Tools

Tool Description
gcnv_backup_create Create a backup from a volume or snapshot
gcnv_backup_get Get backup details
gcnv_backup_list List backups in a vault
gcnv_backup_update Update backup description or labels
gcnv_backup_delete Delete a backup
gcnv_backup_restore Restore a backup to a volume
gcnv_backup_restore_files Restore specific files from a backup

Backup Policy Tools

Tool Description
gcnv_backup_policy_create Create a backup policy with daily/weekly/monthly limits
gcnv_backup_policy_get Get backup policy details
gcnv_backup_policy_list List backup policies
gcnv_backup_policy_update Update backup policy settings
gcnv_backup_policy_delete Delete a backup policy

Replication Tools

Tool Description
gcnv_replication_create Create a volume replication
gcnv_replication_get Get replication details
gcnv_replication_list List replications
gcnv_replication_update Update replication settings
gcnv_replication_delete Delete a replication
gcnv_replication_stop Stop an active replication
gcnv_replication_resume Resume a stopped replication
gcnv_replication_reverse_direction Reverse replication direction
gcnv_replication_sync Trigger an on-demand replication sync
gcnv_replication_establish_peering Establish peering for cross-region replication

Replication is supported between specific region pairs (Standard/Premium/Extreme) or within the same region group (Flex). See the replication guide.

Active Directory Tools

Tool Description
gcnv_active_directory_create Create an Active Directory configuration
gcnv_active_directory_get Get Active Directory details
gcnv_active_directory_list List Active Directory configurations
gcnv_active_directory_update Update Active Directory settings
gcnv_active_directory_delete Delete an Active Directory configuration

KMS Config Tools

Tool Description
gcnv_kms_config_create Create a KMS configuration
gcnv_kms_config_get Get KMS config details
gcnv_kms_config_list List KMS configurations
gcnv_kms_config_update Update KMS config settings
gcnv_kms_config_delete Delete a KMS configuration
gcnv_kms_config_verify Verify a KMS configuration
gcnv_kms_config_encrypt_volumes Encrypt volumes with a KMS config

Quota Rule Tools

Tool Description
gcnv_quota_rule_create Create a quota rule for a volume
gcnv_quota_rule_get Get quota rule details
gcnv_quota_rule_list List quota rules
gcnv_quota_rule_update Update a quota rule
gcnv_quota_rule_delete Delete a quota rule

Host Group Tools

Tool Description
gcnv_host_group_create Create a host group (iSCSI initiator group)
gcnv_host_group_get Get host group details
gcnv_host_group_list List host groups
gcnv_host_group_update Update a host group
gcnv_host_group_delete Delete a host group

Operation Tools

Tool Description
gcnv_operation_get Get details of a long-running operation
gcnv_operation_list List operations with filtering and pagination
gcnv_operation_cancel Cancel an in-progress operation

Architecture

src/
  index.ts                          # Entry point (stdio + HTTP/SSE transports)
  logger.ts                         # Structured logging (pino)
  registry/
    register-tools.ts               # Tool registration
  tools/
    *-tools.ts                      # Tool definitions (Zod schemas)
    handlers/
      *-handler.ts                  # Tool implementations
  types/
    tool.ts                         # Shared TypeScript interfaces
  utils/
    netapp-client-factory.ts        # NetApp client factory with caching

Development

Build and test

npm install
npm run build          # lint + format + compile
npm test               # run all tests
npm run test:coverage  # with coverage report

Dev mode

npm run dev            # stdio via tsx
npm run dev:http       # HTTP via tsx

Adding a new tool

  1. Define the tool schema in src/tools/<resource>-tools.ts
  2. Implement the handler in src/tools/handlers/<resource>-handler.ts
  3. Register the tool in src/registry/register-tools.ts

Pre-commit hook

npm run githooks:install   # enables lint + test on commit

Billing

Pricing is based on provisioned pool capacity, not consumed capacity. Some features (e.g. auto-tiering) add usage-based I/O charges. See the pricing page or use the Google Cloud Pricing Calculator for estimates.

License

Apache-2.0

Feedback

We'd love to hear from you. Share feedback, feature requests, or bug reports at ng-gcnv-mcp-feedback@netapp.com.

Contributing

Contributions are welcome. Please open an issue or submit a pull request.

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured