Georgia Commons

Georgia's Code, bills, Supreme Court opinions, and 2026 House and Senate meetings. Independent.

Should I use this

Quality & Safety

A
Description quality
96%
Schema completeness
86%
Naming quality
83%
Poisoning risk
100%
Permission match
70%
Protocol compliance
100%

Findings (5)

  • LOWTool 'code_find_act' description lacks action verbin code_find_act
  • LOWTool 'constitution_browse' description lacks action verbin constitution_browse
  • LOWTool 'fetch' suggests web access but openWorldHint=falsein fetch
  • LOWTool 'code_browse' suggests web access but openWorldHint=falsein code_browse
  • LOWTool 'constitution_browse' suggests web access but openWorldHint=falsein constitution_browse

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~8,970Tokens (tool definitions)
~2.2 KBTypical response size
Significant attention impact (7.01% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "georgia-commons": {
      "url": "https://mcp.georgiacommons.org/mcp"
    }
  }
}

Remote endpoints

https://mcp.georgiacommons.org/mcpstreamable-http

What it can do

Tool inventory

Tools (28)

๐ŸŸข Read-only๐ŸŸก Write๐Ÿ”ด Deleteโšช Unknown
๐ŸŸขdescribe_site

An overview of Georgia Commons: what it holds, which collections this server has loaded, how ids and page addresses are written, which tool fits which kind of question, and the independence statement. A short response.

Input Schema

{
  "type": "object",
  "properties": {},
  "title": "describe_siteArguments"
}
๐ŸŸขget_coverage

Exactly what is loaded, computed from the stores now: coverage sentences, corpus versions, counts, sessions, years, dates, licenses.

Input Schema

{
  "type": "object",
  "properties": {},
  "title": "get_coverageArguments"
}
๐ŸŸขsearch(query, collection)

Search every loaded collection (or one, with `collection` = code, bills, opinions, or meetings) and return up to ten results as {id, title, url}. A Code or constitution citation, bill number, or docket in the query comes first. Search matches the words of the document. Ask in the words the document would use, not the words of the question. Pass a result's id to fetch for the document.

Input Schema

{
  "type": "object",
  "properties": {
    "query": {
      "description": "Words, a citation (44-7-34), a bill number (HB 136), or a docket (S23A0421). Search matches the words of the document.",
      "maxLength": 2000,
      "title": "Query",
      "type": "string"
    },
    "collection": {
      "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"
    }
  },
  "required": [
    "query"
  ],
  "title": "searchArguments"
}

Output Schema

{
  "type": "object",
  "properties": {
    "results": {
      "items": {
        "$ref": "#/$defs/SearchResult"
      },
      "title": "Results",
      "type": "array"
    }
  },
  "required": [
    "results"
  ],
  "$defs": {
    "SearchResult": {
      "properties": {
        "id": {
          "title": "Id",
          "type": "string"
        },
        "title": {
          "title": "Title",
          "type": "string"
        },
        "url": {
          "title": "Url",
          "type": "string"
        }
      },
      "required": [
        "id",
        "title",
        "url"
      ],
      "title": "SearchResult",
      "type": "object"
    }
  },
  "title": "SearchResults"
}
๐ŸŸขfetch(id, full, start, max_chars)

The document for an id from search (code:44-7-34, ga-const:art-i-sec-i-para-i, bill:2025-2026/hb136, opinion:S26A0060, meeting:2026-02-05/house-rules): the same Markdown twin the site serves at url plus .md (frontmatter, verbatim text, any summaries under a heading that names them), with url the canonical page for citation and metadata from the frontmatter. Returns at most `max_chars` characters (default 60,000); a longer document ends with the fetch call for the next part, and metadata.next_start gives its `start`. `full` adds the optional material, or for the Code and constitutions the first 60,000-character page of the notes, whose frontmatter names the next page.

Input Schema

{
  "type": "object",
  "properties": {
    "id": {
      "description": "A document id from search: code:44-7-34, ga-const:art-i-sec-i-para-i, us-const:amend-xiv, bill:2025-2026/hb136, opinion:S26A0060, or meeting:2026-02-05/house-rules.",
      "minLength": 1,
      "title": "Id",
      "type": "string"
    },
    "full": {
      "default": false,
      "description": "Include the optional material the tool describes (for example votes and history, or the notes). Longer.",
      "title": "Full",
      "type": "boolean"
    },
    "start": {
      "default": 0,
      "description": "Where to start, as returned by the previous call's continuation pointer. 0 is the beginning.",
      "minimum": 0,
      "title": "Start",
      "type": "integer"
    },
    "max_chars": {
      "default": 60000,
      "description": "Most characters to return in this call, 1,000 to 200,000 (default 60,000). A longer document ends with a pointer to the next part.",
      "maximum": 200000,
      "minimum": 1000,
      "title": "Max Chars",
      "type": "integer"
    }
  },
  "required": [
    "id"
  ],
  "title": "fetchArguments"
}
๐ŸŸขverify_quote(id, quote)

