Skip to content
Georgia Commons
Menu

Georgia Commons for assistants

Everything on this site is built for language models, agents, and scripts as much as for people: every page has a Markdown twin, every collection has a map and a search, the JSON API needs no key, and one MCP server covers the whole site. This page is the one screen an operator needs to connect a client or compose an address.

Machine-readable https://georgiacommons.org/for-assistants.md · https://georgiacommons.org/index.md · MCP https://mcp.georgiacommons.org/mcp

Connect the MCP server

One server, https://mcp.georgiacommons.org/mcp, serves the Code and the two constitutions, bills, opinions, and House and Senate meetings. Streamable HTTP, no key, no account. It offers named Markdown tools for Claude (code_lookup_section, bills_search, opinions_lookup, meetings_for_bill and the like) and the search and fetch pair OpenAI's connectors require.

Call describe_site first: it says what is loaded, which tool to call next, and the id grammar. Ids carry their collection: code:44-7-34, ga-const:art-i-sec-i-para-i, us-const:amend-xiv, bill:2025-2026/hb136, opinion:S26A0060, meeting:2026-02-05/house-rules. Every document tool returns the same Markdown twin the site serves, and verify_quote checks a quotation against the stored text.

  • Claude (web, desktop, mobile): Settings, Connectors, Add custom connector; name it Georgia Commons and paste the URL below. Free plans include one custom connector.
  • Claude Code: claude mcp add --transport http georgiacommons https://mcp.georgiacommons.org/mcp
  • ChatGPT: Settings, Connectors, Create; paste the URL below. Deep research and the Responses API use the same server through its search and fetch tools.
  • Any MCP client: point it at the URL below with the streamable HTTP transport.

Responses API

from openai import OpenAI

client = OpenAI()
response = client.responses.create(
    model="gpt-5",
    tools=[{"type": "mcp", "server_label": "georgiacommons",
            "server_url": "https://mcp.georgiacommons.org/mcp", "require_approval": "never"}],
    input="What does Georgia law require a landlord to do with a security deposit? Quote it and cite it.",
)
print(response.output_text)

The URL grammar

Every collection uses the same shape, so an address learned once works everywhere: /{collection}/{id} is a page, /{collection}/{id}.md its Markdown twin (frontmatter, then the source text, then anything Georgia Commons wrote under a heading that says so), /{collection}/{id}/text the verbatim text alone (bills and opinions also have a readable page for people at /{collection}/{id}/full-text; a meeting's page carries its whole transcript), /{collection}/index.md the collection's map, /{collection}/search?q= a search (add &in=headings to search only the headings and titles), /{collection}/about.md the provenance. Ids are the ones people already know: a citation, a session and bill number, a docket, a meeting's date and body. Upstream numeric ids (and a meeting's Vimeo id) redirect.

Content negotiation works too: send Accept: text/markdown to any page address and the twin comes back. Twins and /text routes are served as text/plain; charset=utf-8, a type every fetch tool reads. The site map for machines is https://georgiacommons.org/index.md; the llms.txt is https://georgiacommons.org/llms.txt.

Search matches the words of the document. Ask in the words the document would use, not the words of the question.

Check a quote

POST https://api.georgiacommons.org/api/{collection}/verify with {"id": ..., "quote": ...} reports whether the quote appears verbatim in the stored text, after the same normalization the ingestion quote filter uses. The MCP tool verify_quote does the same. Deterministic; no model involved.

Written for people

This page is the short form, for an operator wiring a client up. Two longer pages say the same things in plain language: https://georgiacommons.org/mcp walks through adding the connector in Claude, ChatGPT, and Claude Code, and https://georgiacommons.org/api documents the JSON API, with every route at https://georgiacommons.org/api/endpoints. Each has a Markdown twin at its address plus .md.

What this is and is not

Georgia Commons, an independent project of Georgia Civic Data. Not the State of Georgia. Not legal advice.

The Code and the constitutions are source text only: no summaries, no interpretation, no model anywhere in that path. Bills and opinions carry summaries written by Georgia Commons under a heading that says so, after the verbatim text, and every quote in them was checked against the text. The official documents are linked from every page.