Skip to main content
Glama

What Georgia Commons holds

get_coverage
Read-onlyIdempotent

What Georgia Commons holds, computed now: each source's documents by type and issuing body, date ranges, how much is searchable by meaning, the last update, the qualifications, and what is not held yet (local governments, school boards, the Court of Appeals). Filters narrow it.

Input Schema

NameRequiredDescriptionDefault
filtersNoOptional: narrow to document types, bodies, kinds of body, levels.

Output Schema

NameRequiredDescriptionDefault
entriesYes
not_heldNo
not_held_yetNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed3 schema fields changed
    • addedInput schema / $defs
      Added value: +{
      +  "Filters": {
      +    "additionalProperties": false,
      +    "description": "Hard filters. Every field is optional; values come from the vocabularies.",
      +    "properties": {
      +      "action": {
      +        "anyOf": [
      +          {
      +            "items": {
      +              "type": "string"
      +            },
      +            "type": "array"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null,
      +        "description": "Stage of an action inside a meeting: reading, motion, vote, adopted, failed, public_comment, ...",
      +        "title": "Action"
      +      },
      +      "body": {
      +        "anyOf": [
      +          {
      +            "items": {
      +              "type": "string"
      +            },
      +            "type": "array"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null,
      +        "description": "Issuing bodies by id, e.g. ga-supreme-court, ga-senate, ga-house-rules (describe_site lists them).",
      +        "title": "Body"
      +      },
      +      "body_type": {
      +        "anyOf": [
      +          {
      +            "items": {
      +              "type": "string"
      +            },
      +            "type": "array"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null,
      +        "description": "Kinds of body: legislative_chamber, legislative_committee, court, board_of_education, governing_body, ...",
      +        "title": "Body Type"
      +      },
      +      "branch": {
      +        "anyOf": [
      +          {
      +            "items": {
      +              "type": "string"
      +            },
      +            "type": "array"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null,
      +        "description": "Branches: legislative, executive, judicial.",
      +        "title": "Branch"
      +      },
      +      "date_field": {
      +        "anyOf": [
      +          {
      +            "enum": [
      +              "date_primary",
      +              "date_filed",
      +              "date_met",
      +              "date_adopted",
      +              "date_effective"
      +            ],
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null,
      +        "description": "Which date the range applies to; defaults to each type's own (filing date for opinions, meeting date for meetings).",
      +        "title": "Date Field"
      +      },
      +      "date_from": {
      +        "anyOf": [
      +          {
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null,
      +        "description": "Earliest date: YYYY, YYYY-MM, or YYYY-MM-DD.",
      +        "title": "Date From"
      +      },
      +      "date_to": {
      +        "anyOf": [
      +          {
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null,
      +        "description": "Latest date: YYYY, YYYY-MM, or YYYY-MM-DD.",
      +        "title": "Date To"
      +      },
      +      "doc_type": {
      +        "anyOf": [
      +          {
      +            "items": {
      +              "type": "string"
      +            },
      +            "type": "array"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null,
      +        "description": "Document types, e.g. bill, opinion, code_section, constitution_provision, meeting_transcript, amendment.",
      +        "title": "Doc Type"
      +      },
      +      "include_overlapping": {
      +        "default": true,
      +        "description": "With place: also bodies whose area overlaps it (Fulton and DeKalb for Atlanta).",
      +        "title": "Include Overlapping",
      +        "type": "boolean"
      +      },
      +      "level": {
      +        "anyOf": [
      +          {
      +            "items": {
      +              "type": "string"
      +            },
      +            "type": "array"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null,
      +        "description": "Levels of government: federal, state, county, municipal, consolidated, school_district, regional.",
      +        "title": "Level"
      +      },
      +      "place": {
      +        "anyOf": [
      +          {
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null,
      +        "description": "A Georgia place in words or as an id (Atlanta, Cobb County, city:savannah). Matches the body's jurisdiction.",
      +        "title": "Place"
      +      },
      +      "place_scope": {
      +        "default": "either",
      +        "description": "With place: documents issued for that place (jurisdiction), documents that mention it (mentions), or either (default).",
      +        "enum": [
      +          "either",
      +          "jurisdiction",
      +          "mentions"
      +        ],
      +        "title": "Place Scope",
      +        "type": "string"
      +      },
      +      "session": {
      +        "anyOf": [
      +          {
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null,
      +        "description": "Legislative session slug, e.g. 2025-2026 or 2026-special.",
      +        "title": "Session"
      +      },
      +      "status": {
      +        "anyOf": [
      +          {
      +            "items": {
      +              "type": "string"
      +            },
      +            "type": "array"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null,
      +        "description": "Status classes: pending, passed_one_chamber, passed_both, enacted, vetoed, failed, in_force, repealed, decided, held.",
      +        "title": "Status"
      +      }
      +    },
      +    "title": "Filters",
      +    "type": "object"
      +  }
      +}
    • addedInput schema / properties / filters
      Added value: +{
      +  "anyOf": [
      +    {
      +      "$ref": "#/$defs/Filters"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Optional: narrow to document types, bodies, kinds of body, levels."
      +}
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "properties": {
      +    "entries": {
      +      "items": {
      +        "additionalProperties": true,
      +        "type": "object"
      +      },
      +      "title": "Entries",
      +      "type": "array"
      +    },
      +    "not_held": {
      +      "items": {
      +        "type": "string"
      +      },
      +      "title": "Not Held",
      +      "type": "array"
      +    },
      +    "not_held_yet": {
      +      "items": {
      +        "type": "string"
      +      },
      +      "title": "Not Held Yet",
      +      "type": "array"
      +    }
      +  },
      +  "required": [
      +    "entries"
      +  ],
      +  "title": "CoverageOutput",
      +  "type": "object"
      +}
  2. First observed

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, non-destructive, closed-world behavior, so the safety profile is covered. The description adds genuine context beyond them: the numbers are 'computed now' (freshly calculated, not cached), and the result deliberately includes qualifications and explicitly absent coverage (local governments, school boards, Court of Appeals), which tells the agent to expect caveats rather than a bare count.

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?

Two sentences, front-loaded with the resource and its live nature, then the narrowing note. The middle enumeration is long but every clause corresponds to a distinct part of the report, so it earns its place; it could be tightened slightly by grouping the related date/coverage items.

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?

With an output schema handling return format and annotations handling safety, the description covers what an agent needs to decide and call correctly: what is measured, that it is current, that gaps and qualifications are included, and that filters can narrow scope. Nothing material is missing for a single-optional-parameter read tool.

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

Parameters3/5

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

Schema coverage is 100% and the single filters object is thoroughly documented with vocabularies, defaults, and enum meanings (place_scope, include_overlapping, date_field). The description only says 'Filters narrow it,' adding no syntax or semantics beyond the schema, so the baseline 3 applies.

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 names a concrete artifact — a live coverage report of each source's documents by type, issuing body, date ranges, semantic-searchability, last update, and known gaps. It is clearly not fetch/search, but it never explicitly names or contrasts with the siblings (describe_site, search, fetch, verify_quote), so differentiation is by inference rather than statement.

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?

Usage is only implied: 'Filters narrow it' and the mention of what is not held suggest a pre-search orientation step, but there is no explicit statement of when to call this versus describe_site or search. The strongest routing hint (describe_site lists body ids) lives in the schema, not the description.

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