mcp-registry/app.offendersearch/offendersearch · v1.30.0
As of 2026-10-22 10:48 UTC, the Offendersearch MCP server is up with a Glimind reliability score of 97/100 (grade A). Over the last 30 days it answered 100% of Glimind's liveness checks. It had 1 outage in 90 days, with a median recovery of 4 minutes.
Search US sex-offender registries and criminal records, with per-source citations.
Claude Code
claude mcp add --transport http offendersearch-mcp-server https://mcp.offendersearch.app/mcp
Claude Desktop · Windsurf · Cline (mcpServers JSON)
{
"mcpServers": {
"offendersearch-mcp-server": {
"type": "http",
"url": "https://mcp.offendersearch.app/mcp"
}
}
}
Third-party server, listed as discovered. Review its source before installing.
1 tool definition(s) exceed ~1,200 tokens each (largest: search_offenders, ~1,300).
Move long reference material out of descriptions (link a doc or expose a resource), drop repeated examples, and collapse large enums. Trimming these to ~600 tokens saves ~700 tokens every session. How to fix →
10 of 10 tool(s) carry no readOnlyHint/destructiveHint annotations.
Annotate read-only tools with {"readOnlyHint": true}. Agents and gateways can then run them without a confirmation prompt, and route around destructive ones. How to fix →
No tool declares an outputSchema.
Declare outputSchema and return structuredContent (MCP 2025-06-18+). Agents can then parse results without guessing, and chain tools reliably. How to fix →
Paste-ready definitions with the problems above fixed. Changes marked verify need a human look. All of them as JSON: /v1/readiness/mcp-registry%2Fapp.offendersearch%2Foffendersearch/fixes
{
"name": "batch_search",
"description": "Run many person/location lookups in one call (row-in / row-out).\n\n Each row goes through the SAME engine as search_offenders, so a row's records\n are identical to what a single search would return. A row that fails is\n reported with status='error' in place and never aborts the batch. Max 1000 rows.\n\n Returns: { count, results: [ { index, status, counts{records,sourcesQueried,\n sourcesIncomplete}, warnings: [str], records: [Record], error? } ] } in input\n order. ★ A row with `co",
"inputSchema": {
"type": "object",
"title": "batch_searchArguments",
"required": [
"queries"
],
"properties": {
"match": {
"enum": [
"strict",
"balanced",
"broad"
],
"type": "string",
"title": "Match",
"default": "balanced",
"description": "Fuzzy tolerance applied to every row (see search_offenders)."
},
"queries": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": true
},
"title": "Queries",
"description": "List of query objects (max 1000). Each may set any of: firstName, lastName, dob (YYYY-MM-DD), age, city, state, zipcode, address, lat, lng, radiusMiles, q. One row in = one result out, in input order."
},
"extensive": {
"type": "boolean",
"title": "Extensive",
"default": false,
"description": "Request extensive detail (offenses[], stateData, images) for every row."
},
"freshness": {
"enum": [
"daily",
"weekly"
],
"type": "string",
"title": "Freshness",
"default": "daily",
"description": "Cache/pricing tier applied to every row: daily=<=24h (default), weekly=<=7d."
},
"jurisdictions": {
"anyOf": [
{
"type": "array",
"items": {
"type": "string"
}
},
{
"type": "null"
}
],
"title": "Jurisdictions",
"default": null,
"description": "Registry codes applied to EVERY row (e.g. ['FL','TX']). Omit = all 58 registries."
},
"location_scoped": {
"type": "boolean",
"title": "Location Scoped",
"default": false,
"description": "Apply per-state scoping to every row (see search_offenders)."
}
}
},
"annotations": {
"readOnlyHint": true
}
}{
"name": "get_criminal_coverage",
"description": "List the criminal-record jurisdictions searched, with kind and status.\n\n Use it to discover which states and counties are reachable and which are\n answering today, before relying on an empty result. Depth is uneven by design:\n counties publish independently, so a state with many county jurisdictions is\n not \"better covered\" than one that publishes a single statewide source — it is\n differently structured.\n\n Returns the jurisdiction roster; each entry carries its code, the state",
"inputSchema": {
"type": "object",
"title": "get_criminal_coverageArguments",
"properties": {}
},
"annotations": {
"readOnlyHint": true
}
}{
"name": "get_registry_coverage",
"description": "List every registry we cover plus its scope, legal status, and health.\n\n Public coverage catalog (no API key required). Use it to discover the\n `jurisdictions` codes accepted by search_offenders / batch_search and to\n check per-registry freshness/health before relying on a result.\n\n Returns: { count, registries: [ SourceInfo ] } where each SourceInfo is:\n - id: registry code (e.g. 'IL', 'TX', 'PR')\n - name: human-readable registry name\n - covers: [state codes] a regist",
"inputSchema": {
"type": "object",
"title": "get_registry_coverageArguments",
"properties": {}
},
"annotations": {
"readOnlyHint": true
}
}Get an email or webhook when this server's readiness drops by 10+ points, tool-poisoning text appears, or a tool breaks:
curl -X POST https://glimind.com/v1/subscriptions -H 'content-type: application/json' -d '{"tools":["mcp-registry/app.offendersearch/offendersearch"],"email":"[email protected]"}'Agents: watch_tool({"toolId": "mcp-registry/app.offendersearch/offendersearch"}) over MCP.
search_offenders ~1,300 tokensmap_route ~1,163 tokensmap_area ~731 tokensmap_viewport ~677 tokenssearch_criminal ~550 tokensStatic checks of the advertised tools/list (schema, descriptions, annotations, tool-poisoning patterns, names, size) plus observed protocol, uptime, latency and contract changes. Read-only: no tool is ever called. Weights: schema 15, docs 20, safety 15, efficiency 15, compatibility 15, protocol 5, reliability 10, stability 5. Token counts are estimates (~3.6 characters per token).
Operator? Fix these, then re-check live. Embed the readiness badge:
[](https://glimind.com/server/mcp-registry%2Fapp.offendersearch%2Foffendersearch?ref=badge)
<a href="https://glimind.com/server/mcp-registry%2Fapp.offendersearch%2Foffendersearch?ref=badge"><img src="https://glimind.com/v1/readiness/badge/mcp-registry%2Fapp.offendersearch%2Foffendersearch.svg" alt="MCP agent-readiness"></a>
.. image:: https://glimind.com/v1/readiness/badge/mcp-registry%2Fapp.offendersearch%2Foffendersearch.svg :target: https://glimind.com/server/mcp-registry%2Fapp.offendersearch%2Foffendersearch?ref=badge :alt: MCP agent-readiness
Glimind records every version of this server's tool definitions in a signed, append-only transparency log. Current manifest sha256:a91cfcc793b344dd…, first seen 2026-10-18, included at leaf 22386 of 45,498. Version history · verify what your client received.
Compare: most reliable search servers · most reliable knowledge servers · most reliable data servers
Glimind tells agents whether a server is up right now and how to call it, then fails over to a live alternative when it isn't.
Claude Code
claude mcp add --transport http glimind https://glimind.com/mcp
Claude Desktop · Windsurf · Cline (mcpServers JSON)
{
"mcpServers": {
"glimind": {
"type": "http",
"url": "https://glimind.com/mcp"
}
}
}
As of 2026-10-22 10:48 UTC, the Offendersearch MCP server is up with a Glimind reliability score of 97/100 (grade A). Over the last 30 days it answered 100% of Glimind's liveness checks. It had 1 outage in 90 days, with a median recovery of 4 minutes.
Offendersearch MCP server advertises 10 tools, including batch_search, get_criminal_coverage, get_registry_coverage, map_area, map_group.
Point your MCP client at this streamable-http endpoint: https://mcp.offendersearch.app/mcp
Glimind scanned all 10 tool definitions for tool-poisoning patterns — hidden or invisible characters, instructions that override the model, concealment from the user, requests to read credential or MCP config files, conversation exfiltration and cross-tool shadowing — and found none. This checks what the server tells the model, not what its code does; review the source before granting access to sensitive data.
Status page: 90-day uptime, every outage and how long it lasted.
Claim this listing to get the Verified operator marker, a remediation checklist and owner analytics, or embed the live badge from any of the tool pages above. Maintainers: alerts, deploy attestation and monthly reports.
Status is an automated estimate from Glimind's liveness checks (handshake and tool listing only; no tool is ever called) and may lag or differ from your network. Glimind is not affiliated with this server or its operator. Operator? Request a correction or opt out at https://glimind.com/opt-out.