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.
README
Dell SC Series MCP Server
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
GETrequests. 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 AdminEverything (volumes, pools/capacity, all servers, alerts) ReporterFiltered 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 (Admin ≠ admin). |
| 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
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。