NetApp MCP Server: Metrics, Volumes, Search
Manage metrics, volumes, and search across your NetApp systems with the MCP server for fast monitoring and control.
npx -y @NetApp/mcpOverview
The NetApp MCP (Model Context Protocol) server provides a lightweight API layer to monitor and manage storage systems at scale. It centralizes telemetry (metrics), inventory (volumes), and content/metadata search across one or more NetApp systems so monitoring, reporting, and automation tools can work against a single, consistent endpoint.
MCP is useful when you need to aggregate data from multiple clusters or arrays into a single view, export metrics to Prometheus-compatible systems, or run quick searches across volumes and snapshots. It is intended for developers and SREs who want a programmatic interface to storage telemetry and control without having to directly query each system’s native API.
Features
- Aggregated metrics export in Prometheus-friendly format for monitoring stacks
- Volume inventory endpoint to list volumes, attributes, and health across systems
- Full-text and metadata search over volumes, snapshots, and other indexed entities
- Multi-system configuration to connect and normalize multiple NetApp endpoints
- Simple HTTP API that can be scraped, queried, or integrated into automation pipelines
- Configurable auth and TLS support for secure deployments
- Lightweight server written to be container-friendly and easy to run locally
Installation / Configuration
Clone and build from source (Go required):
# build the server binary
Run the server with a configuration file (example path and flag):
# or via environment variable
Example minimal YAML configuration:
# /etc/mcp/config.yaml
listen: "0.0.0.0:8080"
tls:
enabled: false
systems:
- name: "cluster-a"
host: "10.0.0.10"
auth:
type: "token"
token: "REPLACE_WITH_TOKEN"
- name: "cluster-b"
host: "10.0.0.11"
auth:
type: "basic"
username: "apiuser"
password: "secretpassword"
prometheus:
enabled: true
path: "/metrics"
Run in Docker (build and run):
# build image locally
# run container
Configuration notes:
- The exact auth fields depend on the systems you integrate; tokens or basic auth are common.
- TLS can be enabled with certificates for production deployments.
- The Prometheus endpoint path is configurable; default is /metrics.
Available Resources
Common HTTP endpoints (paths may be prefixed with /api depending on packaging):
| Path | Method | Description |
|---|---|---|
| /metrics | GET | Prometheus-formatted metrics of aggregated telemetry |
| /volumes | GET | List volumes across configured systems, supports filters |
| /volumes/{id} | GET | Get details for a single volume |
| /search | GET | Full-text / metadata search with query parameters |
| /health | GET | Basic liveness and readiness checks |
Example: fetch aggregated metrics (scrape target for Prometheus)
Example: search volumes by a keyword or metadata field
# search query parameter q supports simple terms and expressions
Available integrations and tooling:
- Use the /metrics endpoint as a Prometheus scrape target.
- Build Grafana dashboards on top of scraped metrics or use volume endpoints for inventory panels.
- Automate workflows by calling /volumes and /search from scripts or orchestration tools.
Use Cases
Centralized monitoring with Prometheus
- Configure MCP as a scrape target in Prometheus:
- prometheus.yml: scrape_configs:
- job_name: ‘netapp-mcp’ static_configs:
- targets: [‘mcp-host:8080’]
- job_name: ‘netapp-mcp’ static_configs:
- prometheus.yml: scrape_configs:
- Advantages: single endpoint for metrics from multiple clusters, simpler alerting rules.
- Configure MCP as a scrape target in Prometheus:
Inventory and reporting
- Periodically call /volumes to produce CSV reports of capacity, provisioning type, and age:
|
- Automation and troubleshooting using search
- Find orphaned large volumes or snapshots across clusters:
- Use the results to drive cleanup scripts or ticketing systems.
Next Steps
- Review and adapt the provided example config to your authentication method.
- Integrate /metrics into your Prometheus configuration and create Grafana dashboards.
- Use the /search and /volumes endpoints to bootstrap automation and inventory workflows.
- See the GitHub repository for code, issues, and contribution guidelines: https://github.com/NetApp/mcp