Skip to content
Conduit

mcp server

storage-protect-mcp-server

This project offers MCP server built on the IBM Storage Protect Server CLIs and tools, enabling LLMs to interact with them.

IBM/storage-protect-mcp-serverofficiallistedunreviewed

Set up

Runs on your computer. Pick your agent and operating system.

Before you start

  • uv (`curl -LsSf https://astral.sh/uv/install.sh | sh`)
~/Library/Application Support/Claude/claude_desktop_config.json
{
  "mcpServers": {
    "storage-protect-mcp-server": {
      "command": "uvx",
      "args": [
        "ibm-sp-mcp-server"
      ]
    }
  }
}

same format Cursor, GitHub Copilot CLI, Junie, JetBrains AI Assistant, Augment (Auggie CLI), Factory Droid, Kiro, Devin CLI +12

Values in angle brackets are placeholders. Restart Claude Desktop after editing its config.Claude Desktop docs

README

synced Oct 25, 2026

IBM Storage Protect MCP Server

The IBM Storage Protect Model Context Protocol (MCP) server exposes Storage Protect administration as structured tools for MCP-compatible AI clients. Describe an administrative task in natural language and the AI client invokes the appropriate dsmadmc-backed tool.

What It Provides

  • Monitoring and investigation of Storage Protect servers
  • Client, storage, policy, and system administration
  • Operational tools for protection, maintenance, rules, and diagnostics
  • Unified and fine-grained MCP server deployments
  • stdio/SSH and HTTP/SSE transport options
  • Privilege-aware tool registration and audit correlation

Requirements

  • Python 3.10 or later
  • A reachable IBM Storage Protect server
  • The dsmadmc CLI on the MCP server host
  • A dedicated non-root operating-system user
  • Storage Protect administrator credentials with the required privilege

Full prerequisite details and verification steps are in docs/guides/planning-guide.md and docs/guides/install-guide.md.

Install & Configure

Follow the guides in docs/guides/ in order. Each guide links to the next.

1. Plan — docs/guides/planning-guide.md

Choose a deployment topology (co-located on each SP server host, or centralised on a single control host), inventory your Storage Protect servers, plan service accounts and SSH keys, and confirm system prerequisites.

2. Install — docs/guides/install-guide.md

Set up the OS user and working directory, create a Python virtual environment, install the package and its dependencies, write the .env credential file with 0600 permissions, configure TLS certificates for HTTP transport, and verify the Storage Protect connection.

Key steps at a glance:

# Create the virtual environment and install
python3.11 -m venv .venv
source .venv/bin/activate
pip install -e ".[sse]"          # or: pip install -r requirements-sse.txt

# Write credentials (owner-read-only)
install -m 600 /dev/null .env
echo "SP_ADMIN_ID=mcp-svc-system"     >> .env
echo "SP_ADMIN_PASSWORD=<password>"   >> .env
echo "SP_SERVER_ADDRESS=your-sp-host" >> .env
echo "SP_SERVER_PORT=1500"            >> .env

Full topology-specific instructions (co-located vs centralised, SSH key deployment, TLS setup) are in install-guide.md.

3. Configure — docs/guides/configure-guide.md

Register the MCP server in your AI client (Claude Desktop, VS Code Copilot, or similar). Choose a transport:

TransportWhen to use
stdio over SSHSingle-client, local, or Claude Desktop deployments
http with OIDCEnterprise, multi-client, or REST gateway deployments

Example stdio + SSH entry for Claude Desktop (claude_desktop_config.json):

{
  "mcpServers": {
    "sp-admin": {
      "command": "ssh",
      "args": [
        "-i", "~/.ssh/id_ed25519_sp_mcp",
        "-o", "StrictHostKeyChecking=yes",
        "mcp-runner@your-sp-server",
        "/opt/sp-mcp-server/.venv/bin/python3",
        "-m", "sp_mcp_server.main",
        "--mode", "full"
      ]
    }
  }
}

Authentication modes, privilege scoping, multi-server configurations, and HTTP/OIDC setup are covered in configure-guide.md.

Usage

Full usage reference is in docs/guides/user-guide.md. The sections below summarise the most common starting points.

Starting the server manually

The MCP client normally launches the server for you via the configured command. For testing or offline use, start it directly:

cd /opt/sp-mcp-server
source .venv/bin/activate

# Full administrative access
python3 -m sp_mcp_server.main --mode full

# Monitoring / read-only (safest for first run)
python3 -m sp_mcp_server.main --mode read-only

Specialised server modules

Instead of the unified main server you can launch a focused module that exposes only the tools for one administrative domain:

ModuleCommandScope
Client coremcp-server-clients-coreNode and group management
Client configmcp-server-clients-configNode options and settings
Storage poolsmcp-server-storage-poolsStorage pool and volume management
Storage hardwaremcp-server-storage-hardwareLibrary and drive management
Storage devicemcp-server-storage-deviceDevice class and data-mover configuration
Policies lifecyclemcp-server-policies-lifecyclePolicy sets and activation
Policies managementmcp-server-policies-managementManagement classes and copy groups
System adminmcp-server-system-adminAdministrators and licensing
System configmcp-server-system-configServer options, schedules, and monitoring
Operationsmcp-server-opsStatus, sessions, and activity log
Ops protectionmcp-server-ops-protectionBackup rules and recovery
Ops maintenancemcp-server-ops-maintenanceDatabase, log, and media maintenance
Ops rulesmcp-server-ops-rulesAdministrative schedules and rules

Privilege tiers

The server narrows the registered tool set to match the IBM SP privilege class of the active account:

Privilege classTools available
SystemAll tools — full administrative scope
PolicyPolicy management + all read-only tools
StorageStorage management + all read-only tools
OperatorOperations (sessions, media, jobs) + read-only tools
Any-admin (no class)Read-only QUERY tools only

Use --mode read-only to restrict to read-only tools regardless of privilege class.

Authentication modes

ModeSP_MCP_AUTH_MODE valueBest for
Static tiered service accounts (default)service_accountAutomated pipelines, daemons, single-tenant bots
Dynamic challenge-responsedynamicInteractive chat (Claude Desktop) — users authenticate per session

See user-guide.md for session lifecycle, audit records, and safe usage practices.

Troubleshooting

Startup errors, credential failures, connection problems, SSH issues, and runtime diagnostics are covered in docs/guides/troubleshoot.md.

Documentation

PathContents
docs/guides/End-user guides: planning, install, configure, use, troubleshoot
docs/architecture/System and module architecture
docs/design/Security and design specifications
docs/implement/Implementation specifications
docs/analysis/Design and security analysis
docs/traceability/Requirements traceability, gap analysis, and independent audit report
docs/reference/Product reference material
docs/example/sample-prompts.mdExample administrator prompts and task patterns

Contributing

Contributions are welcome through Pull Requests. To contribute:

  1. Fork the repository and create a new branch for your feature or bug fix.
  2. Follow the existing code style and conventions.
  3. Test your changes thoroughly before submitting.
  4. Submit a pull request with a clear description of your changes.
  5. Sign the Developer's Certificate of Origin (DCO) by adding your name and email address to DCO.md in your pull request.

For issues, questions, or feature requests, open an issue in the repository.

Disclaimer

This software is provided "as is" without any warranties of any kind, including, but not limited to, warranties related to installation, use, or performance. IBM is not responsible for any damage, charges, or data loss incurred with the use of this software. You are responsible for reviewing and testing any scripts you run thoroughly before you use them in any production environment. This content is subject to change without notice.

↑↓ navigate openesc close