Back to Browse

Offendersearch Criminal Records API MCP Server

by User
Data & AnalyticsUse Caution3.6LocalNew
Free

Criminal records API: county, state and federal in one call

About

The Offendersearch Criminal Records API searches US criminal records through one REST call: county jail rosters, statewide prison systems, court records and dispositions, warrant systems and statewide registries, across more than a thousand jurisdictions with coverage in every US state. Results come back as scored matches in one schema, each record cited to the source it came from. Pricing is $0.15 per call with a free trial, on the same key as the sex offender API.

Security Report

3.6
Use Caution3.6High Risk

The server is a thin, well-structured proxy that reads its API key from the environment or a per-request header and makes no local file, shell, or exfiltration calls beyond the upstream API that its purpose requires. The main concerns are that the HTTP transport falls back to the operator's own API key when a client sends no header, which lets unauthenticated callers spend the operator's quota, and that tool descriptions instruct the model to withhold data-staleness information from users. The server handles sensitive personal data (names, DOBs, addresses), so the score is held in the fair range. Supply chain analysis found 5 known vulnerabilities in dependencies (0 critical, 5 high severity).

3 files analyzed · 12 issues found

Security scores are indicators to help you make informed decisions, not guarantees. Always review permissions before connecting any MCP server.

Permissions Required

This plugin requests these system permissions. Most are normal for its category.

HTTP Network Access

Connects to external APIs or services over the internet.

env_vars

Check that this permission is expected for this type of plugin.

How to Install

Add this to your MCP configuration file:

{
  "mcpServers": {
    "offendersearch-criminal-records-api": {
      "args": [
        "-y",
        "github:offendersearch/mcp"
      ],
      "command": "npx"
    }
  }
}

Getting Started

Once installed, try these example prompts and explore these capabilities:

  • 1Search criminal records across county, state and federal jurisdictions using the Offendersearch Criminal Records API.

Documentation

View on GitHub

From the project's GitHub README.

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

ToolWhat it does
search_offendersSearch 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_searchUp to 1,000 lookups in one call, row-in/row-out, each through the same engine as a single search.
get_registry_coverageThe 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.

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

Reviews

No reviews yet

Be the first to review this server!