MCP HeartbeatTHE MCP OBSERVATORY
Public workspace

Explore

Evidence for your next connection.

Independent measurements of remote MCP servers. Every observation has a timestamp.

Read-only probes

MCP server · Knowledge & memory

Georgia Prisoners' Speak Public Data

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

Checks passed
12 / 22

2 failed · 8 not measured

Median response
557 ms

Median of successful probes over 7 days

30-day uptime
Not measured

Share of countable probes over 30 days, including daily rollups. Auth challenges are excluded.

Discovered tools
26

Tool definitions returned by this server

Independent monitoring

Health & checks

Status history

Responded

The server completed its last measured handshake. This is an observation, not a guarantee.

Last checked
Check summary by test group
Test areaPassedFailedUnmeasured
ConnectionCan a client connect and discover tools?
500
Reliability & speedDoes it respond consistently and quickly?
004
Access & authenticationWhat is required to use this server?
102
Tool qualityAre the tool definitions usable by an agent?
310
Publisher identityCan the publisher be traced to its source?
312

Unmeasured means there is not enough evidence to decide. How these checks work

Inspect individual checks 22 recorded

Core

  • Pass
    Reachable

    Latest probe returned HTTP 200 in 557 ms.

  • Pass
    Valid handshake

    protocolVersion 2025-11-25, serverInfo.name GPS Public.

  • Pass
    Lists tools

    tools/list returned 26 tools.

  • Pass
    Current protocol

    Negotiated 2025-11-25. The bar is 2025-06-18 or newer.

  • Pass
    HTTPS

    The endpoint URL is https.

Performance

  • Not measured
    Fast (p50)

    Median latency 557 ms over 1 samples in 7 days. The bar is 1000 ms. Need at least 5 samples.

  • Not measured
    Consistent (p95)

    95th percentile 557 ms over 1 samples in 7 days. The bar is 3000 ms. Need at least 20 samples.

  • Not measured
    Reliable (uptime)

    1 of 1 attempts returned a tool list in 30 days (100%). The bar is 99%. Need at least 30 samples.

  • Not measured
    Stable tool list

    Fewer than two successful probes in 30 days, so tool-list stability is not measured.

Access

  • Pass
    Open access

    tools/list succeeded with no credential, and the record declares none.

  • Not measured
    Standard auth

    Auth is not required, so the OAuth metadata check does not apply.

  • Not measured
    Free tier cited

    No publisher quote has been checked.

Tools

  • Pass
    Tools described

    Every tool description is at least 20 characters.

  • Pass
    Valid input schemas

    Every inputSchema is a JSON Schema object.

  • Fail
    Parameters documented

    0 of 74 parameters have a description (0%). The bar is 80%.

  • Pass
    Safety hints

    Every tool sets readOnlyHint or destructiveHint.

Publisher

  • Pass
    Verified namespace

    Listed in the Official MCP Registry.

  • Pass
    Website matches publisher

    The website host matches the reverse-domain namespace.

  • Fail
    Source repo linked

    No repository URL is on file.

  • Not measured
    Repo owner matches

    This namespace is not an io.github login, so the owner comparison does not apply.

  • Pass
    Recently updated

    Updated 2026-09-06T14:31:36.192602Z, within 180 days.

  • Not measured
    Open-source licence

    No GitHub repository to ask about a licence.

Start using Georgia Prisoners' Speak Public Data

Connect to this server

Choose your client, copy the configuration, then enable the server in your client’s MCP settings.

Run this command in your terminal, then restart Claude Code.

Claude Code

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

Capabilities

Tools 26

get_contraband_incidents

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.

Discovered
get_contraband_summary

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.

Discovered
get_drug_admissions

Admissions to Georgia prisons on drug offenses for the latest published report year, broken down by sex, age band and related measures.

Discovered
get_facebook_posts

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.

Discovered
get_facility

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.

Discovered
get_facility_staff_roster

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.

Discovered
get_gps_guide

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.

Discovered
get_health_staffing

Medical staffing in Georgia's prisons under the Department of Corrections' contract with Centurion of Georgia LLC: the hours the contract's staffing matrix requires vs the hours Centurion reports working, by prison, job and month, July-December 2025, plus the workbook's own understaffing-penalty calculation. From Centurion's "GA-MED Productive hours compared to Matrix" workbook, produced by GDC under an open-records request (R032595-101926, October 2026). No individuals are named. level: contract (system totals and quarterly penalty rows) | facility (one entry per prison, lowest share of contracted hours first; or one prison) | position (one prison by job, or a job across prisons) | matrix (the contracted staffing in force from March 1, 2026, Amendment 4's Exhibit 3.1: every site's full-time equivalents, or one site by shift and job). facility: a prison slug (dooly-state-prison), id or name fragment ('Walker'). position: e.g. 'RN', 'LPN', 'NP/PA'. month: YYYY-MM. Read the returned caveats: medical only (not mental health or dental); the penalty figures are the workbook's calculation and do not show whether GDC collected them.

Discovered
get_historical_events

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.

Discovered
get_historical_series

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.

Discovered
get_length_of_stay

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.

Discovered
get_mortality_data

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.

Discovered
get_ocga_section

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'.

Discovered
get_page

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.

Discovered
get_parole_statistics

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`.

Discovered
get_population_snapshot

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.

Discovered
get_public_records

Open-records requests Georgia Prisoners' Speak made to Georgia agencies under the Georgia Open Records Act, published with every document the agency released, so a cited source can be checked. Without ref: the list of published requests (reference, title, agency, dates, status, document count). With ref (e.g. 'R032544-101826'): the request as sent, the agency's answers and fee estimate, and every file with its URL, page count and SHA-256. q searches titles, summaries and request text; agency filters by agency or its short name (GDC). Example: ref='R032544-101826' is GDC's drone-detection purchase orders (AirWarden, 2017-2025). Reader page: https://gps.press/records/

Discovered
get_settlements_data

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.

Discovered
get_system_statistics

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.

Discovered
list_facilities

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.

Discovered
list_historical_series

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.

Discovered
list_intelligence

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.

Discovered
search_historical_data

Find GPS Historical Data series and dated rule changes by words, e.g. "homicide", "parole", "life", "AIDS", "population", "90%".

Discovered
search_public_records

Full-text search INSIDE the documents Georgia agencies released to Georgia Prisoners' Speak under the Georgia Open Records Act and GPS has published at https://gps.press/records/ (contracts, purchase orders, price lists, inspection reports, policies, staffing matrices and more). Returns each matching file with its record, public download URL, number of occurrences and up to three passages with the page they fall on. q: words to find (3+ characters, matched as typed, case-insensitive), e.g. "AirWarden", "Medically Intensive Infirmary", "per offender per month". ref: limit to one record, e.g. 'R032595-101926'. Scanned pages are searched through GPS's OCR text where it exists. Use get_public_records for the record itself (request as sent, agency answers, cost, every file).

Discovered
search_quotes

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.

Discovered
search_site

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.

Discovered

Recent measurements

Probe history

View status
Latest stored probes. Raw probe rows are kept for 14 days.
CheckedResultResponseTools
Connected557 ms26