- Home
- MCP servers
- IBM Storage Insights
IBM Storage Insights
- python
- Official
9
GitHub Stars
python
Language
5 months ago
First Indexed
2 months ago
Catalog Refreshed
Documentation & install
Readme and setup notes from the catalogue, plus a client-ready config you can copy for your MCP host.
Installation
Add the following to your MCP client configuration file.
Configuration
View docs{
"mcpServers": {
"ibm-ibm-storageinsights-mcpserver": {
"command": "uv",
"args": [
"--directory",
"/ABSOLUTE/PATH/TO/PARENT/FOLDER/si-mcp-server-oss/src/si_mcp_server_oss",
"run",
"server.py"
],
"env": {
"LOG_LEVEL": "<DEBUG|INFO|WARN|ERROR>",
"LOG_FILE_PATH": "<Path to logs>",
"CONFIG_FILE_PATH": "/etc/si-mcp/config.json",
"DEFAULT_SI_API_KEY": "<Your API key>",
"DEFAULT_SI_TENANT_ID": "<Your tenant id>",
"ADDITIONAL_TENANT_API_MAPPING": "<Optional tenant mappings>"
}
}
}
}This MCP server provides a dedicated bridge to IBM Storage Insights observability data, enabling your AI agents to query tenant alerts, notifications, storage systems, and system-level performance metrics through a consistent Model Context Protocol interface. It simplifies integration by exposing a set of tools you can orchestrate from your MCP client to diagnose and observe Storage Insights assets.
How to use
You interact with this MCP server through your MCP client to retrieve alerts, notifications, and per-system metrics from Storage Insights. Start the server in stdio mode and connect your MCP client to run commands that fetch tenant data, system details, and performance metrics. You can chain tool calls in your workflow to build observability dashboards, trigger diagnostics, or trigger AI-assisted analysis across multiple storage systems.
How to install
Prerequisites: you need the MCP runtime environment (UV) installed on your machine. You also need Storage Insights credentials (tenant ID and API key) with access to the APIs described.
- Prepare your environment file with Storage Insights credentials.
env
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)>
- Create a Claude MCP configuration snippet for the local server. The following config runs the MCP server using the UV runtime in stdio mode.
{
"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"
]
}
}
}
- Run the server and verify it starts without errors. You should see the server begin listening for MCP requests on standard input/output.
Additional sections
Environment and runtime details: the server reads Storage Insights credentials from environment variables. Ensure the following variables are set in your environment or in the .env file you reference when launching the server: DEFAULT_SI_TENANT_ID, DEFAULT_SI_API_KEY, ADDITIONAL_TENANT_API_MAPPING, LOG_FILE_PATH, LOG_LEVEL, and CONFIG_FILE_PATH. The server is designed to run in stdio mode using the UV runtime, but you can configure alternate transport methods if you plan to use streamable HTTP in your deployment.
Testing and debugging: you can use the MCP Inspector during development to observe logs and manually send requests. Start the inspector with the same run command used to start the MCP server to view live logs and test responses.
Notes on usage: the server exposes a set of tools for fetching tenant-level data, system-level details, and performance metrics. You can chain tool calls in your MCP client to obtain a comprehensive observability snapshot across tenants and systems, including alerts, notifications, and various IO/data metrics.
Available tools
fetch_tenant_alerts
Retrieve a list of alerts for a tenant. Inputs: tenant_id_input (optional). Returns: List of alerts for the tenant.
fetch_tenant_notifications
Retrieve a list of notifications for a tenant. Inputs: tenant_id_input (optional). Returns: List of notifications for the tenant.
fetch_storage_systems
Get all storage systems added to the tenant. Inputs: tenant_id_input (optional). Returns: List of storage systems.
fetch_system_notifications
Get notifications of a specific system. Inputs: system_id (required), tenant_id_input (optional). Returns: List of system notifications.
fetch_system_details
Get details for a given system. Inputs: system_id (required), tenant_id_input (optional). Returns: System details.
fetch_system_io_rate
Get IO rate metrics for a system. Inputs: system_id, tenant_id_input (optional), metric_types (optional), duration (optional). Returns: IO rate metrics such as volume_overall_read_io_rate, volume_overall_write_io_rate, volume_overall_total_io_rate.
fetch_system_data_rate
Get data rate metrics for a system. Inputs: system_id, tenant_id_input (optional), metric_types (optional), duration (optional). Returns: Data rate metrics such as volume_read_data_rate, volume_write_data_rate, volume_total_data_rate.
fetch_system_response_time
Get response time metrics for a system. Inputs: system_id, tenant_id_input (optional), metric_types (optional), duration (optional). Returns: Response time metrics such as volume_read_response_time, volume_write_response_time, volume_total_response_time.
fetch_system_transfer_size
Get transfer size metrics for a system. Inputs: system_id, tenant_id_input (optional), metric_types (optional), duration (optional). Returns: Transfer size metrics such as volume_read_transfer_size, volume_write_transfer_size, volume_total_transfer_size.
fetch_system_cpu_utilization
Get CPU utilization for a system. Inputs: system_id, tenant_id_input (optional), metric_types (optional), duration (optional). Returns: CPU utilization metric.
fetch_system_capacity
Get capacity metrics for a system. Inputs: system_id, tenant_id_input (optional), metric_types (optional), duration (optional). Returns: Used and available capacity.
fetch_system_components
Get components for a system. Inputs: system_id, comp_type, tenant_id_input (optional). Returns: Requested components such as volumes, pools, enclosures, drives, fc-ports, ip-ports, host-connections, io-groups, managed-disks.
fetch_system_alerts
Get alerts for a system. Inputs: system_id, tenant_id_input (optional). Returns: List of system alerts.