Skip to main content
Glama
offendersearch

Offendersearch MCP Server

Official

Offendersearch MCP Server

Search all 58 US sex-offender registries — every US state, DC and the territories — from any MCP client: Claude Desktop, Claude Code, or any agent runtime that speaks the Model Context Protocol.

One tool call returns scored, de-duplicated, provenance-tagged records from a continuously updated national dataset with 100% US coverage. Built on the official Python mcp SDK (FastMCP).

Tools

Tool

What it does

search_offenders

Search every registry for one person/location — name, DOB, age, city/state/ZIP, street address, GIS radius, or free text. Returns scored matches with per-registry outcome (sourceStatus) and plain-language warnings.

batch_search

Up to 1,000 lookups in one call, row-in/row-out, each through the same engine as a single search.

get_registry_coverage

The public coverage catalog: every registry code, scope, legal status and health. No API key needed.

Results carry matchConfidence, matchBasis (why it matched), DOB verification state, aliases, addresses, offense detail, and a per-source citation with lastCheckedAt — so an agent can cite exactly which registry said what.

Related MCP server: @cyanheads/orcid-mcp-server

Auth — an API key, free to get

Create a key at offendersearch.app — it works immediately: 25 free searches, no card required.

  • Local (stdio): set OFFENDERSEARCH_API_KEY.

  • Remote (streamable-HTTP): each request forwards its own X-API-Key header — multi-tenant by design.

Quick start (Claude Desktop, local stdio)

python -m venv .venv && source .venv/bin/activate
pip install -r requirements.txt

claude_desktop_config.json:

{
  "mcpServers": {
    "offendersearch": {
      "command": "python",
      "args": ["/path/to/services/mcp-server/server.py"],
      "env": { "OFFENDERSEARCH_API_KEY": "os_live_..." }
    }
  }
}

Remote / self-hosted (streamable-HTTP)

MCP_TRANSPORT=streamable-http OFFENDERSEARCH_API_KEY="os_live_..." python server.py
# or: uvicorn server:http_app  (see Dockerfile)

Client config for a hosted instance (per-request key, no env secret):

{
  "mcpServers": {
    "offendersearch": {
      "url": "https://<your-host>/mcp",
      "headers": { "X-API-Key": "os_live_..." }
    }
  }
}

Example exchange

User: Is a John Doe, born 1980-04-12, on any registry in New Jersey?

Agent → search_offenders(first_name="John", last_name="Doe", dob="1980-04-12", state="NJ")

Agent: One candidate matched with a full date-of-birth confirmation (dobVerification: dob_match, confidence 1.0): John A. Doe, registered in NJ, with the official registry record linked. All 58 registries were searched to completion (sourcesIncomplete: 0).

Reading results responsibly

  • If counts.sourcesIncomplete > 0, the records are a lower bound — relay warnings[0] rather than reporting a clean "no match".

  • A match is a candidate, not an identification — verify DOB and photograph.

  • Results are public-record data and not a consumer report; do not use them for FCRA-covered decisions without appropriate process.

More

Offendersearch resources

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    A
    maintenance
    Enables searching and retrieving researcher profiles, works, affiliations, funding, and peer review records from the ORCID registry via MCP, supporting STDIO or Streamable HTTP.
    278 npm
    3
    Apache 2.0
  • A
    license
    A
    quality
    B
    maintenance
    Provides governed retrieval over MCP with hybrid search, strict confidence gating, and access control, exposing three read-only tools.
    3
    Apache 2.0