Skip to main content
Glama

Get operational health

get_health
Read-only

Reports read-only vault health, covering index freshness, integrity, checksums, durability, and invariant evidence to verify a Markdown vault without exposing content.

Instructions

Return truthful read-only health for index freshness, vault integrity, point-in-time checksum, durability capability, and invariant evidence. Use detail='full' to include bounded integrity findings. In full mode, limit <= 0 selects the server ceiling and positive limits are capped by settings.max_result_count. Fingerprints are opaque baseline identifiers derived from raw keys, not hashes of sanitized published keys. Only top-level violation rel_path and mixed_eol_notes entries preserve addressable paths; details such as candidate_paths are sanitized display metadata. Findings do not include line numbers.

Input Schema

NameRequiredDescriptionDefault
limitNo
detailNosummary

Output Schema

NameRequiredDescriptionDefault
indexYes
statusYes
guidanceNo
recoveryYes
scrubberYes
integrityYes
read_onlyYes
durabilityYes
invariantsYes
server_versionYes
vault_checksumYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changedv0.1.17
    • addedOutput schema / description
      Added value: +"Successful ``get_health`` payload."
    • changedOutput schema / required
      Previous value: -[
      -  "status",
      -  "server_version",
      -  "read_only",
      -  "index",
      -  "integrity",
      -  "vault_checksum",
      -  "durability",
      -  "recovery",
      -  "scrubber",
      -  "invariants",
      -  "guidance"
      -]New value: +[
      +  "status",
      +  "server_version",
      +  "read_only",
      +  "index",
      +  "integrity",
      +  "vault_checksum",
      +  "durability",
      +  "recovery",
      +  "scrubber",
      +  "invariants"
      +]
  2. Changed2 schema fields changedv0.1.15
    • addedOutput schema / $defs / HealthRecoveryOutput / properties / unexpected_entries
      Added value: +{
      +  "items": {
      +    "type": "string"
      +  },
      +  "title": "Unexpected Entries",
      +  "type": "array"
      +}
    • changedOutput schema / $defs / HealthRecoveryOutput / required
      Previous value: -[
      -  "required",
      -  "blocked_operations",
      -  "operations"
      -]New value: +[
      +  "required",
      +  "blocked_operations",
      +  "unexpected_entries",
      +  "operations"
      +]
  3. Changed2 schema fields changedv0.1.11
    • addedOutput schema / properties / guidance
      Added value: +{
      +  "items": {
      +    "additionalProperties": {
      +      "type": "string"
      +    },
      +    "type": "object"
      +  },
      +  "title": "Guidance",
      +  "type": "array"
      +}
    • changedOutput schema / required
      Previous value: -[
      -  "status",
      -  "server_version",
      -  "read_only",
      -  "index",
      -  "integrity",
      -  "vault_checksum",
      -  "durability",
      -  "recovery",
      -  "scrubber",
      -  "invariants"
      -]New value: +[
      +  "status",
      +  "server_version",
      +  "read_only",
      +  "index",
      +  "integrity",
      +  "vault_checksum",
      +  "durability",
      +  "recovery",
      +  "scrubber",
      +  "invariants",
      +  "guidance"
      +]
  4. Changed14 schema fields changedv0.1.3
    • addedInput schema / properties / detail
      Added value: +{
      +  "default": "summary",
      +  "enum": [
      +    "summary",
      +    "full"
      +  ],
      +  "title": "Detail",
      +  "type": "string"
      +}
    • addedInput schema / properties / limit
      Added value: +{
      +  "default": 0,
      +  "title": "Limit",
      +  "type": "integer"
      +}
    • addedOutput schema / $defs / HealthFindingsOutput
      Added value: +{
      +  "description": "Bounded detailed reliability findings.",
      +  "properties": {
      +    "flagged_paths": {
      +      "$ref": "#/$defs/HealthFlaggedPathsOutput"
      +    },
      +    "limit_applied": {
      +      "title": "Limit Applied",
      +      "type": "integer"
      +    },
      +    "returned": {
      +      "title": "Returned",
      +      "type": "integer"
      +    },
      +    "total": {
      +      "title": "Total",
      +      "type": "integer"
      +    },
      +    "truncated": {
      +      "title": "Truncated",
      +      "type": "boolean"
      +    },
      +    "violations": {
      +      "items": {
      +        "$ref": "#/$defs/HealthViolationOutput"
      +      },
      +      "title": "Violations",
      +      "type": "array"
      +    }
      +  },
      +  "required": [
      +    "violations",
      +    "flagged_paths",
      +    "total",
      +    "returned",
      +    "limit_applied",
      +    "truncated"
      +  ],
      +  "title": "HealthFindingsOutput",
      +  "type": "object"
      +}
    • addedOutput schema / $defs / HealthFlaggedPathsOutput
      Added value: +{
      +  "description": "Raw mixed-EOL paths and sanitized read, decode, or frontmatter error descriptions.",
      +  "properties": {
      +    "frontmatter_parse_errors": {
      +      "items": {
      +        "type": "string"
      +      },
      +      "title": "Frontmatter Parse Errors",
      +      "type": "array"
      +    },
      +    "mixed_eol_notes": {
      +      "items": {
      +        "type": "string"
      +      },
      +      "title": "Mixed Eol Notes",
      +      "type": "array"
      +    }
      +  },
      +  "required": [
      +    "mixed_eol_notes",
      +    "frontmatter_parse_errors"
      +  ],
      +  "title": "HealthFlaggedPathsOutput",
      +  "type": "object"
      +}
    • changedOutput schema / $defs / HealthIntegrityOutput / description
      Previous value: -"Vault integrity counters included in operational health."New value: +"Vault integrity counters and optional detailed findings."
    • addedOutput schema / $defs / HealthIntegrityOutput / properties / broken_wikilinks_misdirected
      Added value: +{
      +  "title": "Broken Wikilinks Misdirected",
      +  "type": "integer"
      +}
    • addedOutput schema / $defs / HealthIntegrityOutput / properties / detail
      Added value: +{
      +  "enum": [
      +    "summary",
      +    "full"
      +  ],
      +  "title": "Detail",
      +  "type": "string"
      +}
    • addedOutput schema / $defs / HealthIntegrityOutput / properties / findings
      Added value: +{
      +  "$ref": "#/$defs/HealthFindingsOutput"
      +}
    • changedOutput schema / $defs / HealthIntegrityOutput / required
      Previous value: -[
      -  "notes_count",
      -  "id_mismatches",
      -  "broken_wikilinks",
      -  "mixed_eol_notes",
      -  "supersedes_cycles",
      -  "frontmatter_parse_errors"
      -]New value: +[
      +  "notes_count",
      +  "id_mismatches",
      +  "broken_wikilinks",
      +  "broken_wikilinks_misdirected",
      +  "mixed_eol_notes",
      +  "supersedes_cycles",
      +  "frontmatter_parse_errors",
      +  "detail"
      +]
    • addedOutput schema / $defs / HealthRecoveryOperationOutput
      Added value: +{
      +  "description": "Content-free evidence for one operation that requires explicit repair.",
      +  "properties": {
      +    "disk_hash": {
      +      "anyOf": [
      +        {
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "title": "Disk Hash"
      +    },
      +    "expected_after_hash": {
      +      "title": "Expected After Hash",
      +      "type": "string"
      +    },
      +    "expected_before_hash": {
      +      "anyOf": [
      +        {
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "title": "Expected Before Hash"
      +    },
      +    "operation_id": {
      +      "title": "Operation Id",
      +      "type": "string"
      +    },
      +    "reason": {
      +      "title": "Reason",
      +      "type": "string"
      +    },
      +    "rel_path": {
      +      "title": "Rel Path",
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "operation_id",
      +    "rel_path",
      +    "reason",
      +    "expected_before_hash",
      +    "expected_after_hash",
      +    "disk_hash"
      +  ],
      +  "title": "HealthRecoveryOperationOutput",
      +  "type": "object"
      +}
    • addedOutput schema / $defs / HealthRecoveryOutput
      Added value: +{
      +  "description": "Bounded recovery evidence included in operational health.",
      +  "properties": {
      +    "blocked_operations": {
      +      "title": "Blocked Operations",
      +      "type": "integer"
      +    },
      +    "operations": {
      +      "items": {
      +        "$ref": "#/$defs/HealthRecoveryOperationOutput"
      +      },
      +      "title": "Operations",
      +      "type": "array"
      +    },
      +    "required": {
      +      "title": "Required",
      +      "type": "boolean"
      +    }
      +  },
      +  "required": [
      +    "required",
      +    "blocked_operations",
      +    "operations"
      +  ],
      +  "title": "HealthRecoveryOutput",
      +  "type": "object"
      +}
    • addedOutput schema / $defs / HealthViolationOutput
      Added value: +{
      +  "description": "One finding with an addressable path and an opaque baseline fingerprint.",
      +  "properties": {
      +    "classification": {
      +      "title": "Classification",
      +      "type": "string"
      +    },
      +    "details": {
      +      "additionalProperties": {
      +        "type": "string"
      +      },
      +      "title": "Details",
      +      "type": "object"
      +    },
      +    "fingerprint": {
      +      "title": "Fingerprint",
      +      "type": "string"
      +    },
      +    "key": {
      +      "title": "Key",
      +      "type": "string"
      +    },
      +    "kind": {
      +      "title": "Kind",
      +      "type": "string"
      +    },
      +    "rel_path": {
      +      "title": "Rel Path",
      +      "type": "string"
      +    },
      +    "target": {
      +      "title": "Target",
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "kind",
      +    "key",
      +    "fingerprint",
      +    "rel_path"
      +  ],
      +  "title": "HealthViolationOutput",
      +  "type": "object"
      +}
    • addedOutput schema / properties / recovery
      Added value: +{
      +  "$ref": "#/$defs/HealthRecoveryOutput"
      +}
    • changedOutput schema / required
      Previous value: -[
      -  "status",
      -  "server_version",
      -  "read_only",
      -  "index",
      -  "integrity",
      -  "vault_checksum",
      -  "durability",
      -  "scrubber",
      -  "invariants"
      -]New value: +[
      +  "status",
      +  "server_version",
      +  "read_only",
      +  "index",
      +  "integrity",
      +  "vault_checksum",
      +  "durability",
      +  "recovery",
      +  "scrubber",
      +  "invariants"
      +]
  5. First observedv0.1.0

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/destructive/openWorld behavior, but the description adds substantial non-obvious context: limit capping against settings.max_result_count with <=0 meaning the server ceiling, fingerprint opacity, which path fields remain addressable, and that findings omit line numbers. This goes well beyond the annotations without contradicting them.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Five dense sentences with the purpose front-loaded and no filler, but the fingerprint/path-sanitization sentences are quite niche for a selection-time reader and could be trimmed or moved to docs.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, return values need not be re-explained, and the description covers parameters, mode behavior, and data sanitization nuances. It is complete enough for correct invocation, with only minor gaps around summary-mode semantics.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description must carry the load and largely does: it defines detail='full' and explains that in full mode limit<=0 selects the server ceiling while positive values are capped. It does not clarify limit's behavior in summary mode, a small remaining gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description gives a specific verb ('Return') and expands 'health' into five concrete dimensions (index freshness, vault integrity, checksum, durability, invariants), so the agent knows exactly what the tool surfaces. It does not explicitly distinguish itself from siblings like audit_query or contradiction_scan, but the enumerated scope is unusually precise.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It states 'Use detail="full" to include bounded integrity findings,' which is real conditional guidance for one mode, but it offers no when-to-use vs. alternatives framing against siblings such as audit_query. Usage is implied rather than fully specified.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.