Whether a quote appears verbatim in the stored text of a document, or in a meeting's machine transcript (after normalizing quotes, dashes, whitespace, and [T]he-style alterations, as the ingestion filter does). Deterministic: no model is involved.

Input Schema

{
  "type": "object",
  "properties": {
    "id": {
      "description": "The document's id, as search and fetch return it: code:44-7-34, bill:2025-2026/hb136, opinion:S26A0060, meeting:2026-02-05/house-rules.",
      "minLength": 1,
      "title": "Id",
      "type": "string"
    },
    "quote": {
      "description": "The quotation to check, at least 12 characters and at most 4,000.",
      "maxLength": 4000,
      "minLength": 1,
      "title": "Quote",
      "type": "string"
    }
  },
  "required": [
    "id",
    "quote"
  ],
  "title": "verify_quoteArguments"
}

Output Schema

{
  "type": "object",
  "properties": {
    "id": {
      "title": "Id",
      "type": "string"
    },
    "url": {
      "title": "Url",
      "type": "string"
    },
    "verified": {
      "title": "Verified",
      "type": "boolean"
    },
    "occurrences": {
      "title": "Occurrences",
      "type": "integer"
    },
    "source_field": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Source Field"
    },
    "chars": {
      "title": "Chars",
      "type": "integer"
    }
  },
  "required": [
    "id",
    "url",
    "verified",
    "occurrences",
    "source_field",
    "chars"
  ],
  "title": "VerifyResult"
}
๐ŸŸขopinions_lookup(opinion, full, start, max_chars)

