Georgia Commons
Georgia's Code, bills, Supreme Court opinions, and 2026 House and Senate meetings. Independent.
Should I use this
Quality & Safety
Findings (5)
- LOWin code_find_act
- LOWin constitution_browse
- LOWin fetch
- LOWin code_browse
- LOWin constitution_browse
Based on automated analysis of tool definitions and protocol compliance.
Context Cost
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-httpWhat it can do
Tool inventory
Tools (28)
๐ข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
searchsearchget_coverageget_coverageopinions_listCommunity
Evidence