Skip to main content
Glama

Search Georgia's public documents

search
Read-onlyIdempotent

Search every collection at once: Georgia General Assembly bills (every version) and amendments, Supreme Court of Georgia opinions, the Official Code of Georgia Annotated and the Georgia and U.S. constitutions, and machine transcripts of House and Senate meetings. Plain-language questions work: results are ranked by meaning as well as by words. Returns documents with their best passages (each with a citation version_id#start-end and a deep link), facet counts to narrow by, the interpretation used (identifiers found, places, bodies), a confidence band, and coverage notes that say when the records asked about are not held. Empty query with filters browses. mode: all lists every match found, sorted by date, a page at a time with cursor and a total of what was found.

Input Schema

NameRequiredDescriptionDefault
modeNobest: ranked and cut. all: every match found, by date, paged, with a total.best
sortNoResult order.relevance
limitNoResults per page: 1 to 50 (default 10 documents; 25 in mode all).
queryNoA question or keywords, in plain language. Empty with filters: browse.
cursorNoThe next_cursor of a previous call, for the next page.
parentNoOnly documents inside this hierarchy node (code:t16, code:t16/c11, ga-const:art-i).
filtersNoOptional hard filters (see describe_site for values).
versionsNocurrent (default) or all versions (how a bill changed).current
linked_toNoOnly documents linked to this document id (a bill's meetings, a section's amending bills).
relationsNoWith linked_to: relation types (discusses, amends, amendment_to, cites, ...).

Output Schema

NameRequiredDescriptionDefault
queryYes
totalNo
facetsNo
resultsYes
confidenceNomedium
total_kindNofound
next_cursorNo
coverage_notesNo
interpretationNo
documents_foundNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed29 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"
      +  }
      +}
    • removedInput schema / properties / collection
      Removed value: -{
      -  "anyOf": [
      -    {
      -      "enum": [
      -        "code",
      -        "bills",
      -        "opinions",
      -        "meetings"
      -      ],
      -      "type": "string"
      -    },
      -    {
      -      "type": "null"
      -    }
      -  ],
      -  "default": null,
      -  "description": "Search one collection only: code (the Georgia Code and the two constitutions), bills, opinions, or meetings. Omit to search all four.",
      -  "title": "Collection"
      -}
    • addedInput schema / properties / cursor
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "The next_cursor of a previous call, for the next page.",
      +  "title": "Cursor"
      +}
    • addedInput schema / properties / filters
      Added value: +{
      +  "anyOf": [
      +    {
      +      "$ref": "#/$defs/Filters"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Optional hard filters (see describe_site for values)."
      +}
    • addedInput schema / properties / limit
      Added value: +{
      +  "anyOf": [
      +    {
      +      "maximum": 50,
      +      "minimum": 1,
      +      "type": "integer"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Results per page: 1 to 50 (default 10 documents; 25 in mode all).",
      +  "title": "Limit"
      +}
    • addedInput schema / properties / linked_to
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Only documents linked to this document id (a bill's meetings, a section's amending bills).",
      +  "title": "Linked To"
      +}
    • addedInput schema / properties / mode
      Added value: +{
      +  "default": "best",
      +  "description": "best: ranked and cut. all: every match found, by date, paged, with a total.",
      +  "enum": [
      +    "best",
      +    "all"
      +  ],
      +  "title": "Mode",
      +  "type": "string"
      +}
    • addedInput schema / properties / parent
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Only documents inside this hierarchy node (code:t16, code:t16/c11, ga-const:art-i).",
      +  "title": "Parent"
      +}
    • addedInput schema / properties / query / default
      Added value: +""
    • changedInput schema / properties / query / description
      Previous value: -"Words, a citation (44-7-34), a bill number (HB 136), or a docket (S23A0421). Search matches the words of the document."New value: +"A question or keywords, in plain language. Empty with filters: browse."
    • addedInput schema / properties / relations
      Added value: +{
      +  "anyOf": [
      +    {
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "With linked_to: relation types (discusses, amends, amendment_to, cites, ...).",
      +  "title": "Relations"
      +}
    • addedInput schema / properties / sort
      Added value: +{
      +  "default": "relevance",
      +  "description": "Result order.",
      +  "enum": [
      +    "relevance",
      +    "newest",
      +    "oldest",
      +    "id"
      +  ],
      +  "title": "Sort",
      +  "type": "string"
      +}
    • addedInput schema / properties / versions
      Added value: +{
      +  "default": "current",
      +  "description": "current (default) or all versions (how a bill changed).",
      +  "enum": [
      +    "current",
      +    "all"
      +  ],
      +  "title": "Versions",
      +  "type": "string"
      +}
    • removedInput schema / required
      Removed value: -[
      -  "query"
      -]
    • addedOutput schema / $defs / Passage
      Added value: +{
      +  "properties": {
      +    "char_end": {
      +      "anyOf": [
      +        {
      +          "type": "integer"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null,
      +      "title": "Char End"
      +    },
      +    "char_start": {
      +      "anyOf": [
      +        {
      +          "type": "integer"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null,
      +      "title": "Char Start"
      +    },
      +    "cite": {
      +      "anyOf": [
      +        {
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null,
      +      "title": "Cite"
      +    },
      +    "link": {
      +      "anyOf": [
      +        {
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null,
      +      "title": "Link"
      +    },
      +    "locator": {
      +      "anyOf": [
      +        {
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null,
      +      "title": "Locator"
      +    },
      +    "role": {
      +      "default": "evidence",
      +      "title": "Role",
      +      "type": "string"
      +    },
      +    "stage": {
      +      "anyOf": [
      +        {
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null,
      +      "title": "Stage"
      +    },
      +    "text": {
      +      "title": "Text",
      +      "type": "string"
      +    },
      +    "version_id": {
      +      "title": "Version Id",
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "text",
      +    "version_id"
      +  ],
      +  "title": "Passage",
      +  "type": "object"
      +}
    • addedOutput schema / $defs / Result
      Added value: +{
      +  "properties": {
      +    "body": {
      +      "anyOf": [
      +        {
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null,
      +      "title": "Body"
      +    },
      +    "cite_as": {
      +      "anyOf": [
      +        {
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null,
      +      "title": "Cite As"
      +    },
      +    "date": {
      +      "anyOf": [
      +        {
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null,
      +      "title": "Date"
      +    },
      +    "date_field": {
      +      "anyOf": [
      +        {
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null,
      +      "title": "Date Field"
      +    },
      +    "doc_type": {
      +      "title": "Doc Type",
      +      "type": "string"
      +    },
      +    "exact": {
      +      "default": false,
      +      "title": "Exact",
      +      "type": "boolean"
      +    },
      +    "id": {
      +      "title": "Id",
      +      "type": "string"
      +    },
      +    "level": {
      +      "anyOf": [
      +        {
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null,
      +      "title": "Level"
      +    },
      +    "occurrences": {
      +      "default": 0,
      +      "title": "Occurrences",
      +      "type": "integer"
      +    },
      +    "passages": {
      +      "items": {
      +        "$ref": "#/$defs/Passage"
      +      },
      +      "title": "Passages",
      +      "type": "array"
      +    },
      +    "score": {
      +      "anyOf": [
      +        {
      +          "type": "number"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null,
      +      "title": "Score"
      +    },
      +    "status": {
      +      "anyOf": [
      +        {
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null,
      +      "title": "Status"
      +    },
      +    "summary": {
      +      "anyOf": [
      +        {
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null,
      +      "description": "Georgia Commons' AI-written summary: labeled, never source text.",
      +      "title": "Summary"
      +    },
      +    "title": {
      +      "title": "Title",
      +      "type": "string"
      +    },
      +    "url": {
      +      "title": "Url",
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "id",
      +    "title",
      +    "url",
      +    "doc_type"
      +  ],
      +  "title": "Result",
      +  "type": "object"
      +}
    • removedOutput schema / $defs / SearchResult
      Removed value: -{
      -  "properties": {
      -    "id": {
      -      "title": "Id",
      -      "type": "string"
      -    },
      -    "title": {
      -      "title": "Title",
      -      "type": "string"
      -    },
      -    "url": {
      -      "title": "Url",
      -      "type": "string"
      -    }
      -  },
      -  "required": [
      -    "id",
      -    "title",
      -    "url"
      -  ],
      -  "title": "SearchResult",
      -  "type": "object"
      -}
    • addedOutput schema / properties / confidence
      Added value: +{
      +  "default": "medium",
      +  "title": "Confidence",
      +  "type": "string"
      +}
    • addedOutput schema / properties / coverage_notes
      Added value: +{
      +  "items": {
      +    "additionalProperties": true,
      +    "type": "object"
      +  },
      +  "title": "Coverage Notes",
      +  "type": "array"
      +}
    • addedOutput schema / properties / documents_found
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "integer"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "title": "Documents Found"
      +}
    • addedOutput schema / properties / facets
      Added value: +{
      +  "additionalProperties": {
      +    "items": {
      +      "additionalProperties": true,
      +      "type": "object"
      +    },
      +    "type": "array"
      +  },
      +  "title": "Facets",
      +  "type": "object"
      +}
    • addedOutput schema / properties / interpretation
      Added value: +{
      +  "additionalProperties": true,
      +  "title": "Interpretation",
      +  "type": "object"
      +}
    • addedOutput schema / properties / next_cursor
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "title": "Next Cursor"
      +}
    • addedOutput schema / properties / query
      Added value: +{
      +  "title": "Query",
      +  "type": "string"
      +}
    • changedOutput schema / properties / results / items / $ref
      Previous value: -"#/$defs/SearchResult"New value: +"#/$defs/Result"
    • addedOutput schema / properties / total
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "integer"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "title": "Total"
      +}
    • addedOutput schema / properties / total_kind
      Added value: +{
      +  "default": "found",
      +  "title": "Total Kind",
      +  "type": "string"
      +}
    • changedOutput schema / required
      Previous value: -[
      -  "results"
      -]New value: +[
      +  "query",
      +  "results"
      +]
    • changedOutput schema / title
      Previous value: -"SearchResults"New value: +"SearchOutput"
  2. Changed4 schema fields changed
    • changedInput schema / properties / collection / anyOf
      Previous value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "enum": [
      +      "code",
      +      "bills",
      +      "opinions",
      +      "meetings"
      +    ],
      +    "type": "string"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • addedInput schema / properties / collection / description
      Added value: +"Search one collection only: code (the Georgia Code and the two constitutions), bills, opinions, or meetings. Omit to search all four."
    • addedInput schema / properties / query / description
      Added value: +"Words, a citation (44-7-34), a bill number (HB 136), or a docket (S23A0421). Search matches the words of the document."
    • addedInput schema / properties / query / maxLength
      Added value: +2000
  3. First observed

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare readOnly/idempotent/openWorld, so the description rightly spends its budget on richer traits: semantic-plus-lexical ranking, passage-level results with `version_id#start-end` citations and deep links, facet counts, interpretation echo, a confidence band, and coverage notes that disclose when records are not held. That coverage-note disclosure is genuinely behavior-level information an agent cannot infer. It does not cover rate limits or performance characteristics, keeping it below 5.

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?

Front-loaded with the collection scope, then usage, then return shape, then the mode distinction — a sensible order with no wasted preamble. It is dense to the point of being a single run-on chain, and the `mode: all` sentence partly duplicates the schema's `mode` field description.

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 and 100% param coverage, the description only needs to frame scope and behavior, which it does, including the pointer to describe_site for filter vocabularies. The one gap is relationship parameters: `linked_to` and `relations` get no mention in prose, leaving an agent to rely entirely on schema text for the graph-traversal capability.

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 description coverage is 100%, so the schema already documents every parameter including the enum semantics of `mode`, `sort`, `versions`, and the full Filters object. The description adds only the browse-on-empty-query rule and a restatement of `mode: all` paging that the schema's own field description already provides. Baseline 3 applies.

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

Purpose5/5

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

States a specific verb and a precisely enumerated resource set: bills and amendments, Supreme Court opinions, code and constitutions, and House/Senate transcripts. An agent can tell instantly that this is the broad cross-collection retrieval tool, distinct from the single-document siblings fetch and verify_quote.

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

Usage Guidelines4/5

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

Gives concrete usage contexts: plain-language questions are supported, and an empty `query` with filters browses. It also carves out `mode: all` as the exhaustive-listing path. It stops short of stating when NOT to use it or pointing to fetch/verify_quote for known-document retrieval, so no explicit alternative routing.

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