Georgia Commons

Georgia's Code, bills, and Supreme Court opinions as source text. Independent, not the State.

Should I use this

Quality & Safety

B
Description quality
94%
Schema completeness
67%
Naming quality
83%
Poisoning risk
100%
Permission match
70%
Protocol compliance
100%

Findings (6)

  • LOWTool 'code_find_act' description lacks action verbin code_find_act
  • LOWTool 'constitution_lookup' description lacks action verbin constitution_lookup
  • 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

~4,220Tokens (tool definitions)
~918 BTypical response size
Significant attention impact (3.30% 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 (23)

๐ŸŸข Read-only๐ŸŸก Write๐Ÿ”ด Deleteโšช Unknown
๐ŸŸข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

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 recorded23 tools
verifiedversion not recorded23 tools