NJ Criminal Case Search MCP avatar

NJ Criminal Case Search MCP

Pricing

from $0.01 / 1,000 results

Go to Apify Store
NJ Criminal Case Search MCP

NJ Criminal Case Search MCP

MCP server for searching NJ criminal court records. AI agents can call this tool to look up criminal cases by defendant name and county. Returns docket numbers, charges, dispositions, and case status.

Pricing

from $0.01 / 1,000 results

Rating

0.0

(0)

Developer

Jordan C

Jordan C

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

2 days ago

Last modified

Categories

Share

Query the New Jersey Judiciary’s public PROMIS/Gavel criminal-case portal from an MCP client using a defendant name and optional county. The server is designed to return case rows as JSON-shaped text for agent workflows, but its upstream availability is currently the controlling limitation.

Current Apify Cloud status — portal blocked. NJ Courts currently presents an Incapsula automated-access challenge to this Actor in Apify Cloud. The MCP endpoint can be healthy, initialize correctly, and list tools while the actual court search remains unavailable. Do not treat HTTP/MCP transport health as proof that portal data can be retrieved, and do not depend on this Actor for reliable case results today. The implementation does not configure an active residential proxy, Apify Proxy, or an unblocker.

Use cases

When the upstream portal is reachable, this tool can support:

  • preliminary legal-research triage by defendant name;
  • agent workflows that need docket, charge, disposition, status, or judge fields;
  • county-scoped searches across New Jersey’s 21 counties;
  • structured diagnostics when browser launch, navigation, CAPTCHA, form, or results processing fails.

This is not a certified background check, legal advice, or a substitute for records obtained directly from the New Jersey Judiciary.

Connect over Streamable HTTP

Use this exact MCP endpoint:

https://reverberant-equality--mcp-nj-court-search.apify.actor/mcp

Authenticate every request at the Apify edge with your API token:

Authorization: Bearer $APIFY_API_TOKEN
Content-Type: application/json
Accept: application/json, text/event-stream

Configure an MCP client for Streamable HTTP and complete the normal initialize exchange before listing or calling tools.

Tool: search-nj-criminal-cases

ArgumentRequiredValidation and behavior
lastNameYesString with at least 2 characters.
firstNameNoOptional first name string.
countyNoCase-insensitive full name or prefix of an NJ county. Omit it or use all for all counties. An unrecognized value is silently broadened to all counties after a warning is logged.

Example MCP tool-call payload after initialization:

{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "search-nj-criminal-cases",
"arguments": {
"lastName": "Smith",
"firstName": "Alex",
"county": "Bergen"
}
}
}

If a search completes and rows are recognized, the returned MCP text contains a count summary followed by a JSON array. Each record has docketNumber, defendantName, county, charges, disposition, dispositionDate, caseStatus, judge, searchUrl, and ISO scrapedAt. A zero-row return contains only the summary; the implementation does not currently verify a portal-specific “no records” marker.

The current cloud failure is returned as MCP isError: true, with concise JSON such as:

{
"error": "NJ court portal search unavailable",
"diagnostics": {
"stage": "portal-navigation",
"browserLaunched": true,
"portalUrl": "https://portal.njcourts.gov/webe41/ExternalPGPA/",
"finalUrl": "https://portal.njcourts.gov/webe41/ExternalPGPA/",
"httpStatus": 200,
"message": "NJ Courts portal returned an automated access challenge"
}
}

Diagnostic stages are browser-launch, portal-navigation, captcha, search-form, and results.

Pricing

The custom tool-call event costs $0.005 per completed search call. The code charges only after the portal workflow returns; a detected Incapsula challenge or other portal error does not trigger that custom event. Apify platform usage may be billed separately under the caller’s plan.

Source, limits, and privacy

The sole case-data source is the official NJ Courts PROMIS/Gavel Public Access portal. The Actor launches headless Chromium, attempts the portal’s image CAPTCHA with Tesseract OCR up to five times, submits the search form, and heuristically parses docket rows across at most 50 pages.

Incapsula, CAPTCHA changes, session limits, HTML changes, timeouts, or OCR errors can prevent retrieval. Parsed columns are heuristic and may be incomplete or misclassified. An empty result is not authoritative. Always verify material facts against the official portal.

Search names and county are sent to NJ Courts and written to Actor logs. The server returns records directly in the MCP response and does not write them to an Apify dataset. Court records contain personal data; use them only for lawful purposes and avoid unnecessary retention or redistribution.

Local development

Requires Node.js 20+ and the Apify CLI:

npm ci
npm test
npm run build
apify validate-schema
npm run start:dev

The local Streamable HTTP endpoint is http://localhost:3000/mcp. Local execution can test transport and code paths, but it does not remove the upstream portal challenge seen from Apify Cloud.