Dell Unity MCP Server
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Dell Unity MCP Serverlist storage pools on unity.example.com with admin/secret"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Dell Unity MCP Server
A Model Context Protocol (MCP) server for Dell Unity storage arrays that automatically generates tools from OpenAPI specifications with a credential-free architecture. Enables AI assistants like Claude and automation platforms like n8n to interact with Unity storage systems.
✨ Features
Feature | Description |
🔄 Automatic Tool Generation | Dynamically generates 359+ MCP tools from Dell Unity OpenAPI specs |
🔐 Credential-Free Architecture | No stored credentials - pass host/username/password with each tool call |
🌐 Multi-Host Support | Manage multiple Unity arrays from a single server |
🛡️ Configurable Operations | GET-only by default, configurable to enable POST/DELETE |
🔌 Multiple Transports | HTTP/SSE for n8n, stdio for Claude Desktop |
📊 Health Monitoring | Built-in health checks and metrics endpoints |
🐳 Docker Ready | Production-ready container images |
Related MCP server: n8n-MCP
📋 Table of Contents
🚀 Quick Start
# Clone and install
git clone https://github.com/sachdev27/dell-unity-mcp-server.git
cd dell-unity-mcp-server
pip install -e .
# Run HTTP/SSE server (for n8n)
export LOCAL_OPENAPI_SPEC_PATH="./openapi.json"
python -m uvicorn unity_mcp.http_server:app --host 0.0.0.0 --port 8000
# Or run stdio server (for Claude Desktop)
python -m unity_mcp.main📦 Installation
From Source
From PyPI (Recommended)
pip install dell-unity-mcp-serverFrom Source
# Clone the repository
git clone https://github.com/sachdev27/dell-unity-mcp-server.git
cd dell-unity-mcp-server
# Create virtual environment
python -m venv venv
source venv/bin/activate # On macOS/Linux
# venv\Scripts\activate # On Windows
# Install in development mode
pip install -e ".[dev]"Using Docker
# Build the image
docker build -t dell-unity-mcp-server .
# Run with SSE transport (GET-only by default)
docker run -p 8000:8000 dell-unity-mcp-server
# Run with full access (GET, POST, DELETE)
docker run -p 8000:8000 -e ALLOWED_HTTP_METHODS="GET,POST,DELETE" dell-unity-mcp-serverRequirements
Python: 3.10, 3.11, 3.12, or 3.13
Dell Unity: Any supported version with REST API enabled (v5.x recommended)
⚙️ Configuration
Environment Variables
Variable | Description | Default |
| Path to OpenAPI specification (required) | - |
| Logging level (DEBUG, INFO, WARNING, ERROR) |
|
| HTTP server port |
|
| Comma-separated list of allowed methods |
|
| Default Unity hostname (optional) | - |
| Verify TLS certificates |
|
| Request timeout in milliseconds |
|
| Maximum retry attempts |
|
Example .env File
# Required
LOCAL_OPENAPI_SPEC_PATH=/app/openapi.json
# Server Configuration
HTTP_SERVER_PORT=8000
LOG_LEVEL=INFO
# HTTP Methods (GET = read-only, add POST,DELETE for write operations)
ALLOWED_HTTP_METHODS=GET
# Optional Unity defaults
# UNITY_HOST=unity.example.com
# UNITY_TLS_VERIFY=falseConfiguring HTTP Methods
By default, the server only exposes GET operations (read-only). To enable write operations:
# Read-only (default) - 359 tools
export ALLOWED_HTTP_METHODS="GET"
# Full access - 777 tools
export ALLOWED_HTTP_METHODS="GET,POST,PUT,PATCH,DELETE"⚠️ Important: Unity credentials are NOT stored in configuration. They are passed securely with each tool call.
📖 Usage
HTTP/SSE Mode (for n8n and Web Clients)
# Using uvicorn
python -m uvicorn unity_mcp.http_server:app --host 0.0.0.0 --port 8000
# Using the main module
python -m unity_mcp.main --mode httpThe server provides:
SSE Endpoint:
http://localhost:8000/sseHealth Check:
http://localhost:8000/healthReadiness Check:
http://localhost:8000/readyLiveness Check:
http://localhost:8000/liveMetrics:
http://localhost:8000/metrics
stdio Mode (for Claude Desktop)
# Using Python module
python -m unity_mcp.mainDocker Compose
# docker-compose.yml
version: '3.8'
services:
unity-mcp:
build: .
ports:
- "8000:8000"
environment:
- ALLOWED_HTTP_METHODS=GET
- LOG_LEVEL=INFO
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8000/health"]
interval: 30s
timeout: 10s
retries: 3# Start the server
docker-compose up -d
# View logs
docker-compose logs -f
# Stop the server
docker-compose down🔗 Integration
n8n AI Agent
Add an MCP Client node to your n8n workflow
Configure the connection:
Transport: SSE
URL:
http://localhost:8000/sse
The 359+ Unity tools will be available to AI agents
Claude Desktop
Add to your Claude Desktop configuration (claude_desktop_config.json):
{
"mcpServers": {
"dell-unity": {
"command": "/path/to/venv/bin/python",
"args": ["-m", "unity_mcp.main"],
"env": {
"LOCAL_OPENAPI_SPEC_PATH": "/path/to/openapi.json"
}
}
}
}Custom MCP Clients
import asyncio
from mcp import ClientSession
from mcp.client.sse import sse_client
async def main():
async with sse_client("http://localhost:8000/sse") as (read, write):
async with ClientSession(read, write) as session:
await session.initialize()
# List available tools
tools = await session.list_tools()
print(f"Found {len(tools.tools)} tools")
# Get system information
result = await session.call_tool("systemCollectionQuery", {
"host": "unity.example.com",
"username": "admin",
"password": "password",
"fields": "id,name,model,serialNumber"
})
print(result)
# Get all LUNs
result = await session.call_tool("lunCollectionQuery", {
"host": "unity.example.com",
"username": "admin",
"password": "password",
"fields": "id,name,sizeTotal,pool",
"per_page": 100
})
print(result)
asyncio.run(main())🔧 Available Tools
The server dynamically generates 359+ tools (GET-only) or 777+ tools (full access) from the Unity OpenAPI specification.
Authentication Parameters
Every tool requires these authentication parameters:
Parameter | Type | Description |
| string | Unity hostname or IP |
| string | Unity username |
| string | Unity password |
Tool Categories
Category | Example Tools | Description |
Storage |
| LUN and pool management |
System |
| System information |
Network |
| Network configuration |
File Services |
| File storage |
Protection |
| Data protection |
Monitoring |
| Alerts and events |
Host Access |
| Host management |
Query Parameters
All collection endpoints support Unity query parameters:
{
"host": "unity.example.com",
"username": "admin",
"password": "password",
"fields": "id,name,sizeTotal,health",
"filter": "name lk 'prod*'",
"per_page": 100,
"page": 1,
"compact": "true"
}Unity Filter Syntax
Unity uses a specific filter syntax for queries:
Operator | Description | Example |
| Equals |
|
| Not equals |
|
| Less than |
|
| Greater than |
|
| Like (wildcard) |
|
| Logical AND |
|
🏗️ Architecture
Credential-Free Design
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ AI Client │────▶│ MCP Server │────▶│ Dell Unity │
│ (Claude/n8n) │ │ (No Credentials)│ │ Array │
└─────────────────┘ └─────────────────┘ └─────────────────┘
│ │
│ Tool Call with │ Per-Request
│ Credentials │ Authentication
▼ ▼
{host, user, pass} Basic Auth HeaderKey Design Principles
No Stored Credentials: Server starts without any Unity connection
Per-Request Auth: Each tool call includes host/username/password
Fresh Sessions: New API client created for each request
Multi-Host Ready: Easily manage multiple Unity arrays
Configurable Access: Control which HTTP methods are exposed
Module Structure
unity_mcp/
├── __init__.py # Package initialization and version
├── api_client.py # Async Unity API client with retry logic
├── config.py # Configuration management with validation
├── exceptions.py # Custom exception hierarchy
├── http_server.py # HTTP/SSE transport server
├── logging_config.py # Structured logging configuration
├── main.py # stdio transport entry point
├── server.py # Core MCP server with tool handlers
└── tool_generator.py # OpenAPI parser and tool generator🧪 Development
Setup Development Environment
# Clone and install with dev dependencies
git clone https://github.com/sachdev27/dell-unity-mcp-server.git
cd dell-unity-mcp-server
python -m venv venv
source venv/bin/activate
pip install -e ".[dev]"Running Tests
# Run all tests
pytest
# Run with verbose output
pytest -v
# Run with coverage
pytest --cov=unity_mcp --cov-report=html
# Run specific test file
pytest tests/test_tool_generator.py -vCode Quality
# Format code
black unity_mcp tests
# Lint code
ruff check unity_mcp tests
# Type checking
mypy unity_mcp
# Security scan
bandit -r unity_mcpBuilding
# Build distribution packages
python -m build
# Build Docker image
docker build -t dell-unity-mcp-server .🤝 Contributing
Contributions are welcome!
Fork the repository
Create a feature branch (
git checkout -b feature/amazing-feature)Commit your changes (
git commit -m 'Add amazing feature')Push to the branch (
git push origin feature/amazing-feature)Open a Pull Request
📄 License
This project is licensed under the MIT License - see the LICENSE file for details.
📚 Additional Resources
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
Alicense-qualityDmaintenanceAn MCP server that enables dynamic tool registration and execution based on API definitions, providing seamless integration with services like Claude.ai and Cursor.ai.Last updated23MIT- Alicense-qualityDmaintenanceAn MCP server that provides AI assistants with access to documentation, schemas, and operations for over 535 n8n workflow automation nodes. It enables models to understand, create, and manage n8n workflows through natural language by connecting to the n8n API.Last updated196,443MIT
- Alicense-qualityCmaintenanceA generic MCP server that dynamically converts OpenAPI-defined REST APIs into tools for LLMs like Claude. It supports multiple authentication methods and transport protocols, enabling seamless interaction with any OpenAPI-compliant API.Last updated28MIT
- Alicense-qualityDmaintenanceA universal MCP server that connects any REST API to AI assistants via OpenAPI or Postman specifications. It enables dynamic tool creation with GraphQL-style field selection and automatic schema inference for efficient data retrieval.Last updated475Inno Setup
Related MCP Connectors
Self-hosted MCP gateway: turn any API, database or MCP server into AI connectors — no code.
MCP server for AI agents to plan, verify, and deploy Cloudflare-native apps.
Security-first WordPress MCP server. 129 tools for Claude, ChatGPT, Gemini. Free on wp.org.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/sachdev27/dell-unity-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server