{
  "ok": true,
  "resource": {
    "id": "RES_01252E32DD58",
    "resource_type": "mcp_server",
    "canonical_url": "https://registry.modelcontextprotocol.io/v0.1/servers/Offendersearch/versions/1.29.1",
    "name": "Offendersearch",
    "summary_en": "Search US sex-offender registries and criminal records, with per-source citations.",
    "summary_zh": "检索美国性犯罪者登记与刑事记录，覆盖全州及联邦来源，并附逐源引用。",
    "description_en": "Offendersearch searches US sex-offender registries and criminal records across all 58 registries and multiple criminal-justice sources. It returns normalized records with per-source citations and coverage metadata. Use it for background checks or locating registered individuals; note that partial results may undercount when sources are incomplete.",
    "description_zh": "Offendersearch 可检索美国性犯罪者登记册及刑事记录，覆盖全部 58 个登记处及多个刑事司法来源。它返回标准化记录，并附逐源引用与覆盖元数据。适用于背景调查或定位登记人员；注意当来源不完整时，部分结果可能低估数量。",
    "provider_name": "app.offendersearch",
    "homepage_url": "https://offendersearch.app/",
    "endpoint_url": "https://mcp.offendersearch.app/mcp",
    "source_url": "https://github.com/Clavaa/offendersearch-quickstart",
    "icon_url": null,
    "cover_image_url": null,
    "capabilities": [
      "search.people",
      "search.criminal-records",
      "retrieve.coverage-metadata"
    ],
    "categories": [
      "search-research"
    ],
    "industries": [
      "legal",
      "public-sector"
    ],
    "protocols": [
      "mcp"
    ],
    "auth": {
      "type": "unknown"
    },
    "pricing": {
      "model": "unknown"
    },
    "input_schema": {},
    "output_schema": {},
    "metadata": {
      "content_language": "en",
      "translation_status": "luna-reviewed",
      "official_registry": {
        "version": "1.29.1",
        "packages": [],
        "remotes": []
      },
      "review_gate": {
        "passed": true,
        "reasons": [],
        "policy_version": "review-gate-v1",
        "evaluated_at": "2026-09-04T04:27:01.453Z"
      },
      "catalog_profile": {
        "version": "catalog-profile-v1",
        "primary_category": "search-research",
        "integrations": [
          "GitHub"
        ],
        "use_cases": {
          "en": [
            "Search sex-offender registries by name, location, or jurisdiction",
            "Search criminal records including jail bookings, prison custody, court cases, and warrants"
          ],
          "zh": [
            "按姓名、地点或辖区检索性犯罪者登记册",
            "检索刑事记录，包括监狱收监、州监狱羁押、法院案件和逮捕令"
          ]
        },
        "categories": [
          "search-research"
        ],
        "industries": [
          "legal",
          "public-sector"
        ],
        "copy": {
          "source_language": "en",
          "summary_zh_state": "present",
          "description_zh_state": "present",
          "description_en_state": "present"
        }
      }
    },
    "latest_version": "1.29.1",
    "status": "listed",
    "health_status": "healthy",
    "source_kind": "imported",
    "source_agent": "registry.modelcontextprotocol.io",
    "trust": {
      "signal": "none",
      "reason": null,
      "signals": {
        "yellow": 0,
        "red": 0
      }
    },
    "review_summary": {
      "method_version": "capability-evidence-v3",
      "capability_definition": "strong",
      "contract_completeness": "strong",
      "access_friction": "unknown",
      "operational_transparency": "strong",
      "evidence_strength": "protocol_inspected",
      "use_readiness": "guided_use",
      "reviewed_at": "2026-09-04T04:32:27.035Z"
    },
    "experience_count": 0,
    "verified_experience_count": 0,
    "usage_count": 0,
    "success_rate": null,
    "first_seen_at": "2026-09-03T13:57:15.042Z",
    "last_seen_at": "2026-09-04T04:32:26.233Z",
    "published_at": "2026-09-03T13:57:15.042Z",
    "created_at": "2026-09-03T13:57:15.042Z",
    "updated_at": "2026-09-04T04:32:27.035Z",
    "api_url": "https://aiworkshub.io/api/v1/resources/RES_01252E32DD58",
    "reviews_url": "https://aiworkshub.io/api/v1/resources/RES_01252E32DD58/reviews",
    "public_url": "https://aiworkshub.io/resources/RES_01252E32DD58",
    "distribution": {
      "canonical_identity": "https://registry.modelcontextprotocol.io/v0.1/servers/Offendersearch/versions/1.29.1",
      "syndicatable": true,
      "origins": [
        {
          "registry_url": "https://registry.modelcontextprotocol.io/",
          "upstream_resource_id": "Offendersearch@1.29.1",
          "upstream_record_url": "https://registry.modelcontextprotocol.io/v0.1/servers/Offendersearch/versions/1.29.1",
          "relation": "syndicated",
          "metadata": {
            "source": "official-mcp-registry"
          },
          "first_seen_at": "2026-09-03T13:57:15.042Z",
          "last_seen_at": "2026-09-04T04:32:26.233Z"
        }
      ]
    },
    "tools": [
      {
        "name": "batch_search",
        "title_en": "Batch Search",
        "title_zh": "批量搜索",
        "description_en": "Run many person/location lookups in one call. Each row goes through the same engine as search_offenders. Max 1000 rows.",
        "description_zh": "在一次调用中执行多个人/地点查询。每一行都经过与search_offenders相同的引擎。最多1000行。",
        "input_schema": {
          "properties": {
            "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.",
              "items": {
                "additionalProperties": true,
                "type": "object"
              },
              "title": "Queries",
              "type": "array"
            },
            "jurisdictions": {
              "anyOf": [
                {
                  "items": {
                    "type": "string"
                  },
                  "type": "array"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "description": "Registry codes applied to EVERY row (e.g. ['FL','TX']). Omit = all 58 registries.",
              "title": "Jurisdictions"
            },
            "match": {
              "default": "balanced",
              "description": "Fuzzy tolerance applied to every row (see search_offenders).",
              "enum": [
                "strict",
                "balanced",
                "broad"
              ],
              "title": "Match",
              "type": "string"
            },
            "freshness": {
              "default": "daily",
              "description": "Cache/pricing tier applied to every row: daily=<=24h (default), weekly=<=7d.",
              "enum": [
                "daily",
                "weekly"
              ],
              "title": "Freshness",
              "type": "string"
            },
            "location_scoped": {
              "default": false,
              "description": "Apply per-state scoping to every row (see search_offenders).",
              "title": "Location Scoped",
              "type": "boolean"
            },
            "extensive": {
              "default": false,
              "description": "Request extensive detail (offenses[], stateData, images) for every row.",
              "title": "Extensive",
              "type": "boolean"
            }
          },
          "required": [
            "queries"
          ],
          "title": "batch_searchArguments",
          "type": "object"
        },
        "output_schema": {},
        "unit_kind": "mcp_tool",
        "effect": "read",
        "open_world": false,
        "idempotency": "idempotent",
        "confirmation": "explicit policy",
        "evidence_ids": [
          "protocol-tools"
        ],
        "runtime_auth": {},
        "pricing": {},
        "metadata": {}
      },
      {
        "name": "get_criminal_coverage",
        "title_en": "Get Criminal Coverage",
        "title_zh": "获取刑事覆盖范围",
        "description_en": "List the criminal-record jurisdictions searched, with kind and status.",
        "description_zh": "列出所搜索的刑事记录辖区及其类型和状态。",
        "input_schema": {
          "properties": {},
          "title": "get_criminal_coverageArguments",
          "type": "object"
        },
        "output_schema": {},
        "unit_kind": "mcp_tool",
        "effect": "read",
        "open_world": false,
        "idempotency": "idempotent",
        "confirmation": "explicit policy",
        "evidence_ids": [
          "protocol-tools"
        ],
        "runtime_auth": {},
        "pricing": {},
        "metadata": {}
      },
      {
        "name": "get_registry_coverage",
        "title_en": "Get Registry Coverage",
        "title_zh": "获取登记处覆盖范围",
        "description_en": "List every registry covered plus its scope, legal status, and health. Public coverage catalog, no API key required.",
        "description_zh": "列出所有覆盖的登记处及其范围、法律状态和健康状况。公开覆盖目录，无需API密钥。",
        "input_schema": {
          "properties": {},
          "title": "get_registry_coverageArguments",
          "type": "object"
        },
        "output_schema": {},
        "unit_kind": "mcp_tool",
        "effect": "read",
        "open_world": false,
        "idempotency": "idempotent",
        "confirmation": "explicit policy",
        "evidence_ids": [
          "protocol-tools"
        ],
        "runtime_auth": {},
        "pricing": {},
        "metadata": {}
      },
      {
        "name": "search_criminal",
        "title_en": "Search Criminal Records",
        "title_zh": "搜索刑事记录",
        "description_en": "Search US criminal records including county jail bookings, state prison custody, court cases, and warrants. A surname is required.",
        "description_zh": "搜索美国刑事记录，包括县监狱收监、州监狱羁押、法院案件和逮捕令。必须提供姓氏。",
        "input_schema": {
          "properties": {
            "lastName": {
              "description": "REQUIRED surname. The criminal corpus refuses an unbounded query — a name is the field that cannot be enumerated.",
              "title": "Lastname",
              "type": "string"
            },
            "firstName": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "description": "Given name. Strongly recommended: a bare common surname returns thousands.",
              "title": "Firstname"
            },
            "dob": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "description": "Date of birth, YYYY-MM-DD. The single strongest disambiguator.",
              "title": "Dob"
            },
            "birthYear": {
              "anyOf": [
                {
                  "type": "integer"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "description": "Birth year alone, when a full DOB is unknown.",
              "title": "Birthyear"
            },
            "age": {
              "anyOf": [
                {
                  "type": "integer"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "description": "Approximate current age, when neither DOB nor birth year is known.",
              "title": "Age"
            },
            "state": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "description": "2-letter state code (e.g. 'TX'). Narrows to that state's jurisdictions.",
              "title": "State"
            },
            "county": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "description": "County name, to narrow within a state.",
              "title": "County"
            },
            "limit": {
              "anyOf": [
                {
                  "maximum": 200,
                  "minimum": 1,
                  "type": "integer"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "description": "Max records to return. Default 50.",
              "title": "Limit"
            }
          },
          "required": [
            "lastName"
          ],
          "title": "search_criminalArguments",
          "type": "object"
        },
        "output_schema": {},
        "unit_kind": "mcp_tool",
        "effect": "read",
        "open_world": false,
        "idempotency": "idempotent",
        "confirmation": "explicit policy",
        "evidence_ids": [
          "protocol-tools"
        ],
        "runtime_auth": {},
        "pricing": {},
        "metadata": {}
      },
      {
        "name": "search_offenders",
        "title_en": "Search Offenders",
        "title_zh": "搜索性犯罪者",
        "description_en": "Search US sex-offender registries for one person and/or location. Fans out across all 58 registries, de-duplicates, and scores matches. Returns normalized records with source status and warnings.",
        "description_zh": "在美国性犯罪者登记册中按个人和/或地点进行搜索。覆盖全部58个登记处，去重并评分匹配。返回标准化记录及来源状态和警告。",
        "input_schema": {
          "properties": {
            "first_name": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "description": "Given name, e.g. 'John'.",
              "title": "First Name"
            },
            "last_name": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "description": "Surname — the primary match key, e.g. 'Smith'.",
              "title": "Last Name"
            },
            "dob": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "description": "Date of birth 'YYYY-MM-DD'. Improves match precision; drives dobVerification (dob_match / year_match).",
              "title": "Dob"
            },
            "age": {
              "anyOf": [
                {
                  "maximum": 130,
                  "minimum": 0,
                  "type": "integer"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "description": "Age filter, used when DOB is unknown. Matched +/-1 year for birthday drift.",
              "title": "Age"
            },
            "city": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "description": "Residence city filter.",
              "title": "City"
            },
            "state": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "description": "2-letter state/territory code (e.g. 'IL', 'PR'), or the full name. A residence FILTER — it does NOT change which registries run; all 58 are still searched. It filters as a UNION: a record is kept when it has an address in that state OR that state's registry is the one holding it. Each record carries `registrationState` and `addressStates` so you can tell which half matched; for the registration half alone, pass `jurisdictions` instead.",
              "title": "State"
            },
            "zipcode": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "description": "Residence ZIP (first 5 digits used).",
              "title": "Zipcode"
            },
            "address": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "description": "Fuzzy street-address filter (every token must appear in some record address).",
              "title": "Address"
            },
            "lat": {
              "anyOf": [
                {
                  "type": "number"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "description": "Latitude for a GIS radius search (pair with lng).",
              "title": "Lat"
            },
            "lng": {
              "anyOf": [
                {
                  "type": "number"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "description": "Longitude for a GIS radius search (pair with lat).",
              "title": "Lng"
            },
            "radius_miles": {
              "anyOf": [
                {
                  "exclusiveMinimum": 0,
                  "maximum": 100,
                  "type": "number"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "description": "GIS radius in miles around lat/lng. Defaults to 1 when a point is given; capped at 100.",
              "title": "Radius Miles"
            },
            "q": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "description": "Free-text search across name/alias/address/city/state/zip (all tokens must appear).",
              "title": "Q"
            },
            "jurisdictions": {
              "anyOf": [
                {
                  "items": {
                    "type": "string"
                  },
                  "type": "array"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "description": "Registry codes to query (e.g. ['IL','TX']). Omit/null = ALL 58 registries. See get_registry_coverage for codes.",
              "title": "Jurisdictions"
            },
            "match": {
              "default": "balanced",
              "description": "Fuzzy tolerance: strict=exact; balanced=nicknames/variants/initials/typos on first name, exact last; broad=also prefix/typo on last name.",
              "enum": [
                "strict",
                "balanced",
                "broad"
              ],
              "title": "Match",
              "type": "string"
            },
            "freshness": {
              "default": "daily",
              "description": "Cache/pricing tier: daily=<=24h (default), weekly=<=7d.",
              "enum": [
                "daily",
                "weekly"
              ],
              "title": "Freshness",
              "type": "string"
            },
            "location_scoped": {
              "default": false,
              "description": "OPT-IN ONLY, and never inferred from `state`. If true AND a state is set, run only the registries covering that state instead of all 58. It is a cost knob that COSTS RECALL: anyone registered by another state's registry while residing in the requested state is excluded (7.0% of records). The response reports counts.sourcesSkippedByScope and a NARROWED SEARCH warning when it applies. Leave it false unless the caller explicitly wants the cheaper, narrower search.",
              "title": "Location Scoped",
              "type": "boolean"
            },
            "extensive": {
              "default": false,
              "description": "If true, request extensive detail (retains offenses[], stateData, images). A light call drops them.",
              "title": "Extensive",
              "type": "boolean"
            },
            "deadline_ms": {
              "default": 120000,
              "description": "Max time to wait, in ms (default 120000 / 2 min). Lower for a faster bounded response; partial results return status='partial'.",
              "exclusiveMinimum": 0,
              "title": "Deadline Ms",
              "type": "integer"
            }
          },
          "title": "search_offendersArguments",
          "type": "object"
        },
        "output_schema": {},
        "unit_kind": "mcp_tool",
        "effect": "read",
        "open_world": false,
        "idempotency": "idempotent",
        "confirmation": "explicit policy",
        "evidence_ids": [
          "protocol-tools"
        ],
        "runtime_auth": {},
        "pricing": {},
        "metadata": {}
      }
    ],
    "review_profile": {
      "schema_version": "aiworkshub.resource-review/0.2",
      "method_version": "capability-evidence-v3",
      "review_state": {
        "identity": "verified",
        "source": "verified",
        "connectivity": "verified",
        "contract": "strong",
        "safe_use": "untested",
        "real_use": "unobserved"
      },
      "assessment": {
        "capability_definition": "strong",
        "contract_completeness": "strong",
        "access_friction": "unknown",
        "operational_transparency": "strong",
        "evidence_strength": "protocol_inspected",
        "use_readiness": "guided_use"
      },
      "profile": {
        "capabilities": [
          {
            "id": "search.people",
            "weight": 90,
            "confidence": 95,
            "evidence_ids": [
              "protocol-tools"
            ]
          },
          {
            "id": "search.criminal-records",
            "weight": 80,
            "confidence": 90,
            "evidence_ids": [
              "protocol-tools"
            ]
          },
          {
            "id": "retrieve.coverage-metadata",
            "weight": 60,
            "confidence": 90,
            "evidence_ids": [
              "protocol-tools"
            ]
          }
        ],
        "domains": [
          {
            "id": "legal",
            "weight": 80,
            "confidence": 90,
            "evidence_ids": [
              "source-record"
            ]
          },
          {
            "id": "public-sector",
            "weight": 70,
            "confidence": 80,
            "evidence_ids": [
              "source-record"
            ]
          }
        ],
        "workflow_roles": [
          "discover",
          "retrieve"
        ]
      },
      "catalog_profile": {
        "version": "catalog-profile-v1",
        "primary_category": "search-research",
        "integrations": [
          "GitHub"
        ],
        "use_cases": {
          "en": [
            "Search sex-offender registries by name, location, or jurisdiction",
            "Search criminal records including jail bookings, prison custody, court cases, and warrants"
          ],
          "zh": [
            "按姓名、地点或辖区检索性犯罪者登记册",
            "检索刑事记录，包括监狱收监、州监狱羁押、法院案件和逮捕令"
          ]
        }
      },
      "capability_units": [
        {
          "id": "tool:search_offenders",
          "kind": "mcp_tool",
          "capability_id": "search.people",
          "effect": "read",
          "open_world": false,
          "idempotency": "idempotent",
          "confirmation": "explicit policy",
          "input_contract": "typed",
          "output_contract": "typed_envelope_dynamic_result",
          "accepts": [
            "person query",
            "location query"
          ],
          "produces": [
            "offender records",
            "source status",
            "warnings"
          ],
          "runtime_auth": {},
          "pricing": {},
          "evidence_ids": [
            "protocol-tools"
          ],
          "metadata": {}
        },
        {
          "id": "tool:batch_search",
          "kind": "mcp_tool",
          "capability_id": "search.people",
          "effect": "read",
          "open_world": false,
          "idempotency": "idempotent",
          "confirmation": "explicit policy",
          "input_contract": "typed",
          "output_contract": "typed_envelope_dynamic_result",
          "accepts": [
            "array of person/location queries"
          ],
          "produces": [
            "array of search results"
          ],
          "runtime_auth": {},
          "pricing": {},
          "evidence_ids": [
            "protocol-tools"
          ],
          "metadata": {}
        },
        {
          "id": "tool:search_criminal",
          "kind": "mcp_tool",
          "capability_id": "search.criminal-records",
          "effect": "read",
          "open_world": false,
          "idempotency": "idempotent",
          "confirmation": "explicit policy",
          "input_contract": "typed",
          "output_contract": "typed_envelope_dynamic_result",
          "accepts": [
            "person query"
          ],
          "produces": [
            "criminal records",
            "record type",
            "source status"
          ],
          "runtime_auth": {},
          "pricing": {},
          "evidence_ids": [
            "protocol-tools"
          ],
          "metadata": {}
        },
        {
          "id": "tool:get_registry_coverage",
          "kind": "mcp_tool",
          "capability_id": "retrieve.coverage-metadata",
          "effect": "read",
          "open_world": false,
          "idempotency": "idempotent",
          "confirmation": "explicit policy",
          "input_contract": "typed",
          "output_contract": "typed_envelope_dynamic_result",
          "accepts": [],
          "produces": [
            "registry coverage list"
          ],
          "runtime_auth": {},
          "pricing": {},
          "evidence_ids": [
            "protocol-tools"
          ],
          "metadata": {}
        },
        {
          "id": "tool:get_criminal_coverage",
          "kind": "mcp_tool",
          "capability_id": "retrieve.coverage-metadata",
          "effect": "read",
          "open_world": false,
          "idempotency": "idempotent",
          "confirmation": "explicit policy",
          "input_contract": "typed",
          "output_contract": "typed_envelope_dynamic_result",
          "accepts": [],
          "produces": [
            "criminal coverage list"
          ],
          "runtime_auth": {},
          "pricing": {},
          "evidence_ids": [
            "protocol-tools"
          ],
          "metadata": {}
        }
      ],
      "access": {},
      "operational_flags": [],
      "trust": {
        "signal": "none",
        "evidence_ids": [],
        "reason": null
      },
      "fit": {
        "good_for": [
          "background checks",
          "locating registered individuals"
        ],
        "not_for": [
          "when sources are incomplete, results may undercount"
        ]
      },
      "evidence": [
        {
          "id": "source-record",
          "type": "registry_record",
          "source": "https://github.com/Clavaa/offendersearch-quickstart",
          "observation": "MCP source record for Offendersearch; version 1.29.1.",
          "observed_at": null,
          "payload": {}
        },
        {
          "id": "protocol-tools",
          "type": "protocol_observation",
          "source": "https://mcp.offendersearch.app/mcp#tools/list",
          "observation": "5 tools were returned by MCP discovery; 5 were retained for review.",
          "observed_at": "2026-09-04T04:26:51.849Z",
          "payload": {}
        }
      ],
      "unknowns": [
        "Authentication method",
        "Pricing model",
        "Exact output schema"
      ],
      "id": "REV_FB3C3D6BCF81",
      "resource_id": "RES_01252E32DD58",
      "evaluator_type": "platform_ai",
      "provider": "deepseek",
      "model": "deepseek-v4-flash",
      "review_scope": "protocol-inspected-mcp",
      "created_at": "2026-09-04T04:32:27.035Z"
    }
  }
}