One Supreme Court of Georgia opinion by docket in any case (S23A0421), reporter citation (317 Ga. 528, 883 S.E.2d 746), record id (a CourtListener cluster id, or ga- and the docket for a record read from the court's own website), or case name, as the same Markdown twin the site serves: frontmatter (cite_as, canonical_url, source_url, record_source, date, status), the verbatim opinion, then the summaries Georgia Commons wrote under a heading that says so. When several opinions share a docket this is the most recent and the frontmatter lists the others. `full` adds the summarized reasoning and the checked quotes. Returns at most `max_chars` characters (default 60,000); a longer opinion ends with the call for the next part.

Input Schema

{
  "type": "object",
  "properties": {
    "opinion": {
      "description": "The opinion: a docket number (S23A0421), a reporter citation (317 Ga. 528), a record id, or a case name.",
      "minLength": 1,
      "title": "Opinion",
      "type": "string"
    },
    "full": {
      "default": false,
      "description": "Include the optional material the tool describes (for example votes and history, or the notes). Longer.",
      "title": "Full",
      "type": "boolean"
    },
    "start": {
      "default": 0,
      "description": "Where to start, as returned by the previous call's continuation pointer. 0 is the beginning.",
      "minimum": 0,
      "title": "Start",
      "type": "integer"
    },
    "max_chars": {
      "default": 60000,
      "description": "Most characters to return in this call, 1,000 to 200,000 (default 60,000). A longer document ends with a pointer to the next part.",
      "maximum": 200000,
      "minimum": 1000,
      "title": "Max Chars",
      "type": "integer"
    }
  },
  "required": [
    "opinion"
  ],
  "title": "opinions_lookupArguments"
}
๐ŸŸขopinions_get_text(opinion, start, max_chars)

The stored text of an opinion alone, windowed by `start` and `max_chars` (default 60,000), with a pointer to continue.

Input Schema

{
  "type": "object",
  "properties": {
    "opinion": {
      "description": "The opinion: a docket number (S23A0421), a reporter citation (317 Ga. 528), a record id, or a case name.",
      "minLength": 1,
      "title": "Opinion",
      "type": "string"
    },
    "start": {
      "default": 0,
      "description": "Where to start, as returned by the previous call's continuation pointer. 0 is the beginning.",
      "minimum": 0,
      "title": "Start",
      "type": "integer"
    },
    "max_chars": {
      "default": 60000,
      "description": "Most characters to return in this call, 1,000 to 200,000 (default 60,000). A longer document ends with a pointer to the next part.",
      "maximum": 200000,
      "minimum": 1000,
      "title": "Max Chars",
      "type": "integer"
    }
  },
  "required": [
    "opinion"
  ],
  "title": "opinions_get_textArguments"
}
๐ŸŸขopinions_list(year, case_type, q, limit, start)

The opinions filed in a year (the newest year when omitted), in filing order, 25 a page: `docket, date, case name, case type, URL`. Filter by `case_type` (criminal appeal, civil, bar discipline, habeas, certified question, election, other) or words `q`.

Input Schema

{
  "type": "object",
  "properties": {
    "year": {
      "anyOf": [
        {
          "maximum": 2100,
          "minimum": 2000,
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "The year filed (opinions are held from 2020 on). Omit for the newest year.",
      "title": "Year"
    },
    "case_type": {
      "anyOf": [
        {
          "enum": [
            "criminal appeal",
            "civil",
            "bar discipline",
            "habeas",
            "certified question",
            "election",
            "other"
          ],
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Kind of case: criminal appeal, civil, bar discipline, habeas, certified question, election, or other.",
      "title": "Case Type"
    },
    "q": {
      "anyOf": [
        {
          "maxLength": 500,
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Words every listed opinion must contain.",
      "title": "Q"
    },
    "limit": {
      "default": 25,
      "description": "How many entries per page, 1 to 40 (default 25).",
      "maximum": 40,
      "minimum": 1,
      "title": "Limit",
      "type": "integer"
    },
    "start": {
      "default": 0,
      "description": "How many entries to skip, as returned by the previous call's continuation pointer. 0 is the first page.",
      "minimum": 0,
      "title": "Start",
      "type": "integer"
    }
  },
  "title": "opinions_listArguments"
}
๐ŸŸขopinions_search(query, year, case_type, in_headings, limit)

Full-text search over opinion text, case names, and the labeled summaries. A bare docket or citation is a direct lookup. Search matches the words of the document: ask in the words the court would use. `in_headings` searches only case names, legal areas, and case types.

Input Schema

{
  "type": "object",
  "properties": {
    "query": {
      "description": "The words to search for, in the words the document itself would use.",
      "maxLength": 2000,
      "minLength": 1,
      "title": "Query",
      "type": "string"
    },
    "year": {
      "anyOf": [
        {
          "maximum": 2100,
          "minimum": 2000,
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Only opinions filed in this year.",
      "title": "Year"
    },
    "case_type": {
      "anyOf": [
        {
          "enum": [
            "criminal appeal",
            "civil",
            "bar discipline",
            "habeas",
            "certified question",
            "election",
            "other"
          ],
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Kind of case: criminal appeal, civil, bar discipline, habeas, certified question, election, or other.",
      "title": "Case Type"
    },
    "in_headings": {
      "default": false,
      "description": "Search only titles and headings instead of the full text.",
      "title": "In Headings",
      "type": "boolean"
    },
    "limit": {
      "default": 10,
      "description": "How many results to return, 1 to 40 (default 10).",
      "maximum": 40,
      "minimum": 1,
      "title": "Limit",
      "type": "integer"
    }
  },
  "required": [
    "query"
  ],
  "title": "opinions_searchArguments"
}
๐ŸŸขbills_lookup(bill, session, full, start, max_chars)

One bill or resolution of the Georgia General Assembly by number in any written form (HB 136, H.B. 136, House Bill 136, 2025-2026/hb136, a numeric id), as the same Markdown twin the site serves: frontmatter (cite_as, canonical_url, source_url, status), the verbatim text, the summaries Georgia Commons wrote under a heading that says so, and status. With no `session`, a number means the newest regular session that has it; name the session (2026-special) for a special session's bill that shares its number. `full` adds the history, the floor votes with how each member voted, the amendments, and every document the legislature lists. Returns at most `max_chars` characters (default 60,000); a longer bill ends with the call for the next part.

Input Schema

{
  "type": "object",
  "properties": {
    "bill": {
      "description": "The bill or resolution: HB 136, H.B. 136, House Bill 136, SR 5, 2025-2026/hb136, or a numeric id.",
      "minLength": 1,
      "title": "Bill",
      "type": "string"
    },
    "session": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "The session, named by its years or slug: 2025-2026 (the regular session) or 2026-special. Omit for the default the tool describes.",
      "title": "Session"
    },
    "full": {
      "default": false,
      "description": "Include the optional material the tool describes (for example votes and history, or the notes). Longer.",
      "title": "Full",
      "type": "boolean"
    },
    "start": {
      "default": 0,
      "description": "Where to start, as returned by the previous call's continuation pointer. 0 is the beginning.",
      "minimum": 0,
      "title": "Start",
      "type": "integer"
    },
    "max_chars": {
      "default": 60000,
      "description": "Most characters to return in this call, 1,000 to 200,000 (default 60,000). A longer document ends with a pointer to the next part.",
      "maximum": 200000,
      "minimum": 1000,
      "title": "Max Chars",
      "type": "integer"
    }
  },
  "required": [
    "bill"
  ],
  "title": "bills_lookupArguments"
}
๐ŸŸขbills_get_text(bill, session, start, max_chars)

The stored text of a bill alone, windowed by `start` and `max_chars` (default 60,000), with a pointer to continue.

Input Schema

{
  "type": "object",
  "properties": {
    "bill": {
      "description": "The bill or resolution: HB 136, H.B. 136, House Bill 136, SR 5, 2025-2026/hb136, or a numeric id.",
      "minLength": 1,
      "title": "Bill",
      "type": "string"
    },
    "session": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "The session, named by its years or slug: 2025-2026 (the regular session) or 2026-special. Omit for the default the tool describes.",
      "title": "Session"
    },
    "start": {
      "default": 0,
      "description": "Where to start, as returned by the previous call's continuation pointer. 0 is the beginning.",
      "minimum": 0,
      "title": "Start",
      "type": "integer"
    },
    "max_chars": {
      "default": 60000,
      "description": "Most characters to return in this call, 1,000 to 200,000 (default 60,000). A longer document ends with a pointer to the next part.",
      "maximum": 200000,
      "minimum": 1000,
      "title": "Max Chars",
      "type": "integer"
    }
  },
  "required": [
    "bill"
  ],
  "title": "bills_get_textArguments"
}
๐ŸŸขbills_list(session, kind, chamber, status, subject, ...)

The bills of a session (the newest when `session` is omitted), in number order, 25 a page: `id, title, status, URL`. Filter by `kind` (hb House bill, sb Senate bill, hr House resolution, sr Senate resolution), `chamber` (H or S), `status` code (1 Introduced, 2 Engrossed, 3 Enrolled, 4 Passed, 5 Vetoed, 6 Failed), a caption `subject` (a headings search), or words `q`.

Input Schema

{
  "type": "object",
  "properties": {
    "session": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "The session, named by its years or slug: 2025-2026 (the regular session) or 2026-special. Omit for the default the tool describes.",
      "title": "Session"
    },
    "kind": {
      "anyOf": [
        {
          "enum": [
            "hb",
            "sb",
            "hr",
            "sr"
          ],
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Kind of measure: hb (House bill), sb (Senate bill), hr (House resolution), or sr (Senate resolution).",
      "title": "Kind"
    },
    "chamber": {
      "anyOf": [
        {
          "enum": [
            "H",
            "S"
          ],
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Chamber of origin: H (House) or S (Senate).",
      "title": "Chamber"
    },
    "status": {
      "anyOf": [
        {
          "maximum": 6,
          "minimum": 1,
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Status code: 1 Introduced, 2 Engrossed, 3 Enrolled, 4 Passed, 5 Vetoed, 6 Failed.",
      "title": "Status"
    },
    "subject": {
      "anyOf": [
        {
          "maxLength": 200,
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "A caption subject, such as Education or Income tax: a search of titles, topic tags, and subjects.",
      "title": "Subject"
    },
    "q": {
      "anyOf": [
        {
          "maxLength": 500,
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Words every listed bill must contain.",
      "title": "Q"
    },
    "limit": {
      "default": 25,
      "description": "How many entries per page, 1 to 40 (default 25).",
      "maximum": 40,
      "minimum": 1,
      "title": "Limit",
      "type": "integer"
    },
    "start": {
      "default": 0,
      "description": "How many entries to skip, as returned by the previous call's continuation pointer. 0 is the first page.",
      "minimum": 0,
      "title": "Start",
      "type": "integer"
    }
  },
  "title": "bills_listArguments"
}
๐ŸŸขbills_search(query, session, in_headings, limit)

Full-text search over bill text, titles, and the labeled summaries. A bare bill number is a direct lookup. Search matches the words of the document: ask in the words the bill would use. `in_headings` searches only titles, topic tags, and subjects.

Input Schema

{
  "type": "object",
  "properties": {
    "query": {
      "description": "The words to search for, in the words the document itself would use.",
      "maxLength": 2000,
      "minLength": 1,
      "title": "Query",
      "type": "string"
    },
    "session": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "The session, named by its years or slug: 2025-2026 (the regular session) or 2026-special. Omit for the default the tool describes.",
      "title": "Session"
    },
    "in_headings": {
      "default": false,
      "description": "Search only titles and headings instead of the full text.",
      "title": "In Headings",
      "type": "boolean"
    },
    "limit": {
      "default": 10,
      "description": "How many results to return, 1 to 40 (default 10).",
      "maximum": 40,
      "minimum": 1,
      "title": "Limit",
      "type": "integer"
    }
  },
  "required": [
    "query"
  ],
  "title": "bills_searchArguments"
}
๐ŸŸขcode_describe_structure

How the Official Code of Georgia Annotated (O.C.G.A., Georgia's statutes) is organized here: the citation grammar, how to find a section without its citation, how versions and statuses work, what is and is not in the text, and the list of titles. A short response.

Input Schema

{
  "type": "object",
  "properties": {},
  "title": "code_describe_structureArguments"
}
๐ŸŸขcode_lookup_section(citation, version, subsection, start, max_chars)

One section of the Official Code of Georgia Annotated (O.C.G.A.) by citation in any written form (44-7-34, 'O.C.G.A. ยง 44-7-34', 'Title 44, Chapter 7, Section 34'), as the same Markdown twin the site serves: frontmatter (cite_as, canonical_url, source_url, status, version), the verbatim text, then the notes capped. `version` picks a printed version by its qualifier; `subsection` ('a', 'a-1') renders one part. Returns at most `max_chars` characters (default 60,000), ending with the call for the next part. A citation not found names the neighboring sections.

Input Schema

{
  "type": "object",
  "properties": {
    "citation": {
      "description": "One Code section in any written form: 44-7-34, O.C.G.A. ยง 44-7-34, Title 44, Chapter 7, Section 34, or with a subsection, 44-7-34(a).",
      "maxLength": 200,
      "minLength": 1,
      "title": "Citation",
      "type": "string"
    },
    "version": {
      "anyOf": [
        {
          "maxLength": 100,
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Which printed version, by words of its effective-date qualifier, when a section is printed in more than one.",
      "title": "Version"
    },
    "subsection": {
      "anyOf": [
        {
          "maxLength": 40,
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "One subsection to render alone, by its label: a, a-1, b.",
      "title": "Subsection"
    },
    "start": {
      "default": 0,
      "description": "Where to start, as returned by the previous call's continuation pointer. 0 is the beginning.",
      "minimum": 0,
      "title": "Start",
      "type": "integer"
    },
    "max_chars": {
      "default": 60000,
      "description": "Most characters to return in this call, 1,000 to 200,000 (default 60,000). A longer document ends with a pointer to the next part.",
      "maximum": 200000,
      "minimum": 1000,
      "title": "Max Chars",
      "type": "integer"
    }
  },
  "required": [
    "citation"
  ],
  "title": "code_lookup_sectionArguments"
}
๐ŸŸขcode_lookup_sections(citations)

Several sections of the Georgia Code at once: a list ('44-7-30, 44-7-31 and 44-7-34') or a range ('44-7-30 through 44-7-35'), at most 40 sections and about 60,000 characters a call. A trailer names anything not in the Code and gives the call for any sections left over.

Input Schema

{
  "type": "object",
  "properties": {
    "citations": {
      "description": "A range ('44-7-30 through 44-7-35'), a list ('44-7-30, 44-7-31 and 44-7-34'), or a comma list of citations.",
      "maxLength": 2000,
      "minLength": 1,
      "title": "Citations",
      "type": "string"
    }
  },
  "required": [
    "citations"
  ],
  "title": "code_lookup_sectionsArguments"
}
๐ŸŸขcode_browse(node)

The hierarchy of the Georgia Code: the titles (no argument), a title's chapters ('36'), or a chapter's sections ('36-60'), one line each with counts, citation spans, and twin URLs.

Input Schema

{
  "type": "object",
  "properties": {
    "node": {
      "anyOf": [
        {
          "maxLength": 40,
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "A title ('36'), a title and chapter ('36-60'), or nothing for the list of titles.",
      "title": "Node"
    }
  },
  "title": "code_browseArguments"
}
๐ŸŸขcode_get_chapter(title, chapter, max_sections, start, max_chars)

Every section of one Georgia Code chapter with its text, in order, windowed by max_sections (default 40) and max_chars (default 60,000); the output ends with a pointer to continue or 'End of chapter.'

Input Schema

{
  "type": "object",
  "properties": {
    "title": {
      "description": "The title number, 1 to 53 (Title 16 is Crimes and Offenses).",
      "maximum": 53,
      "minimum": 1,
      "title": "Title",
      "type": "integer"
    },
    "chapter": {
      "description": "The chapter number within the title, as printed: 5, 11A.",
      "maxLength": 10,
      "minLength": 1,
      "title": "Chapter",
      "type": "string"
    },
    "max_sections": {
      "default": 40,
      "description": "Most sections to return in this call, 1 to 200 (default 40).",
      "maximum": 200,
      "minimum": 1,
      "title": "Max Sections",
      "type": "integer"
    },
    "start": {
      "default": 0,
      "description": "How many of the chapter's sections to skip, as the previous call's continuation pointer says. 0 is the first section.",
      "minimum": 0,
      "title": "Start",
      "type": "integer"
    },
    "max_chars": {
      "default": 60000,
      "description": "Most characters to return in this call, 1,000 to 200,000 (default 60,000). A longer document ends with a pointer to the next part.",
      "maximum": 200000,
      "minimum": 1000,
      "title": "Max Chars",
      "type": "integer"
    }
  },
  "required": [
    "title",
    "chapter"
  ],
  "title": "code_get_chapterArguments"
}
๐ŸŸขcode_search(query, title, chapter, limit, in_headings, ...)

Full-text search of the Official Code of Georgia Annotated (or, with `scheme`, of the Georgia or United States constitution): words, or a citation, or both. A citation among words returns that section first; a query that names an act returns the section stating its short title first; a query that is a passage of a provision word for word returns that provision first. Search matches the words of the document: ask in the words the statute would use. `in_headings` searches only headings and catchlines and adds the matching units. `scheme`: `ocga` (default), `ga` for the Georgia constitution, `us` for the United States constitution.

Input Schema

{
  "type": "object",
  "properties": {
    "query": {
      "description": "The words to search for, in the words the document itself would use.",
      "maxLength": 2000,
      "minLength": 1,
      "title": "Query",
      "type": "string"
    },
    "title": {
      "anyOf": [
        {
          "maximum": 53,
          "minimum": 1,
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Only sections in this title of the Code (1 to 53).",
      "title": "Title"
    },
    "chapter": {
      "anyOf": [
        {
          "maxLength": 10,
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Only sections in this chapter of `title` (5, 11A).",
      "title": "Chapter"
    },
    "limit": {
      "default": 10,
      "description": "How many results to return, 1 to 40 (default 10).",
      "maximum": 40,
      "minimum": 1,
      "title": "Limit",
      "type": "integer"
    },
    "in_headings": {
      "default": false,
      "description": "Search only titles and headings instead of the full text.",
      "title": "In Headings",
      "type": "boolean"
    },
    "scheme": {
      "default": "ocga",
      "description": "Which text to search: ocga (the Official Code of Georgia Annotated, the default), ga (the Constitution of the State of Georgia), or us (the Constitution of the United States).",
      "enum": [
        "ocga",
        "ga",
        "us"
      ],
      "title": "Scheme",
      "type": "string"
    }
  },
  "required": [
    "query"
  ],
  "title": "code_searchArguments"
}
๐ŸŸขcode_find_chapter(words)

For 'I know the topic but not the citation': the titles, chapters, articles, and parts of the Georgia Code whose headings carry the words, with the code_browse call that lists each.

Input Schema

{
  "type": "object",
  "properties": {
    "words": {
      "description": "One or two words the Code would use as a heading: 'landlord and tenant', 'power of attorney'.",
      "maxLength": 200,
      "minLength": 1,
      "title": "Words",
      "type": "string"
    }
  },
  "required": [
    "words"
  ],
  "title": "code_find_chapterArguments"
}
๐ŸŸขcode_find_act(name)

Georgia laws by the short title the statute states ('Joshua's Law', 'Georgia Lemonade Stand Act'): the citing section of the Georgia Code and the unit the name covers.

Input Schema

{
  "type": "object",
  "properties": {
    "name": {
      "description": "The law's short title as the statute states it: Joshua's Law, Georgia Lemonade Stand Act.",
      "maxLength": 200,
      "minLength": 1,
      "title": "Name",
      "type": "string"
    }
  },
  "required": [
    "name"
  ],
  "title": "code_find_actArguments"
}
๐ŸŸขconstitution_lookup(scheme, citation, start, max_chars)

One provision of the Georgia ('ga') or United States ('us') constitution as printed in the Official Code of Georgia Annotated, by citation ('Art. I, Sec. I, Para. I', 'Amend. XIV', 'Preamble') or slug, as its Markdown twin with the case annotations capped. Returns at most `max_chars` characters (default 60,000), ending with the call for the next part.

Input Schema

{
  "type": "object",
  "properties": {
    "scheme": {
      "description": "Which constitution: ga (the Constitution of the State of Georgia) or us (the Constitution of the United States).",
      "enum": [
        "ga",
        "us"
      ],
      "title": "Scheme",
      "type": "string"
    },
    "citation": {
      "description": "The provision: 'Art. I, Sec. I, Para. I' (Georgia), 'Art. I, Sec. 8' or 'Amend. XIV' (United States), 'Preamble', or a slug such as art-i-sec-i-para-i.",
      "maxLength": 200,
      "minLength": 1,
      "title": "Citation",
      "type": "string"
    },
    "start": {
      "default": 0,
      "description": "Where to start, as returned by the previous call's continuation pointer. 0 is the beginning.",
      "minimum": 0,
      "title": "Start",
      "type": "integer"
    },
    "max_chars": {
      "default": 60000,
      "description": "Most characters to return in this call, 1,000 to 200,000 (default 60,000). A longer document ends with a pointer to the next part.",
      "maximum": 200000,
      "minimum": 1000,
      "title": "Max Chars",
      "type": "integer"
    }
  },
  "required": [
    "scheme",
    "citation"
  ],
  "title": "constitution_lookupArguments"
}
๐ŸŸขconstitution_browse(scheme, node)

The articles and sections of a constitution ('ga' or 'us'), or one article's provisions, one line each with twin URLs.

Input Schema

{
  "type": "object",
  "properties": {
    "scheme": {
      "description": "Which constitution: ga (the Constitution of the State of Georgia) or us (the Constitution of the United States).",
      "enum": [
        "ga",
        "us"
      ],
      "title": "Scheme",
      "type": "string"
    },
    "node": {
      "anyOf": [
        {
          "maxLength": 20,
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "An article ('I', 'Art. IV') to list its provisions, or nothing for the outline.",
      "title": "Node"
    }
  },
  "required": [
    "scheme"
  ],
  "title": "constitution_browseArguments"
}
๐ŸŸขmeetings_lookup(meeting, start)

One meeting of the Georgia House or Senate (a floor session, a standing committee, or the Rules Committee) by its address (2026-02-05/house-rules), the General Assembly's video id or URL, or a body and a date (House Rules 2/5/2026), as the Markdown twin the site serves: frontmatter (cite_as, canonical_url, source_url = the video), the machine-transcript notice, the summary and the bill discussions Georgia Commons wrote (one heading per bill, each with its moment in the video and the official record that confirms it), the bills read aloud, then the timestamped transcript. Speakers are not identified. A long transcript is cut after its first 20,000 characters, and the response ends with the call for the rest; `start` returns one part of the transcript alone, as the frontmatter's `parts` list says.

Input Schema

{
  "type": "object",
  "properties": {
    "meeting": {
      "description": "The meeting: its address (2026-02-05/house-rules), the General Assembly's video id or URL, or a body and a date (House Rules 2/5/2026).",
      "minLength": 1,
      "title": "Meeting",
      "type": "string"
    },
    "start": {
      "anyOf": [
        {
          "minimum": 0,
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "A character offset into the transcript: returns that part of the transcript alone instead of the meeting with its summaries.",
      "title": "Start"
    }
  },
  "required": [
    "meeting"
  ],
  "title": "meetings_lookupArguments"
}
๐ŸŸขmeetings_get_transcript(meeting, start, max_chars)

A meeting's machine transcript alone, each turn led by its timestamp linked to the video, windowed by `start` and `max_chars` (default 60,000), with a pointer to continue.

Input Schema

{
  "type": "object",
  "properties": {
    "meeting": {
      "description": "The meeting: its address (2026-02-05/house-rules), the General Assembly's video id or URL, or a body and a date (House Rules 2/5/2026).",
      "minLength": 1,
      "title": "Meeting",
      "type": "string"
    },
    "start": {
      "default": 0,
      "description": "Where to start, as returned by the previous call's continuation pointer. 0 is the beginning.",
      "minimum": 0,
      "title": "Start",
      "type": "integer"
    },
    "max_chars": {
      "default": 60000,
      "description": "Most characters to return in this call, 1,000 to 200,000 (default 60,000). A longer document ends with a pointer to the next part.",
      "maximum": 200000,
      "minimum": 1000,
      "title": "Max Chars",
      "type": "integer"
    }
  },
  "required": [
    "meeting"
  ],
  "title": "meetings_get_transcriptArguments"
}
๐ŸŸขmeetings_list(date, year, body, chamber, kind, ...)

Published meetings, 25 a page: `id, title, length, URL`. Filter by `date` (YYYY-MM-DD), `year`, `body` (house-rules, senate-judiciary, house-floor), `chamber` (house or senate), or `kind` (floor, committee, rules); with no filter, the newest first and the list of bodies.

Input Schema

{
  "type": "object",
  "properties": {
    "date": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "One day, written YYYY-MM-DD (2026-02-05).",
      "title": "Date"
    },
    "year": {
      "anyOf": [
        {
          "maximum": 2100,
          "minimum": 2026,
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "One year (meetings are held from 2026 on).",
      "title": "Year"
    },
    "body": {
      "anyOf": [
        {
          "maxLength": 100,
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "One body by its slug (house-rules, senate-judiciary, house-floor) or its name.",
      "title": "Body"
    },
    "chamber": {
      "anyOf": [
        {
          "enum": [
            "house",
            "senate"
          ],
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Chamber: house or senate.",
      "title": "Chamber"
    },
    "kind": {
      "anyOf": [
        {
          "enum": [
            "floor",
            "committee",
            "rules"
          ],
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Kind of meeting: floor (a floor session), committee (a standing committee), or rules (the Rules Committee).",
      "title": "Kind"
    },
    "limit": {
      "default": 25,
      "description": "How many entries per page, 1 to 40 (default 25).",
      "maximum": 40,
      "minimum": 1,
      "title": "Limit",
      "type": "integer"
    },
    "start": {
      "default": 0,
      "description": "How many entries to skip, as returned by the previous call's continuation pointer. 0 is the first page.",
      "minimum": 0,
      "title": "Start",
      "type": "integer"
    }
  },
  "title": "meetings_listArguments"
}
๐ŸŸขmeetings_search(query, chamber, body, kind, in_headings, ...)

Full-text search over the meetings' transcripts, the summaries Georgia Commons wrote, and their titles and committees, grouped by meeting, each hit with up to three moments of the transcript and their timestamps. A bill number alone (HB 629) lists the meetings that took the bill up. Ask in the words a speaker would use. `in_headings` searches only titles and committee names.

Input Schema

{
  "type": "object",
  "properties": {
    "query": {
      "description": "The words to search for, in the words the document itself would use.",
      "maxLength": 2000,
      "minLength": 1,
      "title": "Query",
      "type": "string"
    },
    "chamber": {
      "anyOf": [
        {
          "enum": [
            "house",
            "senate"
          ],
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Chamber: house or senate.",
      "title": "Chamber"
    },
    "body": {
      "anyOf": [
        {
          "maxLength": 100,
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Only this body, by its slug (house-rules, senate-judiciary).",
      "title": "Body"
    },
    "kind": {
      "anyOf": [
        {
          "enum": [
            "floor",
            "committee",
            "rules"
          ],
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Kind of meeting: floor (a floor session), committee (a standing committee), or rules (the Rules Committee).",
      "title": "Kind"
    },
    "in_headings": {
      "default": false,
      "description": "Search only titles and headings instead of the full text.",
      "title": "In Headings",
      "type": "boolean"
    },
    "limit": {
      "default": 10,
      "description": "How many results to return, 1 to 40 (default 10).",
      "maximum": 40,
      "minimum": 1,
      "title": "Limit",
      "type": "integer"
    }
  },
  "required": [
    "query"
  ],
  "title": "meetings_searchArguments"
}
๐ŸŸขmeetings_for_bill(bill, session)

The published meetings that took up a bill (HB 629, SB 1, 2025-2026/hb629), oldest first: each meeting, the moment in its video, the summary of the discussion, and the official record that confirms it.

Input Schema

{
  "type": "object",
  "properties": {
    "bill": {
      "description": "The bill: HB 629, SB 1, or 2025-2026/hb629.",
      "minLength": 1,
      "title": "Bill",
      "type": "string"
    },
    "session": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "The session, named by its years or slug: 2025-2026 (the regular session) or 2026-special. Omit for the default the tool describes.",
      "title": "Session"
    }
  },
  "required": [
    "bill"
  ],
  "title": "meetings_for_billArguments"
}

Recommended Prompts

search_research
Search for information about [topic] using Georgia Commons
Expected tools: search
find_specific
Find [specific item] using Georgia Commons
Expected tools: search
retrieve_data
Get details about [item] from Georgia Commons
Expected tools: get_coverage
fetch_info
Fetch [information type] using Georgia Commons
Expected tools: get_coverage
list_items
List all [items] available in Georgia Commons
Expected tools: opinions_list

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded28 tools
verifiedversion not recorded23 tools
verifiedversion not recorded23 tools
verifiedversion not recorded23 tools
verifiedversion not recorded23 tools
verifiedversion not recorded23 tools