MCP Server

Georgia Commons

org.georgiacommons/georgia-commons
Knowledge & Documentation Legal & Compliance Public & reachable MCP 2025-11-25

What this MCP does

Searches and retrieves Georgia statutes, legislative bills, constitutional provisions, and Supreme Court opinions with citation and quote verification.

bills_get_text
The stored text of a bill alone, windowed by `start` and `max_chars` (default 60,000), with a pointer to continue.
Read only Idempotent
Input schema
{'type': 'object', 'title': 'bills_get_textArguments', 'required': ['bill'], 'properties': {'bill': {'type': 'string', 'title': 'Bill'}, 'start': {'type': 'integer', 'title': 'Start', 'default': 0}, 'session': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Session', 'default': None}, 'max_chars': {'type': 'integer', 'title': 'Max Chars', 'default': 60000}}}
bills_list
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, sb, hr, sr), `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`.
Read only Idempotent
Input schema
{'type': 'object', 'title': 'bills_listArguments', 'properties': {'q': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Q', 'default': None}, 'kind': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Kind', 'default': None}, 'limit': {'type': 'integer', 'title': 'Limit', 'default': 25}, 'start': {'type': 'integer', 'title': 'Start', 'default': 0}, 'status': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'Status', 'default': None}, 'chamber': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Chamber', 'default': None}, 'session': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Session', 'default': None}, 'subject': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Subject', 'default': None}}}
bills_lookup
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.
Read only Idempotent
Input schema
{'type': 'object', 'title': 'bills_lookupArguments', 'required': ['bill'], 'properties': {'bill': {'type': 'string', 'title': 'Bill'}, 'full': {'type': 'boolean', 'title': 'Full', 'default': False}, 'session': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Session', 'default': None}}}
bills_search
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.
Read only Idempotent
Input schema
{'type': 'object', 'title': 'bills_searchArguments', 'required': ['query'], 'properties': {'limit': {'type': 'integer', 'title': 'Limit', 'default': 10}, 'query': {'type': 'string', 'title': 'Query'}, 'session': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Session', 'default': None}, 'in_headings': {'type': 'boolean', 'title': 'In Headings', 'default': False}}}
code_browse
The hierarchy: 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.
Read only Idempotent
Input schema
{'type': 'object', 'title': 'code_browseArguments', 'properties': {'node': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Node', 'default': None}}}
code_describe_structure
Call first for the Code. 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. Cheap.
Read only Idempotent
Input schema
{'type': 'object', 'title': 'code_describe_structureArguments', 'properties': {}}
code_find_act
Laws by the short title the statute states ('Joshua's Law', 'Georgia Lemonade Stand Act'): the citing section and the unit the name covers.
Read only Idempotent
Input schema
{'type': 'object', 'title': 'code_find_actArguments', 'required': ['name'], 'properties': {'name': {'type': 'string', 'title': 'Name'}}}
code_find_chapter
For 'I know the topic but not the citation': the titles, chapters, articles, and parts whose headings carry the words, with the code_browse call that lists each.
Read only Idempotent
Input schema
{'type': 'object', 'title': 'code_find_chapterArguments', 'required': ['words'], 'properties': {'words': {'type': 'string', 'title': 'Words'}}}
code_get_chapter
Every section of a chapter with its text, in order, windowed by max_sections (default 40) and max_chars (default 100,000); the output ends with a pointer to continue or 'End of chapter.'
Read only Idempotent
Input schema
{'type': 'object', 'title': 'code_get_chapterArguments', 'required': ['title', 'chapter'], 'properties': {'start': {'type': 'integer', 'title': 'Start', 'default': 0}, 'title': {'type': 'integer', 'title': 'Title'}, 'chapter': {'type': 'string', 'title': 'Chapter'}, 'max_chars': {'type': 'integer', 'title': 'Max Chars', 'default': 100000}, 'max_sections': {'type': 'integer', 'title': 'Max Sections', 'default': 40}}}
code_lookup_section
One Code section 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. A 404 names the neighboring sections.
Read only Idempotent
Input schema
{'type': 'object', 'title': 'code_lookup_sectionArguments', 'required': ['citation'], 'properties': {'version': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Version', 'default': None}, 'citation': {'type': 'string', 'title': 'Citation'}, 'subsection': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Subsection', 'default': None}}}
code_lookup_sections
Several sections at once: a list ('44-7-30, 44-7-31 and 44-7-34') or a range ('44-7-30 through 44-7-35'), up to 40 sections under a 150,000-character cap, with a trailer naming anything not rendered.
Read only Idempotent
Input schema
{'type': 'object', 'title': 'code_lookup_sectionsArguments', 'required': ['citations'], 'properties': {'citations': {'type': 'string', 'title': 'Citations'}}}
code_search
Full-text search of the Code: 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` picks the collection: `ocga` (default), `ga` for the Georgia constitution, `us` for the United States constitution.
Read only Idempotent
Input schema
{'type': 'object', 'title': 'code_searchArguments', 'required': ['query'], 'properties': {'limit': {'type': 'integer', 'title': 'Limit', 'default': 10}, 'query': {'type': 'string', 'title': 'Query'}, 'title': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'Title', 'default': None}, 'scheme': {'type': 'string', 'title': 'Scheme', 'default': 'ocga'}, 'chapter': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Chapter', 'default': None}, 'in_headings': {'type': 'boolean', 'title': 'In Headings', 'default': False}}}
constitution_browse
The articles and sections of a constitution ('ga' or 'us'), or one article's provisions, one line each with twin URLs.
Read only Idempotent
Input schema
{'type': 'object', 'title': 'constitution_browseArguments', 'required': ['scheme'], 'properties': {'node': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Node', 'default': None}, 'scheme': {'type': 'string', 'title': 'Scheme'}}}
constitution_lookup
One provision of the Georgia ('ga') or United States ('us') constitution as printed in the O.C.G.A., by citation ('Art. I, Sec. I, Para. I', 'Amend. XIV', 'Preamble') or slug, as its Markdown twin with the case annotations capped.
Read only Idempotent
Input schema
{'type': 'object', 'title': 'constitution_lookupArguments', 'required': ['scheme', 'citation'], 'properties': {'scheme': {'type': 'string', 'title': 'Scheme'}, 'citation': {'type': 'string', 'title': 'Citation'}}}
describe_site
Call first. What Georgia Commons holds, which collections this server has loaded, the id and URL grammar, which tool to call next, and the independence statement. Cheap.
Read only Idempotent
Input schema
{'type': 'object', 'title': 'describe_siteArguments', 'properties': {}}
fetch
The full document for an id from search (code:44-7-34, ga-const:art-i-sec-i-para-i, bill:2025-2026/hb136, opinion:S26A0060): 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. `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.
Read only Idempotent
Input schema
{'type': 'object', 'title': 'fetchArguments', 'required': ['id'], 'properties': {'id': {'type': 'string', 'title': 'Id'}, 'full': {'type': 'boolean', 'title': 'Full', 'default': False}}}
Output schema
{'type': 'object', 'title': 'FetchResult', 'required': ['id', 'title', 'text', 'url', 'metadata'], 'properties': {'id': {'type': 'string', 'title': 'Id'}, 'url': {'type': 'string', 'title': 'Url'}, 'text': {'type': 'string', 'title': 'Text'}, 'title': {'type': 'string', 'title': 'Title'}, 'metadata': {'type': 'object', 'title': 'Metadata', 'additionalProperties': True}}}
get_coverage
Exactly what is loaded, computed from the stores now: coverage sentences, corpus versions, counts, sessions, years, dates, licenses.
Read only Idempotent
Input schema
{'type': 'object', 'title': 'get_coverageArguments', 'properties': {}}
opinions_get_text
The stored text of an opinion alone, windowed by `start` and `max_chars` (default 60,000), with a pointer to continue.
Read only Idempotent
Input schema
{'type': 'object', 'title': 'opinions_get_textArguments', 'required': ['opinion'], 'properties': {'start': {'type': 'integer', 'title': 'Start', 'default': 0}, 'opinion': {'type': 'string', 'title': 'Opinion'}, 'max_chars': {'type': 'integer', 'title': 'Max Chars', 'default': 60000}}}
opinions_list
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`.
Read only Idempotent
Input schema
{'type': 'object', 'title': 'opinions_listArguments', 'properties': {'q': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Q', 'default': None}, 'year': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'Year', 'default': None}, 'limit': {'type': 'integer', 'title': 'Limit', 'default': 25}, 'start': {'type': 'integer', 'title': 'Start', 'default': 0}, 'case_type': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Case Type', 'default': None}}}
opinions_lookup
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, checked quotes, and the upstream opinion records.
Read only Idempotent
Input schema
{'type': 'object', 'title': 'opinions_lookupArguments', 'required': ['opinion'], 'properties': {'full': {'type': 'boolean', 'title': 'Full', 'default': False}, 'opinion': {'type': 'string', 'title': 'Opinion'}}}
opinions_search
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.
Read only Idempotent
Input schema
{'type': 'object', 'title': 'opinions_searchArguments', 'required': ['query'], 'properties': {'year': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'Year', 'default': None}, 'limit': {'type': 'integer', 'title': 'Limit', 'default': 10}, 'query': {'type': 'string', 'title': 'Query'}, 'case_type': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Case Type', 'default': None}, 'in_headings': {'type': 'boolean', 'title': 'In Headings', 'default': False}}}
search
Search every loaded collection (or one, with `collection` = code, bills, or opinions) 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. Follow with fetch(id).
Read only Idempotent
Input schema
{'type': 'object', 'title': 'searchArguments', 'required': ['query'], 'properties': {'query': {'type': 'string', 'title': 'Query'}, 'collection': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Collection', 'default': None}}}
Output schema
{'type': 'object', '$defs': {'SearchResult': {'type': 'object', 'title': 'SearchResult', 'required': ['id', 'title', 'url'], 'properties': {'id': {'type': 'string', 'title': 'Id'}, 'url': {'type': 'string', 'title': 'Url'}, 'title': {'type': 'string', 'title': 'Title'}}}}, 'title': 'SearchResults', 'required': ['results'], 'properties': {'results': {'type': 'array', 'items': {'$ref': '#/$defs/SearchResult'}, 'title': 'Results'}}}
verify_quote
Whether a quote appears verbatim in the stored text of a document (after normalizing quotes, dashes, whitespace, and [T]he-style alterations, as the ingestion filter does). Deterministic; use it before relying on a quotation.
Read only Idempotent
Input schema
{'type': 'object', 'title': 'verify_quoteArguments', 'required': ['id', 'quote'], 'properties': {'id': {'type': 'string', 'title': 'Id'}, 'quote': {'type': 'string', 'title': 'Quote'}}}
Output schema
{'type': 'object', 'title': 'VerifyResult', 'required': ['id', 'url', 'verified', 'occurrences', 'source_field', 'chars'], 'properties': {'id': {'type': 'string', 'title': 'Id'}, 'url': {'type': 'string', 'title': 'Url'}, 'chars': {'type': 'integer', 'title': 'Chars'}, 'verified': {'type': 'boolean', 'title': 'Verified'}, 'occurrences': {'type': 'integer', 'title': 'Occurrences'}, 'source_field': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Source Field'}}}
Changed
bills_list
Sept. 27, 2026, 2:50 a.m.
Changed
bills_lookup
Sept. 27, 2026, 2:50 a.m.
Added
constitution_browse
Sept. 17, 2026, 12:54 p.m.
Added
constitution_lookup
Sept. 17, 2026, 12:54 p.m.
Added
code_find_act
Sept. 17, 2026, 12:54 p.m.
Added
code_find_chapter
Sept. 17, 2026, 12:54 p.m.
Added
code_search
Sept. 17, 2026, 12:54 p.m.
Added
code_get_chapter
Sept. 17, 2026, 12:54 p.m.
Added
code_browse
Sept. 17, 2026, 12:54 p.m.
Added
code_lookup_sections
Sept. 17, 2026, 12:54 p.m.
Added
code_lookup_section
Sept. 17, 2026, 12:54 p.m.
Added
code_describe_structure
Sept. 17, 2026, 12:54 p.m.
Added
bills_search
Sept. 17, 2026, 12:54 p.m.
Added
bills_list
Sept. 17, 2026, 12:54 p.m.
Added
bills_get_text
Sept. 17, 2026, 12:54 p.m.
Added
bills_lookup
Sept. 17, 2026, 12:54 p.m.
Added
opinions_search
Sept. 17, 2026, 12:54 p.m.
Added
opinions_list
Sept. 17, 2026, 12:54 p.m.
Added
opinions_get_text
Sept. 17, 2026, 12:54 p.m.
Added
opinions_lookup
Sept. 17, 2026, 12:54 p.m.
Added
verify_quote
Sept. 17, 2026, 12:54 p.m.
Added
fetch
Sept. 17, 2026, 12:54 p.m.
Added
search
Sept. 17, 2026, 12:54 p.m.
Added
get_coverage
Sept. 17, 2026, 12:54 p.m.
Added
describe_site
Sept. 17, 2026, 12:54 p.m.