io.github.AIops-tools/ceph-aiops
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| CEPH_AIOPS_HOME | No | Override the default home directory for audit log and secrets (~/.ceph-aiops) | |
| CEPH_AUDIT_RATIONALE | No | Rationale for operations that exceed the budget or require justification | |
| CEPH_AUDIT_APPROVED_BY | No | Named approver for high-risk operations (e.g., osd_purge, pool_delete) | |
| CEPH_AIOPS_MASTER_PASSWORD | Yes | Master password to unlock encrypted credentials stored in ~/.ceph-aiops/secrets.enc |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| mon_statusA | [READ] Monitor quorum: mons in/out of quorum and the monmap epoch. Call this when health flags MON_DOWN or a clock-skew warn — it shows which monitors are actually holding quorum. Args: target: Ceph target name from config; omit for the default. |
| mgr_statusA | [READ] Active mgr, its standbys, and the enabled mgr modules. Args: target: Ceph target name from config; omit for the default. |
| slow_opsA | [READ] Blocked/slow requests per OSD (decodes the SLOW_OPS health check). Use this to find the OSD sitting on blocked ops when clients report stalls. Args: target: Ceph target name from config; omit for the default. |
| capacity_forecastA | [READ] Capacity usage + a deterministic days-to-nearfull projection. Pass an observed daily growth in bytes to get daysToNearfull; without it the forecast is "insufficient-data". Nearfull is 85% of total. No clock is read — the projection is pure arithmetic. Args: daily_growth_bytes: Observed daily growth in bytes; omit for a usage-only view. target: Ceph target name from config; omit for the default. |
| throttle_recoveryA | [WRITE][risk=medium] Tune osd_max_backfills / osd_recovery_max_active. The #1 tuning ask: turn recovery/backfill down so a recovery storm stops starving client IO (or back up once it's calm). Reversible — records an undo restoring the prior config values. Args: max_backfills: New osd_max_backfills value; omit to leave it unchanged. recovery_max_active: New osd_recovery_max_active value; omit to leave unchanged. target: Ceph target name from config; omit for the default. |
| cephfs_statusA | [READ] Per-filesystem MDS ranks with the behind-on-trimming backpressure signal. Surfaces each MDS rank's state, the client/standby counts, and the notorious "MDS behind on trimming" flag that quietly precedes metadata stalls. Args: target: Ceph target name from config; omit for the default. |
| rgw_statusA | [READ] RGW daemons plus a large-omap (unsharded bucket index) scan. Flags buckets whose index is unsharded/oversized — the LARGE_OMAP signal and the top RGW performance foot-gun. Partial-safe if the bucket call fails. Args: target: Ceph target name from config; omit for the default. |
| cluster_healthA | [READ] HEALTH status with a plain-language cause + suggested action per active check. Call this first on any "the cluster is unhealthy" question — it decodes raw HEALTH_WARN/ERR check codes (PG_DEGRADED, OSD_NEARFULL, …) into what's wrong and what to do next. Args: target: Ceph target name from config; omit for the default. |
| cluster_statusA | [READ] Compact ceph -s summary: mons, OSDs up/in, PGs, usage, objects. Args: target: Ceph target name from config; omit for the default. |
| osd_treeA | [READ] All OSDs: up/in state, weight, host, device class. Args: target: Ceph target name from config; omit for the default. |
| osd_dfA | [READ] Per-OSD utilisation (most-full first) with near/backfill-full flags. Args: target: Ceph target name from config; omit for the default. |
| osd_perfB | [READ] Per-OSD commit/apply latency (slowest first) — find the slow disk. Args: target: Ceph target name from config; omit for the default. |
| cluster_flag_setA | [WRITE][risk=low] Set/unset a cluster flag (noout/nobackfill/norecover/noscrub…). Heavily used before maintenance (e.g. set noout while rebooting a host). Reversible — records an undo that toggles the flag back. Args: flag: Flag name, e.g. "noout", "noscrub", "nobackfill", "norecover". enable: True to set the flag, False to clear it. target: Ceph target name from config; omit for the default. |
| osd_reweightA | [WRITE][risk=medium] Set an OSD's reweight (0.0 drains it). Reversible → prior weight. Args: osd_id: Numeric OSD id (from osd_tree). weight: New reweight 0.0–1.0 (0.0 = full drain). target: Ceph target name from config; omit for the default. |
| osd_mark_inA | [WRITE][risk=medium] Mark an OSD 'in' (return a drained/repaired OSD to service). Args: osd_id: Numeric OSD id (from osd_tree). target: Ceph target name from config; omit for the default. |
| osd_mark_outA | [WRITE][risk=high] Mark an OSD 'out' — drains its data (recovery storm / min_size risk). Destructive to redundancy — pass dry_run=True to preview. Requires an approver (set CEPH_AUDIT_APPROVED_BY) under the graduated-autonomy policy. Args: osd_id: Numeric OSD id (from osd_tree). dry_run: If True, preview without marking out. target: Ceph target name from config; omit for the default. |
| osd_purgeA | [WRITE][risk=high] Purge an OSD (destroy + crush rm + auth del). Irreversible. Pass dry_run=True to preview. Requires an approver (CEPH_AUDIT_APPROVED_BY). Drain first (osd_reweight 0 → mark out → wait active+clean) before purging. Args: osd_id: Numeric OSD id (from osd_tree). dry_run: If True, preview without purging. target: Ceph target name from config; omit for the default. |
| pg_summaryA | [READ] PG state histogram + every PG that is not active+clean. Call this to answer "are my PGs healthy?" — it counts PGs by state and lists the ones needing attention. Args: target: Ceph target name from config; omit for the default. |
| pg_dump_stuckA | [READ] Stuck PGs (inactive/unclean/stale/undersized/degraded) with implicated OSDs. Use this when a PG is not recovering — it surfaces the OSD ids to investigate. Args: target: Ceph target name from config; omit for the default. |
| scrub_statusA | [READ] PGs overdue for shallow / deep scrub (decodes PG_NOT(_DEEP)_SCRUBBED). Args: target: Ceph target name from config; omit for the default. |
| trigger_scrubA | [WRITE][risk=low] Schedule a shallow scrub on a PG (clears a PG_NOT_SCRUBBED warn). Args: pgid: Placement group id, e.g. "2.1a" (from pg_summary / scrub_status). target: Ceph target name from config; omit for the default. |
| trigger_deep_scrubA | [WRITE][risk=low] Schedule a deep (data-integrity) scrub on a PG. Args: pgid: Placement group id, e.g. "2.1a" (from pg_summary / scrub_status). target: Ceph target name from config; omit for the default. |
| pool_lsA | [READ] All pools: size/min_size, pg_num, autoscale mode, application, quota. Args: target: Ceph target name from config; omit for the default. |
| pool_dfA | [READ] Per-pool usage: used/avail bytes, percent, objects, usable capacity. Args: target: Ceph target name from config; omit for the default. |
| set_pool_quotaA | [WRITE][risk=medium] Set a pool's byte/object quota. Reversible → prior quota. Args: pool_name: Pool name (from pool_ls). max_bytes: New byte quota (0 clears it); omit to leave unchanged. max_objects: New object quota (0 clears it); omit to leave unchanged. target: Ceph target name from config; omit for the default. |
| set_pool_pg_numA | [WRITE][risk=medium] Set a pool's pg_num. Reversible → prior pg_num. Args: pool_name: Pool name (from pool_ls). pg_num: New placement-group count. target: Ceph target name from config; omit for the default. |
| set_pool_autoscaleA | [WRITE][risk=medium] Set a pool's PG autoscale mode (on/off/warn). Reversible → prior. Args: pool_name: Pool name (from pool_ls). mode: Autoscale mode: "on", "off", or "warn". target: Ceph target name from config; omit for the default. |
| pool_createA | [WRITE][risk=medium] Create a replicated pool. Args: pool_name: Name for the new pool. pg_num: Initial placement-group count (default 32). size: Replica count (default 3). application: Pool application tag: "rbd", "cephfs", or "rgw" (default "rbd"). target: Ceph target name from config; omit for the default. |
| set_pool_sizeA | [WRITE][risk=high] Set a pool's replica size — forces mass data movement on a live pool. Pass dry_run=True to preview. Requires an approver (set CEPH_AUDIT_APPROVED_BY) under the graduated-autonomy policy. Reversible → prior size. Args: pool_name: Pool name (from pool_ls). size: New replica count. dry_run: If True, preview without changing the size. target: Ceph target name from config; omit for the default. |
| pool_deleteA | [WRITE][risk=high] Delete a pool — destroys all of its data. Irreversible. Pass dry_run=True to preview. Requires an approver (CEPH_AUDIT_APPROVED_BY). The classic footgun: there is no undo once the data is gone. Args: pool_name: Pool name (from pool_ls). dry_run: If True, preview without deleting. target: Ceph target name from config; omit for the default. |
| rbd_lsA | [READ] RBD images (optionally one pool): size, features, snapshot count. Args: pool: Restrict to a single pool name; omit for all pools. target: Ceph target name from config; omit for the default. |
| rbd_image_createA | [WRITE][risk=medium] Create a new RBD image in a pool. Args: pool_name: Pool the image lives in (from a pool listing). name: New image name. size_bytes: Image size in bytes. target: Ceph target name from config; omit for the default. |
| rbd_snapshot_createB | [WRITE][risk=low] Snapshot an RBD image. Reversible → delete the snapshot. Args: pool_name: Pool the image lives in. image_name: Image to snapshot (from rbd_ls). snap_name: Name for the new snapshot. target: Ceph target name from config; omit for the default. |
| rbd_image_deleteA | [WRITE][risk=high] Delete an RBD image and ALL its data. Irreversible. Pass dry_run=True to preview. Requires an approver (CEPH_AUDIT_APPROVED_BY). Args: pool_name: Pool the image lives in. image_name: Image to delete (from rbd_ls). dry_run: If True, preview without deleting. target: Ceph target name from config; omit for the default. |
| rbd_snapshot_deleteA | [WRITE][risk=high] Delete an RBD image snapshot. Irreversible. Pass dry_run=True to preview. Requires an approver (CEPH_AUDIT_APPROVED_BY). Args: pool_name: Pool the image lives in. image_name: Image the snapshot belongs to. snap_name: Snapshot to delete. dry_run: If True, preview without deleting. target: Ceph target name from config; omit for the default. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- 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/AIops-tools/Ceph-AIops'
If you have feedback or need assistance with the MCP directory API, please join our Discord server