Georgia Commons
Georgia's Code, bills, and Supreme Court opinions as source text. Independent, not the State.
Should I use this
Quality & Safety
Findings (6)
- LOWin code_find_act
- LOWin constitution_lookup
- 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 (23)
๐ข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.
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, 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).
Input Schema
{
"type": "object",
"properties": {
"query": {
"title": "Query",
"type": "string"
},
"collection": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"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)
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.
Input Schema
{
"type": "object",
"properties": {
"id": {
"title": "Id",
"type": "string"
},
"full": {
"default": false,
"title": "Full",
"type": "boolean"
}
},
"required": [
"id"
],
"title": "fetchArguments"
}Output Schema
{
"type": "object",
"properties": {
"id": {
"title": "Id",
"type": "string"
},
"title": {
"title": "Title",
"type": "string"
},
"text": {
"title": "Text",
"type": "string"
},
"url": {
"title": "Url",
"type": "string"
},
"metadata": {
"additionalProperties": true,
"title": "Metadata",
"type": "object"
}
},
"required": [
"id",
"title",
"text",
"url",
"metadata"
],
"title": "FetchResult"
}๐ขverify_quote(id, 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.
Input Schema
{
"type": "object",
"properties": {
"id": {
"title": "Id",
"type": "string"
},
"quote": {
"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)
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.
Input Schema
{
"type": "object",
"properties": {
"opinion": {
"title": "Opinion",
"type": "string"
},
"full": {
"default": false,
"title": "Full",
"type": "boolean"
}
},
"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": {
"title": "Opinion",
"type": "string"
},
"start": {
"default": 0,
"title": "Start",
"type": "integer"
},
"max_chars": {
"default": 60000,
"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": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Year"
},
"case_type": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Case Type"
},
"q": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Q"
},
"limit": {
"default": 25,
"title": "Limit",
"type": "integer"
},
"start": {
"default": 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": {
"title": "Query",
"type": "string"
},
"year": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Year"
},
"case_type": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Case Type"
},
"in_headings": {
"default": false,
"title": "In Headings",
"type": "boolean"
},
"limit": {
"default": 10,
"title": "Limit",
"type": "integer"
}
},
"required": [
"query"
],
"title": "opinions_searchArguments"
}๐ขbills_lookup(bill, session, full)
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.
Input Schema
{
"type": "object",
"properties": {
"bill": {
"title": "Bill",
"type": "string"
},
"session": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Session"
},
"full": {
"default": false,
"title": "Full",
"type": "boolean"
}
},
"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": {
"title": "Bill",
"type": "string"
},
"session": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Session"
},
"start": {
"default": 0,
"title": "Start",
"type": "integer"
},
"max_chars": {
"default": 60000,
"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, 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`.
Input Schema
{
"type": "object",
"properties": {
"session": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Session"
},
"kind": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Kind"
},
"chamber": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Chamber"
},
"status": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Status"
},
"subject": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Subject"
},
"q": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Q"
},
"limit": {
"default": 25,
"title": "Limit",
"type": "integer"
},
"start": {
"default": 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": {
"title": "Query",
"type": "string"
},
"session": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Session"
},
"in_headings": {
"default": false,
"title": "In Headings",
"type": "boolean"
},
"limit": {
"default": 10,
"title": "Limit",
"type": "integer"
}
},
"required": [
"query"
],
"title": "bills_searchArguments"
}๐ข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.
Input Schema
{
"type": "object",
"properties": {},
"title": "code_describe_structureArguments"
}๐ขcode_lookup_section(citation, version, subsection)
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.
Input Schema
{
"type": "object",
"properties": {
"citation": {
"title": "Citation",
"type": "string"
},
"version": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Version"
},
"subsection": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Subsection"
}
},
"required": [
"citation"
],
"title": "code_lookup_sectionArguments"
}๐ขcode_lookup_sections(citations)
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.
Input Schema
{
"type": "object",
"properties": {
"citations": {
"title": "Citations",
"type": "string"
}
},
"required": [
"citations"
],
"title": "code_lookup_sectionsArguments"
}๐ขcode_browse(node)
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.
Input Schema
{
"type": "object",
"properties": {
"node": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Node"
}
},
"title": "code_browseArguments"
}๐ขcode_get_chapter(title, chapter, max_sections, start, max_chars)
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.'
Input Schema
{
"type": "object",
"properties": {
"title": {
"title": "Title",
"type": "integer"
},
"chapter": {
"title": "Chapter",
"type": "string"
},
"max_sections": {
"default": 40,
"title": "Max Sections",
"type": "integer"
},
"start": {
"default": 0,
"title": "Start",
"type": "integer"
},
"max_chars": {
"default": 100000,
"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 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.
Input Schema
{
"type": "object",
"properties": {
"query": {
"title": "Query",
"type": "string"
},
"title": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Title"
},
"chapter": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Chapter"
},
"limit": {
"default": 10,
"title": "Limit",
"type": "integer"
},
"in_headings": {
"default": false,
"title": "In Headings",
"type": "boolean"
},
"scheme": {
"default": "ocga",
"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 whose headings carry the words, with the code_browse call that lists each.
Input Schema
{
"type": "object",
"properties": {
"words": {
"title": "Words",
"type": "string"
}
},
"required": [
"words"
],
"title": "code_find_chapterArguments"
}๐ขcode_find_act(name)
Laws by the short title the statute states ('Joshua's Law', 'Georgia Lemonade Stand Act'): the citing section and the unit the name covers.
Input Schema
{
"type": "object",
"properties": {
"name": {
"title": "Name",
"type": "string"
}
},
"required": [
"name"
],
"title": "code_find_actArguments"
}๐ขconstitution_lookup(scheme, citation)
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.
Input Schema
{
"type": "object",
"properties": {
"scheme": {
"title": "Scheme",
"type": "string"
},
"citation": {
"title": "Citation",
"type": "string"
}
},
"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": {
"title": "Scheme",
"type": "string"
},
"node": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Node"
}
},
"required": [
"scheme"
],
"title": "constitution_browseArguments"
}Recommended Prompts
searchsearchget_coverageget_coverageopinions_listCommunity
Evidence