Skip to main content
Glama

Get Health

get_health
Read-onlyIdempotent

Freshness status (ok / warning / stale / no_data / not_covered) per reported domain, per country. Check this before a bulk pull or when a query looks stale — a stale domain means the underlying ingestion pipeline is behind, not that you're querying wrong.

Domains not listed here are withheld, not empty: votes, interventions have data but too little of it for a freshness claim to mean anything, so they are omitted until their ingestion improves. Query their endpoints directly.

not_covered means Dapper has no source for that domain in that country (for example consultations in PE, AR, VE, GT and DO): say the domain is not covered there, not that ingestion is behind. Each status is measured against that country's own publishing rhythm, so a congress that publishes weekly is not stale mid-week.

feeds (bills and schedules only) lists the sources behind a pair -- each chamber or congress -- newest first. A pair is stale when any counted source is stale even if another is current, so read feeds before saying a country's bills are up to date. counted: false sources (seasonal, retired, sporadic) are shown with a note and do not move the pair.

search_corpus is separate from freshness: it says how much of each domain is in the SEMANTIC index for that country. A domain absent from it has zero indexed documents, so q there is a plain title match — use the record listings (date, entity, code filters) instead of concluding a topic is absent. A null search_corpus means the summary was unavailable, not that coverage is zero.

Input Schema

NameRequiredDescriptionDefault

No arguments

Output Schema

NameRequiredDescriptionDefault
countriesYes
generated_atYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • addedOutput schema / properties / countries / items / properties / domains / additionalProperties / properties / feeds
      Added value: +{
      +  "anyOf": [
      +    {
      +      "items": {
      +        "description": "One source (a chamber, a state congress) inside a country x domain pair.\n\nOnly bills and schedules are split (app/db/health.py FEED_DOMAINS). A\nsource with `counted: false` is shown but does not move the pair; `note`\nsays why (seasonal, retired, sporadic, misattributed).",
      +        "properties": {
      +          "age_hours": {
      +            "anyOf": [
      +              {
      +                "type": "number"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "title": "Age Hours"
      +          },
      +          "counted": {
      +            "default": true,
      +            "title": "Counted",
      +            "type": "boolean"
      +          },
      +          "last_updated": {
      +            "anyOf": [
      +              {
      +                "format": "date-time",
      +                "type": "string"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "title": "Last Updated"
      +          },
      +          "name": {
      +            "anyOf": [
      +              {
      +                "type": "string"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "title": "Name"
      +          },
      +          "note": {
      +            "anyOf": [
      +              {
      +                "type": "string"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "title": "Note"
      +          },
      +          "source_id": {
      +            "anyOf": [
      +              {
      +                "type": "integer"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "title": "Source Id"
      +          },
      +          "status": {
      +            "title": "Status",
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "status"
      +        ],
      +        "title": "FeedFreshness",
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "title": "Feeds"
      +}
  2. Changed1 schema field changed
    • addedOutput schema / properties / countries / items / properties / domains / additionalProperties / properties / sla_hours
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "number"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "title": "Sla Hours"
      +}
  3. First observed

TDQS

A4.5/5.0
Behavior5/5

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

Despite annotations already covering read-only/idempotent behavior, the description adds substantial operational context: what stale means versus not_covered, why some domains are withheld, how feeds determine pair-level staleness, and how search_corpus differs from freshness. This rich disclosure goes well beyond structured hints.

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?

The description is front-loaded with the core purpose and usage guidance, then organized into clear paragraphs by concept. It is somewhat long for a no-parameter tool, but nearly every sentence carries useful disambiguation rather than filler.

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

Completeness5/5

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

Given that an output schema exists, the description need not enumerate return fields. It provides the interpretive context needed to understand statuses, withheld domains, feeds, and search_corpus, making the definition complete for correct agent use.

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?

The tool has zero parameters, so there is no parameter semantics to explain. Baseline 4 applies; the description appropriately focuses on output interpretation rather than input usage.

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 clearly states that the tool reports freshness status per domain and country, and it explains key status semantics. However, it does not explicitly distinguish itself from the closely named sibling get_country_health, leaving some ambiguity about which health-oriented tool to choose.

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

Usage Guidelines5/5

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

It gives explicit when-to-use guidance ('before a bulk pull or when a query looks stale') and actionable alternatives for domains not covered ('Query their endpoints directly') and for absent search_corpus entries ('use the record listings'). This is exactly the routing information an agent needs.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources