Service Status: All Systems Operational — Safeguarded by our multi-cloud infrastructure.

The Offenders.io MCP Server lets AI assistants like Claude, Cursor, and other MCP-compatible clients search the sex offender registry directly. No API key required for anonymized data.

Quick Start

Point any MCP client to:

https://mcp.offenders.io/mcp

Claude Desktop — add to your config:

// ~/Library/Application Support/Claude/claude_desktop_config.json { "mcpServers": { "offenders": { "command": "npx", "args": ["mcp-remote", "https://mcp.offenders.io/mcp"] } } }

Cursor / Other MCP Clients — enter the URL https://mcp.offenders.io/mcp in your MCP server settings.

Available Tools

search_offenders_by_location

Search for registered sex offenders near a GPS coordinate.

Parameters:
lat (number) — Latitude
lng (number) — Longitude
radius (number) — Radius in miles (default: 1)
Returns: Returns anonymized offender records: age, sex, race, risk level, offenses, ZIP code. Up to 5 pages of results.

get_offender_stats

Get a quick count of offenders near a location.

Parameters:
lat (number) — Latitude
lng (number) — Longitude
radius (number) — Radius in miles (default: 1)
Returns: Returns approximate total count without detailed records.

api_info

Get information about the full Offenders.io API.

Returns: Returns API capabilities, pricing, and documentation links.

Example Prompts

Once connected, try asking your AI assistant:

Data & Limitations

The MCP server provides anonymized data from the lite API — no names or photos. For full offender details including names, photos, and addresses, use the REST API with a paid API key.

Live Example

Here's what a real MCP interaction looks like when you ask Claude about sex offenders near a location:

// You ask Claude: "Are there sex offenders within 1 mile of 34.0522, -118.2437?" // Claude calls the MCP tool automatically: Tool: search_offenders_by_location Input: { "lat": 34.0522, "lng": -118.2437, "radius": 1 } // MCP server returns anonymized results: { "total": 47, "offenders": [ { "age": 42, "sex": "Male", "risk": "Moderate", "zip": "90012" }, { "age": 55, "sex": "Male", "risk": "High", "zip": "90013" }, // ... 45 more results ] } // Claude summarizes the results in natural language

More example prompts to try:

Need Full Access?

Get names, photos, and complete records with our REST API. First 50 requests free.

Get API Key

Or follow our step-by-step build guide