Skip to content

Georgia Prisoners' Speak Public Data

by gps.press · remote · no sign-in to list tools · v1.0.0 · published by press.gps

Read-only public data on Georgia's prisons: population, facilities, deaths, contraband, statutes.

Read only

23 tools: 23 only read.

Scanned Oct 21, 2026

No check matched anything in the tool definitions. No finding is not a safety guarantee. How the checks work.

claude mcp add --transport http gps-public-data https://data.gps.press/mcp

Tools

Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.

23 tools

Only reads 23Claude Code: allow
  • get_contraband_incidentsIncidents from GDC's own published contraband arrest reports (2010-present, ~1,600 incidents, including reports that survive only in the Internet Archive; page: gps.press/contraban…No findings

    Why it is in this group

    • The name "get_contraband_incidents" says "get": a word for reading.
    Description, as the server wrote it
    Incidents from GDC's own published contraband arrest reports (2010-present, ~1,600 incidents, including reports that survive only in the Internet Archive; page: gps.press/contraband-data/): one row per incident with GDC's wording verbatim, the people as GDC categorised them (staff / officer / contract staff / visitor / civilian), the items, whether an arrest was reported, and the GDC source URL. Filters: facility slug (e.g. dooly-state-prison), year, actor_category (staff | visitor | civilian | officer | gdc_staff | contract_staff), item_category (cellphone, tobacco, marijuana, methamphetamine, ...), arrest_made (yes|no|unstated), q (text match). Structured rows name staff, officers and contract staff as GDC printed them; other people appear by category and role only. The narrative is GDC's own text. Rows are long (a few thousand characters each): per_page defaults to 5 and is capped at 20; use `page` to continue and the filters to narrow. `total` is the number of matches.

    Annotations the server declares

    • title: Get contraband incidents
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_contraband_summarySummaries of GDC's published contraband arrest reports.No findings

    Why it is in this group

    • The name "get_contraband_summary" says "get": a word for reading.
    Description, as the server wrote it
    Summaries of GDC's published contraband arrest reports. `by` = year | facility | actor-category | role | item-category | stats. Optional facility slug / year filters (not for stats). Counts arrests as GDC reported them; GDC's own running tally is not used because it is not a consistent series across copies of the same report.

    Annotations the server declares

    • title: Get contraband summary
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_drug_admissionsAdmissions to Georgia prisons on drug offenses for the latest published report year, broken down by sex, age band and related measures.No findings

    Why it is in this group

    • The name "get_drug_admissions" says "get": a word for reading.
    Description, as the server wrote it
    Admissions to Georgia prisons on drug offenses for the latest published report year, broken down by sex, age band and related measures.

    Annotations the server declares

    • title: Get drug admissions
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_facebook_postsWhat people on Facebook are saying about Georgia's prisons: public posts in the Ga.No findings

    Why it is in this group

    • The name "get_facebook_posts" says "get": a word for reading.
    Description, as the server wrote it
    What people on Facebook are saying about Georgia's prisons: public posts in the Ga. Prisons Exposed group and comments on GPS's own Facebook posts that GPS kept (families, formerly incarcerated people, former officers, advocates), newest first, each with its author, date, link and label: 'first-hand or inside account' (something specific that happened, seen or lived by the author or told by someone inside), 'opinion', 'idea for change', or 'news retold'. Filters: q (words), facility (a prison name, e.g. "Telfair"), days (default 30, max 365), label (account | opinion | idea | news), limit (default 10, max 60). `counts` gives items and people per label for the whole match. These are the authors' own views and accounts, never GPS findings: attribute and link every quote. Names of people in custody and GDC numbers are removed before the data leaves GPS.

    Annotations the server declares

    • title: Get Facebook posts
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_facilityOne facility's full public record plus its most recent state health inspection, if GPS has one.No findings

    Why it is in this group

    • The name "get_facility" says "get": a word for reading.
    Description, as the server wrote it
    One facility's full public record plus its most recent state health inspection, if GPS has one. `slug` is the facility's gps.press slug, e.g. 'macon-state-prison'. Use list_facilities to find it.

    Annotations the server declares

    • title: Get facility
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_facility_staff_rosterStaff headcount and list for one GDC facility, from a GDC-produced roster.No findings

    Why it is in this group

    • The name "get_facility_staff_roster" says "get": a word for reading.
    Description, as the server wrote it
    Staff headcount and list for one GDC facility, from a GDC-produced roster. Answers "how many staff work at X", "how many officers work there", "list the staff at X". `slug` is the facility slug, e.g. 'dooly-state-prison' (use list_facilities to find it). `title` optionally filters by job title. GDC abbreviates heavily: correctional officers appear as "Correctional Ofc", clerical staff as "Admin Support" or "Admin Assistant". Try both the plain word and the abbreviation. ALWAYS report the `observed` date alongside any figure from this tool. A roster is a single-day observation, not a statement about who works there today. A zero for a role is a finding about the roster rather than missing data: the roster holds no nursing, physician or dental titles anywhere in GDC, which is consistent with medical staffing being contracted rather than directly employed. Do not assert that reason as established fact.

    Annotations the server declares

    • title: Get facility staff roster
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_gps_guideGPS's orientation file for AI clients (llms.txt) — READ THIS FIRST.No findings

    Why it is in this group

    • The name "get_gps_guide" says "get": a word for reading.
    Description, as the server wrote it
    GPS's orientation file for AI clients (llms.txt) — READ THIS FIRST. Carries the things the data tools cannot: which figure to lead with when two are defensible, how to label budget figures, the exact date of the DOJ findings report, and the claims GPS has publicly corrected and will not repeat. Roughly 2,000 words. The datasets give you accurate numbers. This is what keeps the sentence around the number accurate too.

    Annotations the server declares

    • title: Get gps guide
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_historical_eventsDated changes to Georgia parole and sentencing rules and the court rulings on them, 1908-present (the 1979 guidelines grid, the 1994-95 Sentence Reform Act, the 1998 90% policy, th…No findings

    Why it is in this group

    • The name "get_historical_events" says "get": a word for reading.
    Description, as the server wrote it
    Dated changes to Georgia parole and sentencing rules and the court rulings on them, 1908-present (the 1979 guidelines grid, the 1994-95 Sentence Reform Act, the 1998 90% policy, the 2005 Fulton order voiding it, the 2006 and 2008 changes, HB 1176 in 2012), each with its source and quote. topic = parole | sentencing | court.

    Annotations the server declares

    • title: Get historical events
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_historical_seriesOne GPS Historical Data series by year: every value with the source's own label, the source (publisher, title, page, URL) and the exact quote it was checked against, plus the serie…No findings

    Why it is in this group

    • The name "get_historical_series" says "get": a word for reading.
    Description, as the server wrote it
    One GPS Historical Data series by year: every value with the source's own label, the source (publisher, title, page, URL) and the exact quote it was checked against, plus the series' definition BREAKS (never read one trend across a break). Get slugs from list_historical_series, e.g. deaths-bjs-state-prisons, homicides-gdc-via-doj, los-pct-released-on-parole-gdc, population-yearend-gdc-series, deaths-gps-registry (live). CSV: add ?format=csv to the REST URL. Values are paged (`limit` default 25, `offset`); narrow with from_year/to_year/category/subgroup.

    Annotations the server declares

    • title: Get historical series
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_length_of_stayHow long people actually serve in Georgia, by offense and year: average sentence, years served, percentage of sentence served, share released on parole, and the lifer figures — plu…No findings

    Why it is in this group

    • The name "get_length_of_stay" says "get": a word for reading.
    Description, as the server wrote it
    How long people actually serve in Georgia, by offense and year: average sentence, years served, percentage of sentence served, share released on parole, and the lifer figures — plus the trend summary. `offense` is a case-insensitive substring of GDC's offense name (e.g. 'murder', 'burglary', 'drug'; also the four-digit offense code). With no `offense` the all-crimes series is returned. `year` is the calendar year of release (e.g. '2023'). Both filter on this server. Rows are newest year first and paged: `limit` (default 30) and `offset`; `matched_offenses` lists what `offense` matched. `summary_only` returns just the summary block.

    Annotations the server declares

    • title: Get length of stay
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_mortality_dataDeaths in GDC custody since 2020 — yearly and monthly counts, cause-of- death breakdown, deaths by facility, facility type, security level and age.No findings

    Why it is in this group

    • The name "get_mortality_data" says "get": a word for reading.
    Description, as the server wrote it
    Deaths in GDC custody since 2020 — yearly and monthly counts, cause-of- death breakdown, deaths by facility, facility type, security level and age. With no arguments this returns the whole published document plus a list of its sections. `section` returns one section by name (e.g. 'YEARLY STATISTICS', 'DEATHS BY FACILITY'); `year` filters the yearly and monthly lines to that year; `facility_contains` filters the by-facility ranking AND returns that facility's cause-of-death breakdown. Filters are matched against the published lines, which is why the matching lines are returned verbatim rather than re-tabulated.

    Annotations the server declares

    • title: Get mortality data
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_ocga_sectionFull text of a section of the Official Code of Georgia Annotated from GPS's public mirror.No findings

    Why it is in this group

    • The name "get_ocga_section" says "get": a word for reading.
    Description, as the server wrote it
    Full text of a section of the Official Code of Georgia Annotated from GPS's public mirror. `section` is the bare citation without the 'O.C.G.A. §' prefix, e.g. '9-14-42', '42-5-2', '17-9-4'.

    Annotations the server declares

    • title: Get ocga section
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_pageRead any gps.press page as clean Markdown.No findings

    Why it is in this group

    • The name "get_page" says "get": a word for reading.
    Description, as the server wrote it
    Read any gps.press page as clean Markdown. Every page on the site has a Markdown twin at the same URL with `.md` appended; this fetches it. Accepts a full URL, a path, or a bare slug — '/vision2027/', 'vision2027', and the full https URL all work, with or without '.md'. Covers articles, data pages, campaign pages and the intelligence briefings (intelligence/facility/{slug}, intelligence/issue/{slug}). Long pages are truncated; use `offset` and `limit` to page through one. Pair with search_site() to find a page, then read it here rather than guessing its contents.

    Annotations the server declares

    • title: Get page
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_parole_statisticsGeorgia parole decisions by year — the series GPS assembled from the State Board of Pardons and Paroles' own annual reports, with the metric definitions and the instruments note th…No findings

    Why it is in this group

    • The name "get_parole_statistics" says "get": a word for reading.
    Description, as the server wrote it
    Georgia parole decisions by year — the series GPS assembled from the State Board of Pardons and Paroles' own annual reports, with the metric definitions and the instruments note that says how they were built. `metric` (exact name from the `metrics` list, e.g. 'cases_considered'), `from_year` / `to_year` (fiscal years) filter the series. Paged: `limit` (default 100 rows) and `offset`.

    Annotations the server declares

    • title: Get parole statistics
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_population_snapshotLatest GDC population snapshot (the weekly 'Friday report'): `total_in_gdc_custody` (every GDC bed type, including probation detention centers and RSAT), the jail backlog, and the …No findings

    Why it is in this group

    • The name "get_population_snapshot" says "get": a word for reading.
    Description, as the server wrote it
    Latest GDC population snapshot (the weekly 'Friday report'): `total_in_gdc_custody` (every GDC bed type, including probation detention centers and RSAT), the jail backlog, and the facility-type components. The total is the ONLY population figure; the components are parts of it, not alternative totals.

    Annotations the server declares

    • title: Get population snapshot
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_settlements_dataWhat Georgia has paid to settle prison death and injury claims — the 'What Georgia Pays' analysis of state settlement records, returned as the published markdown.No findings

    Why it is in this group

    • The name "get_settlements_data" says "get": a word for reading.
    Description, as the server wrote it
    What Georgia has paid to settle prison death and injury claims — the 'What Georgia Pays' analysis of state settlement records, returned as the published markdown.

    Annotations the server declares

    • title: Get settlements data
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_system_statisticsHeadline statistics for the Georgia prison system: population, mortality, demographics, facility counts, releases and health measures, with the update date and data source GPS asse…No findings

    Why it is in this group

    • The name "get_system_statistics" says "get": a word for reading.
    Description, as the server wrote it
    Headline statistics for the Georgia prison system: population, mortality, demographics, facility counts, releases and health measures, with the update date and data source GPS assembled them from.

    Annotations the server declares

    • title: Get system statistics
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • list_facilitiesList Georgia prison facilities with location, operator, security level, capacity, population, warden and latest food-safety score.No findings

    Why it is in this group

    • The name "list_facilities" says "list": a word for reading.
    Description, as the server wrote it
    List Georgia prison facilities with location, operator, security level, capacity, population, warden and latest food-safety score. Optional filters are applied to the public list after it is fetched: facility_type (e.g. 'State Prison', 'Transitional Center', 'County Prison'), county, name_contains, and active_only. Responses are paged: `limit` (default 25) and `offset`; `next_offset` says where the rest begins.

    Annotations the server declares

    • title: List facilities
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • list_historical_seriesGPS Historical Data (page: gps.press/historical-data/): the catalog of yearly series on Georgia's prisons, 1925-present.No findings

    Why it is in this group

    • The name "list_historical_series" says "list": a word for reading.
    Description, as the server wrote it
    GPS Historical Data (page: gps.press/historical-data/): the catalog of yearly series on Georgia's prisons, 1925-present. Each series is ONE publisher's measure (GDC and Board of Corrections annual reports, the Bureau of Justice Statistics, the State Board of Pardons and Paroles, DOJ, the AJC, UCLA Law Behind Bars, the GPS mortality registry) with its definition, coverage and caveats. Topics: deaths, homicides, suicides, violence, use_of_force, weapons, parole, time_served, lifers, population, capacity, budget, escapes, staffing. Never splice two publishers' series into one trend.

    Annotations the server declares

    • title: List historical series
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • list_intelligenceList GPS intelligence briefings — per-facility and per-issue analyses.No findings

    Why it is in this group

    • The name "list_intelligence" says "list": a word for reading.
    Description, as the server wrote it
    List GPS intelligence briefings — per-facility and per-issue analyses. `kind` filters to 'facility' or 'issue'; `contains` filters on the slug. Read any of them in full with get_page(), e.g. get_page('intelligence/facility/dooly-state-prison'). Both kinds are discovered from GPS's public intelligence index pages; if the issue hub cannot be read, `issues_note` says so in the payload.

    Annotations the server declares

    • title: List intelligence
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • search_historical_dataFind GPS Historical Data series and dated rule changes by words, e.g.No findings

    Why it is in this group

    • The name "search_historical_data" says "search": a word for reading.
    Description, as the server wrote it
    Find GPS Historical Data series and dated rule changes by words, e.g. "homicide", "parole", "life", "AIDS", "population", "90%".

    Annotations the server declares

    • title: Search historical data
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • search_quotesSearch GPS's published quote collection — statements from incarcerated people, families, officials and staff that GPS has already published.No findings

    Why it is in this group

    • The name "search_quotes" says "search": a word for reading.
    Description, as the server wrote it
    Search GPS's published quote collection — statements from incarcerated people, families, officials and staff that GPS has already published. `attribution_type` is 'named' or 'anonymous'. `category` is one of the published categories (call with no arguments and read the results, or see gps.press). Paginated: page starts at 1, per_page caps at 100.

    Annotations the server declares

    • title: Search quotes
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • search_siteSearch gps.press — articles, data pages, research library topics and facility pages — and get back ranked titles, URLs and summaries.No findings

    Why it is in this group

    • The name "search_site" says "search": a word for reading.
    Description, as the server wrote it
    Search gps.press — articles, data pages, research library topics and facility pages — and get back ranked titles, URLs and summaries. This reads the public /find/ results page. GPS publishes no JSON search API, so results are parsed out of the rendered page; treat the ranking as the site's own and follow each result's URL before citing it.

    Annotations the server declares

    • title: Search site
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false

This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.

Install

Pinned to version 1.0.0. Values in angle brackets are yours to fill in.

claude mcp add --transport http gps-public-data https://data.gps.press/mcp

Run in a terminal.

Claude Code permissions

Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.

.claude/settings.json
{
  "permissions": {
    "allow": [
      "mcp__gps-public-data__get_population_snapshot",
      "mcp__gps-public-data__get_system_statistics",
      "mcp__gps-public-data__list_facilities",
      "mcp__gps-public-data__get_facility_staff_roster",
      "mcp__gps-public-data__get_facility",
      "mcp__gps-public-data__get_parole_statistics",
      "mcp__gps-public-data__get_ocga_section",
      "mcp__gps-public-data__get_mortality_data",
      "mcp__gps-public-data__get_settlements_data",
      "mcp__gps-public-data__get_contraband_incidents",
      "mcp__gps-public-data__get_contraband_summary",
      "mcp__gps-public-data__get_facebook_posts",
      "mcp__gps-public-data__list_historical_series",
      "mcp__gps-public-data__get_historical_series",
      "mcp__gps-public-data__search_historical_data",
      "mcp__gps-public-data__get_historical_events",
      "mcp__gps-public-data__search_quotes",
      "mcp__gps-public-data__get_length_of_stay",
      "mcp__gps-public-data__get_drug_admissions",
      "mcp__gps-public-data__search_site",
      "mcp__gps-public-data__get_gps_guide",
      "mcp__gps-public-data__get_page",
      "mcp__gps-public-data__list_intelligence"
    ],
    "ask": [],
    "deny": []
  }
}

Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as gps-public-data. Review it before you use it.