Dell SC Series MCP Server

Dell SC Series MCP Server

A read-only MCP server that lets AI assistants diagnose Dell SC Series storage arrays through the array's own REST API.

Category
Visit Server

README

Dell SC Series MCP Server

CI License: MIT Python MCP

A read-only Model Context Protocol (MCP) server that lets AI assistants (opencode, Claude Desktop, any MCP client) diagnose Dell SC Series / Compellent storage arrays (SC5020/F, SC7020/F, SC8000, SC9000, SCv20xx/30xx, SC4020…) through the array's own REST API.

Ask your AI: "How is the SAN doing?", "Any hardware alerts?", "When will the SSD pool run out of space?" — and get answers straight from the controller.

Why this server

  • No Dell Storage Manager (DSM) required. It talks directly to the Storage Center controller REST API (https://<array>:3033/api/rest, SCOS 7.x). If a DSM Data Collector is present, it works against that too.
  • Read-only by design. After login it issues only GET requests. It cannot create/modify/delete anything on your array.
  • Battle-tested diagnostics. The tool set was built while investigating a real production SC5020F incident (emergency write-outage caused by pool exhaustion, dead cache batteries, broken phone-home) — the tools surface exactly the signals that matter.

Features

  • API-version negotiation (works against SCOS 7.x, API 2.0–6.x)
  • Session management with transparent re-login on expiry
  • TLS verification configurable (self-signed default, CA bundle supported)
  • Thread-safe client; sync tools safe for concurrent MCP calls
  • Fully mocked test suite — contributors don't need an array

Tools

Tool Description
sc_health_report Aggregated markdown health report — the "how is the array?" one-shot
sc_alerts Alerts with filters (unacknowledged_only, category)
sc_capacity Disk folders/pools, thresholds, projected full dates, provisioned vs written totals
sc_volumes Volumes: size, pool, folder, last UNMAP/space-reduction time
sc_servers Hosts: connectivity, path counts, mapped volumes, OS
sc_hardware Controllers & enclosures: status, last boot, LEDs, conditions
sc_ports Front/back-end ports + iSCSI fault domains (IPs, MTU, CHAP)
sc_storage_center Array identity, SCOS version, operation mode, background-task flags

Requirements

  • Python 3.10+

  • Network access to the array on TCP 3033

  • An SCOS user account. Important visibility note (learned the hard way):

    Role Sees
    Admin Everything (volumes, pools/capacity, all servers, alerts)
    Reporter Filtered subset on direct connections: alerts, controllers, enclosures — but no volumes, capacity pools, or servers

    For full diagnostics use an Admin account; a Reporter is fine for alert/hardware-only monitoring.

Installation

From source (until published to PyPI):

git clone https://github.com/DigitainIT/dell-sc-series-mcp.git
cd dell-sc-series-mcp
python -m venv .venv
.venv/Scripts/activate        # Windows; use source .venv/bin/activate on Linux/macOS
pip install -e .

Configuration

Environment variables (see .env.example):

Variable Required Default Purpose
SC_HOST Storage Center management IP/hostname
SC_USER SCOS username
SC_PASS SCOS password
SC_PORT 3033 REST API port
SC_TLS_VERIFY false Verify TLS (arrays ship self-signed certs)
SC_CA_BUNDLE Path to CA bundle (overrides SC_TLS_VERIFY)

Run

Standalone (stdio transport — this is what MCP clients spawn for you):

export SC_HOST=192.0.2.10 SC_USER=reader SC_PASS=secret
dell-sc-mcp            # or: python -m dell_sc_mcp

opencode (opencode.json)

{
  "mcp": {
    "dell-sc": {
      "type": "local",
      "command": ["dell-sc-mcp"],
      "environment": {
        "SC_HOST": "192.0.2.10",
        "SC_USER": "reader",
        "SC_PASS": "secret"
      },
      "enabled": true
    }
  }
}

Claude Desktop (claude_desktop_config.json)

{
  "mcpServers": {
    "dell-sc": {
      "command": "dell-sc-mcp",
      "args": [],
      "env": {
        "SC_HOST": "192.0.2.10",
        "SC_USER": "reader",
        "SC_PASS": "secret"
      }
    }
  }
}

On Windows, point command at the console script in your venv, e.g. C:\\path\\to\\.venv\\Scripts\\dell-sc-mcp.exe.

Example conversation

You: Give me a health overview of the storage array. AI (via sc_health_report): Status Up, mode Normal, 23 unacknowledged alerts — including active cache battery alerts on both controllers and SSD-Pool projected full 2026-12-25…

You: Which hosts have degraded connectivity? AI (via sc_servers): degradedConnectivity: ["esxi-02"] — 2/4 paths.

Troubleshooting

Symptom Cause / fix
login failed … HTTP 401 Wrong credentials. SCOS usernames are case-sensitive (Adminadmin).
Login loops through all API versions Array unreachable or port wrong — verify Test-NetConnection <ip> -Port 3033.
sc_volumes/sc_capacity return empty You're using a Reporter account — see visibility table above.
Method not available on some object Direct controller connections expose fewer objects than a DSM Data Collector (e.g. no physical disk list, no perf counters). Deploy DSM for those.
TLS errors with verify on Use SC_CA_BUNDLE with the array's CA, or keep SC_TLS_VERIFY=false on a trusted management LAN.

Development

pip install -e ".[dev]"
pytest                 # fully mocked - no array needed

Layout:

src/dell_sc_mcp/
  client.py     # SCOS REST API client (auth, version negotiation, relogin)
  server.py     # FastMCP server + tools
tests/          # pytest + responses (HTTP fully mocked)
examples/       # standalone diagnostic scripts (diagnose, probe, summarize,
                # MCP smoke test against a live array)

Live smoke test against a real array (optional):

export SC_HOST=... SC_USER=... SC_PASS=...
python examples/mcp_smoke_test.py

Roadmap

  • [ ] Publish to PyPI
  • [ ] Optional write tools with explicit guardrails (acknowledge alerts)
  • [ ] DSM Data Collector target support (historical performance stats)
  • [ ] Response caching for high-frequency polling
  • [ ] Streamable HTTP transport

Contributing

Issues and PRs welcome. Please keep the server read-only by default and never commit real array data (serials, IPs, hostnames) — tests use fictional fixtures only.

Disclaimer

This is an independent community project. It is not affiliated with, endorsed, or supported by Dell Technologies. "Dell" and "Compellent" are trademarks of Dell Inc.

License

MIT © 2026 Gegham Simonyan

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
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
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
VeyraX MCP

VeyraX MCP

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

Official
Featured
Local
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
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
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
E2B

E2B

Using MCP to run code via e2b.

Official
Featured