IBM Storage Insights MCP Server
About
An open-source MCP server providing real-time observability for IBM Storage Insights assets.
Details
- Author
- ibm
- Categories
- Cloud Service, Other, File Management, Infrastructure
Jump to
Running Mcp Server With Streamable Http Transport
This MCP servers is configured to communicate over standard input/output (transport=stdio), but can be re-configured for Streamable HTTP. To setup streamable HTTP please refer](https://github.com/modelcontextprotocol/inspector)AuthenticationandStreamable HTTP
Contributions are welcome! Feel free to open an issue or a pull request if you have any suggestions, bug reports, or improvements to propose.
This project is licensed under theApache License, Version 2.0.
Official Model Context Protocol (MCP) server for esa.io - STDIO transport version.
Official Metabase MCP server for searching data, building queries on the semantic layer, and visualizing results through MCP clients.
Agent-operable cloud platform: database, AI, functions, containers, storage and auth over one remote MCP endpoint with 50 tools.
The agent-native cloud: database, functions, AI, storage, computers. 55 tools, one API key.
An MCP (Model Context Protocol) server that enables LLMs to interact with VAST Data storage APIs. This server exposes VAST Data management endpoints as tools for comprehensive storage infrastructure management and automation.
Interact with the Appwrite API to manage databases, users, storage, and more. Requires configuration via environment variables.
Connects Large Language Models to Firebase Firestore and Storage via the Model Context Protocol.
Proxmox VE MCP server for VMs, LXCs, snapshots, backups, storage, and cluster operations.
A self-hostable MCP server for Cloudflare Workers with OAuth login support, using Cloudflare KV for storage.
A remote MCP server deployable on Cloudflare Workers with OAuth login support, using Cloudflare KV for data storage.
An open-source MCP server providing real-time observability for IBM Storage Insights assets.
DISCLAIMER: This is a community-maintained project and is not officially affiliated with, endorsed by, or supported by IBM. This MCP server utilizes theIBM Storage InsightsExternal APIs.
This open-sourced Model Context Protocol (MCP) server will helpIBM Storage Insightsto integrate in the Agentic-AI ecosystem. It will help users to bring their AI-Agents for seamless observability and diagnosis of their Storage Assets registered withIBM Storage Insights.
- Observability Tools: Leverage keyIBM Storage Insightsmonitoring capabilities via an MCP interface.
- Extensible Design: Easily integrate additional Storage Insights APIs for future expansions.
- Pythonic: Allowing ease of use and extension for AI developers
Listed below are the tools which are presently exposed thought the MCP server:
- Description: Retrieve a list of alerts for a tenant.
- Inputs:
- tenant_id_input(optional string): Storage Insights Tenant id.
# Example 1: Fetch alerts using default tenant ID from .env "Get all alerts for my tenant" # Example 2: Fetch alerts for a specific tenant "Show me alerts for tenant ID 01f13d45-27fd-1e2d-1234-66e2fdea0987" # Example 3: Check critical alerts "What are the current alerts on my storage systems?"
- Description: Retrieve a list of notifications for a tenant.
- Inputs:
- tenant_id_input(optional string): Storage Insights Tenant id.
# Example 1: Get all notifications using default tenant "Show me all notifications for my tenant" # Example 2: Fetch notifications for specific tenant "Get notifications for tenant 01f13d45-27fd-1e2d-1234-66e2fdea0987" # Example 3: Check recent notifications "What notifications do I have on my storage infrastructure?"
- Description: Get all storage systems added to the tenant for monitoring tenant.
- Inputs:
- tenant_id_input(optional string): Storage Insights Tenant id.
# Example 1: List all storage systems "Show me all storage systems in my tenant" # Example 2: Get storage systems for specific tenant "List storage systems for tenant 01f13d45-27fd-1e2d-1234-66e2fdea0987" # Example 3: Check available systems "What storage systems are being monitored?"
- Description: Get notifications of system under the tenant.
- Inputs:
- system_id(string): Unique system id for the system.
- tenant_id_input(optional string): Storage Insights Tenant id.
# Example 1: Get notifications for a specific system "Show notifications for system 5249e140-3d44-11f1-8e40-a94d2a0672fd" # Example 2: Check system-specific notifications "What notifications exist for storage system 5249e140-3d44-11f1-8e40-a94d2a0672fd?" # Example 3: Get notifications for system in specific tenant "Get notifications for system 5249e140-3d44-11f1-8e40-a94d2a0672fd in tenant 01f13d45-27fd-1e2d-1234-66e2fdea0987"
- Description: Get details for given system present on the tenant.
- Inputs:
- system_id(string): Unique system id for the system.
- tenant_id_input(optional string): Storage Insights Tenant id.
# Example 1: Get complete details of a system "Show me details for storage system 5249e140-3d44-11f1-8e40-a94d2a0672fd" # Example 2: Check system configuration "What are the details of system 5249e140-3d44-11f1-8e40-a94d2a0672fd?" # Example 3: Get system info for specific tenant "Get details for system 5249e140-3d44-11f1-8e40-a94d2a0672fd in tenant 01f13d45-27fd-1e2d-1234-66e2fdea0987"
- Description: Get io rate for a system present on the tenant.
- Inputs:
- system_id(string): Unique system id for the system.
- tenant_id_input(optional string): Storage Insights Tenant id.
- metric_types(optional list of strings): performance metric types
- duration(optional string): duration for the data fetch (e.g.20m,1h,1d)
- volume_overall_read_io_rate
- volume_overall_write_io_rate
- volume_overall_total_io_rate
# Example 1: Get IO rate for last hour "Show me IO rate for system 5249e140-3d44-11f1-8e40-a94d2a0672fd for the last 1 hour" # Example 2: Get read and write IO rates for last day "Get read and write IO rates for system 5249e140-3d44-11f1-8e40-a94d2a0672fd over the last day" # Example 3: Check total IO rate for last 20 minutes "What is the total IO rate for system 5249e140-3d44-11f1-8e40-a94d2a0672fd in the last 20 minutes?"
- Description: Get data rate for a system present on the tenant.
- Inputs:
- system_id(string): Unique system id for the system.
- tenant_id_input(optional string): Storage Insights Tenant id.
- metric_types(optional list of strings): performance metric types
- duration(optional string): duration for the data fetch (e.g.20m,1h,1d)
- volume_read_data_rate
- volume_write_data_rate
- volume_total_data_rate
# Example 1: Get data rate for last hour "Show me data rate for system 5249e140-3d44-11f1-8e40-a94d2a0672fd for the past hour" # Example 2: Get read data rate for last day "What is the read data rate for system 5249e140-3d44-11f1-8e40-a94d2a0672fd over the last 24 hours?" # Example 3: Check total data throughput "Get total data rate for system 5249e140-3d44-11f1-8e40-a94d2a0672fd in the last 30 minutes"
- Description: Get response time for a system present on the tenant.
- Inputs:
- system_id(string): Unique system id for the system.
- tenant_id_input(optional string): Storage Insights Tenant id.
- metric_types(optional list of strings): performance metric types
- duration(optional string): duration for the data fetch (e.g.20m,1h,1d)
- volume_read_response_time
- volume_write_response_time
- volume_total_response_time
# Example 1: Get response time for last hour "Show me response time for system 5249e140-3d44-11f1-8e40-a94d2a0672fd for the last hour" # Example 2: Check read response time "What is the read response time for system 5249e140-3d44-11f1-8e40-a94d2a0672fd over the last day?" # Example 3: Get total response time metrics "Get total response time for system 5249e140-3d44-11f1-8e40-a94d2a0672fd in the last 20 minutes"
- Description: Get transfer size for a system present on the tenant.
- Inputs:
- system_id(string): Unique system id for the system.
- tenant_id_input(optional string): Storage Insights Tenant id.
- metric_types(optional list of strings): performance metric types
- duration(optional string): duration for the data fetch (e.g.20m,1h,1d)
- volume_read_transfer_size
- volume_write_transfer_size
- volume_total_transfer_size
# Example 1: Get transfer size for last hour "Show me transfer size for system 5249e140-3d44-11f1-8e40-a94d2a0672fd for the last hour" # Example 2: Check write transfer size "What is the write transfer size for system 5249e140-3d44-11f1-8e40-a94d2a0672fd over the last day?" # Example 3: Get total transfer size metrics "Get total transfer size for system 5249e140-3d44-11f1-8e40-a94d2a0672fd in the last 30 minutes"
- Description: Get cpu utilization for a system present on the tenant.
- Inputs:
- system_id(string): Unique system id for the system.
- tenant_id_input(optional string): Storage Insights Tenant id.
- metric_types(optional list of strings): performance metric types
- duration(optional string): duration for the data fetch (e.g.20m,1h,1d)
# Example 1: Get CPU utilization for last hour "Show me CPU utilization for system 5249e140-3d44-11f1-8e40-a94d2a0672fd for the last hour" # Example 2: Check CPU usage over last day "What is the CPU utilization for system 5249e140-3d44-11f1-8e40-a94d2a0672fd over the last 24 hours?" # Example 3: Monitor CPU performance "Get CPU utilization for system 5249e140-3d44-11f1-8e40-a94d2a0672fd in the last 20 minutes"
- Description: Get capacity for a system present on the tenant.
- Inputs:
- system_id(string): Unique system id for the system.
- tenant_id_input(optional string): Storage Insights Tenant id.
- metric_types(optional list of strings): performance metric types
- duration(optional string): duration for the data fetch (e.g.20m,1h,1d)
# Example 1: Get capacity metrics for last hour "Show me capacity metrics for system 5249e140-3d44-11f1-8e40-a94d2a0672fd for the last hour" # Example 2: Check available capacity "What is the available capacity for system 5249e140-3d44-11f1-8e40-a94d2a0672fd?" # Example 3: Monitor used capacity over time "Get used capacity for system 5249e140-3d44-11f1-8e40-a94d2a0672fd over the last day"
- Description: Get component for a system present on the tenant.
- Inputs:
- system_id(string): Unique system id for the system.
- comp_type(string): name of the component to fetch.
- tenant_id_input(optional string): Storage Insights Tenant id.
- volumes
- pools
- enclosures
- drives
- fc-ports
- ip-ports
- host-connections
- io-groups
- managed-disks
# Example 1: Get volumes for a system "Show me all volumes for system 5249e140-3d44-11f1-8e40-a94d2a0672fd" # Example 2: List storage pools "What pools are configured on system 5249e140-3d44-11f1-8e40-a94d2a0672fd?" # Example 3: Check FC ports "Get fc-ports for system 5249e140-3d44-11f1-8e40-a94d2a0672fd"
- Description: Get alerts of system under the tenant.
- Inputs:
- system_id(string): Unique system id for the system.
- tenant_id_input(optional string): Storage Insights Tenant id.
# Example 1: Get alerts for a specific system "Show me alerts for system 5249e140-3d44-11f1-8e40-a94d2a0672fd" # Example 2: Check system alerts "What alerts are active on system 5249e140-3d44-11f1-8e40-a94d2a0672fd?" # Example 3: Get alerts for system in specific tenant "Get alerts for system 5249e140-3d44-11f1-8e40-a94d2a0672fd in tenant tenant123"
- Description: Fetch storage system details, alert details and notification details in sequence with the same input. Filter the result to show only systems in error status, critical alerts and notifications.
- Inputs:
- tenant_id_input(optional string): Storage Insights Tenant id.
# Example 1: Get morning summary with default tenant "Run morning cup of coffee for my tenant" # Example 2: Get daily health check "Give me the morning cup of coffee report" # Example 3: Get summary for specific tenant "Run morning cup of coffee for tenant 01f13d45-27fd-1e2d-1234-66e2fdea0987"
- Install uv : ReferInstalling UVsection to install uv.
Tools in this MCP Server invokesIBM Storage InsightsAPIs and hence needs Storage Insights tenant ID and API key for a working setup. ReferGenerating a REST API keyto generate REST API key for your tenant ID.
Add below values tosrc/si_mcp_server_oss/.envfile:
DEFAULT_SI_TENANT_ID = <Your Storage Insights tenant ID> DEFAULT_SI_API_KEY = <Your Storage Insights External Rest API key> ADDITIONAL_TENANT_API_MAPPING = <Additional tenant id and API key mapping if you want the server to support multiple tenants (optional)> LOG_FILE_PATH = <Directory path to store mcp server logs (optional)> LOG_LEVEL = <Log level fo the configured logger (optional)> CONFIG_FILE_PATH = <Path to the config file (optional)>
Add the following configuration to yourclaude_desktop_config.json:
MacOS:~/Library/Application Support/Claude/claude_desktop_config.json
Windows:%APPDATA%/Claude/claude_desktop_config.json
{ "mcpServers": { "si_mcp_server": { "command": "uv", "args": [ "--directory", "/ABSOLUTE/PATH/TO/PARENT/FOLDER/si-mcp-server-oss/src/si_mcp_server_oss", "run", "server.py" ] } } }
-
We recommend using theMCP Inspectorfor testing and debugging. You can run the inspector with:
npx @modelcontextprotocol/inspector uv --directory /ABSOLUTE/PATH/TO/PARENT/FOLDER/si-mcp-server-oss/src/si_mcp_server_oss run server.py
The inspector will provide a URL you can open in your browser to see logs and send requests manually.
Optionally, changeLOG_LEVELin .env file and set it toDEBUGto collect debug logs from the server.
Running MCP server with Streamable HTTP Transport
This MCP servers is configured to communicate over standard input/output (transport=stdio), but can be re-configured for Streamable HTTP. To setup streamable HTTP please referAuthenticationandStreamable HTTP
Contributions are welcome! Feel free to open an issue or a pull request if you have any suggestions, bug reports, or improvements to propose.
This project is licensed under theApache License, Version 2.0.
Official Model Context Protocol (MCP) server for esa.io - STDIO transport version.
Official Metabase MCP server for searching data, building queries on the semantic layer, and visualizing results through MCP clients.
Agent-operable cloud platform: database, AI, functions, containers, storage and auth over one remote MCP endpoint with 50 tools.
The agent-native cloud: database, functions, AI, storage, computers. 55 tools, one API key.
An MCP (Model Context Protocol) server that enables LLMs to interact with VAST Data storage APIs. This server exposes VAST Data management endpoints as tools for comprehensive storage infrastructure management and automation.
Interact with the Appwrite API to manage databases, users, storage, and more. Requires configuration via environment variables.
Connects Large Language Models to Firebase Firestore and Storage via the Model Context Protocol.
Proxmox VE MCP server for VMs, LXCs, snapshots, backups, storage, and cluster operations.
A self-hostable MCP server for Cloudflare Workers with OAuth login support, using Cloudflare KV for storage.
A remote MCP server deployable on Cloudflare Workers with OAuth login support, using Cloudflare KV for data storage.
Sign in to leave a review
Use Google, GitHub, or an email account so ratings stay tied to real people.
No reviews posted yet.




