Skip to main content
Glama
AIops-tools

io.github.AIops-tools/ceph-aiops

by AIops-tools

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
CEPH_AIOPS_HOMENoOverride the default home directory for audit log and secrets (~/.ceph-aiops)
CEPH_AUDIT_RATIONALENoRationale for operations that exceed the budget or require justification
CEPH_AUDIT_APPROVED_BYNoNamed approver for high-risk operations (e.g., osd_purge, pool_delete)
CEPH_AIOPS_MASTER_PASSWORDYesMaster password to unlock encrypted credentials stored in ~/.ceph-aiops/secrets.enc

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
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

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

Latest Blog Posts

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