Everything here reads; nothing reconfigures an array. That makes it a diagnosis surface rather than an administration one — you can ask why response time rose on a system, pull the I/O and data rates over the same window, then list the pools and managed disks behind it in the same conversation. The morning_cup_of_coffee prompt is the shape the author intends: three reads chained and filtered down to what is actually in error.
A read-only client for the IBM Storage Insights External REST APIs. Thirteen tools cover a tenant's alerts and notifications, the systems registered under it, and per-system performance, capacity and component data.
- Tenant-level alerts and notifications across everything registered, and the same two scoped to one system id (fetch_tenant_alerts, fetch_tenant_notifications, fetch_system_alerts, fetch_system_notifications).
- The inventory: which storage systems the tenant is monitoring, and the full detail record for any one of them (fetch_storage_systems, fetch_system_details).
- Throughput and latency over a window you choose, given as 20m, 1h or 1d — read, write and total I/O rate; read, write and total data rate; read, write and total response time; and transfer size (fetch_system_io_rate, fetch_system_data_rate, fetch_system_response_time, fetch_system_transfer_size).
- CPU utilization for a system over the same kind of window (fetch_system_cpu_utilization).
- Capacity as used_capacity and available_capacity rather than a single number (fetch_system_capacity).
- Component inventory by type — volumes, pools, enclosures, drives, fc-ports, ip-ports, host-connections, io-groups and managed-disks (fetch_system_components).
- A morning_cup_of_coffee prompt that runs the system, alert and notification reads in sequence and filters the result down to systems in error status, critical alerts and notifications.
A Storage Insights tenant ID and an External REST API key, generated through user access management, written into the server's .env as DEFAULT_SI_TENANT_ID and DEFAULT_SI_API_KEY. ADDITIONAL_TENANT_API_MAPPING holds further tenant and key pairs if you want one server across several tenants. uv supplies the Python runtime and the server speaks stdio by default; Streamable HTTP is a reconfiguration rather than a flag. Every per-system tool takes a system_id, which fetch_storage_systems is where you get.
