Skip to content

cajusticewatch/mcp-server

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 

Repository files navigation

California Justice Watch — MCP Server

Public, read-only Model Context Protocol server exposing California criminal-justice accountability data.

MCP Registry License Data License

What this is

An MCP server (live at https://cajusticewatch.com/api/mcp) that lets AI agents — Claude, Cursor, Cline, Continue.dev, ChatGPT, Perplexity, or any MCP/OpenAPI client — search and query 15 public databases:

Database Entries Source
California District Attorneys 58 Official complaints, news, State Bar
California Public Defenders 196 Court records, settlements, press
Current California Judges 1,620 Official court rosters
Officer Misconduct (Brady/Giglio) 1,500 Federal court dockets, settlements
CJP Public Discipline (records) 247 cjp.ca.gov
CJP Decision PDFs (semantic search) 250 cjp.ca.gov
CA POST Decertifications 671 post.ca.gov

Endpoint: https://cajusticewatch.com/api/mcp Protocol: MCP 2025-06-18 over Streamable HTTP (JSON-RPC 2.0) Auth: None. CORS: *. Free, unmetered.

Quick start

Claude Desktop

{
  "mcpServers": {
    "cajusticewatch": {
      "command": "npx",
      "args": ["-y", "mcp-remote", "https://cajusticewatch.com/api/mcp"]
    }
  }
}

Claude Code

claude mcp add cajusticewatch https://cajusticewatch.com/api/mcp --transport http

Cursor / Cline / Continue.dev

URL: https://cajusticewatch.com/api/mcp (transport: streamable-http)

ChatGPT Custom Actions / Perplexity Spaces

OpenAPI URL: https://cajusticewatch.com/openapi.json

Raw curl

curl https://cajusticewatch.com/api/rest/top_judges?limit=10
curl -X POST https://cajusticewatch.com/api/mcp \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'

See cajusticewatch.com/ai for one-click setup in every major AI client.

Tools (15)

Tool Purpose
search_das, get_da, top_das California District Attorneys
search_defenders, get_defender Criminal defense attorneys
search_judges, top_judges Current judges, ranked by CJP discipline
search_officers, get_officer, top_officers LE misconduct database
search_cjp CJP discipline summary records
search_cjp_documents Semantic full-text search over 250 CJP decision PDFs
search_capost California POST decertifications
list_databases Inventory + entry counts
list_pages Canonical site page index

Architecture

┌──────────────────────────────────────────────────────┐
│  AI agent (Claude / ChatGPT / Cursor / curl / ...)    │
└─────────────────────┬────────────────────────────────┘
                      │  MCP / REST / OpenAPI
                      ▼
┌──────────────────────────────────────────────────────┐
│  cajusticewatch.com — Cloudflare Pages                │
│   ├─ /api/mcp      ← JSON-RPC 2.0 (canonical)        │
│   ├─ /api/rest/*   ← plain-JSON REST wrapper         │
│   └─ /openapi.json ← OpenAPI 3.1 spec (dynamic)      │
└─────────────────────┬────────────────────────────────┘
                      │  fetch
                      ▼
┌──────────────────────────────────────────────────────┐
│  /data/*.json — public-record databases               │
│  (DAs, defenders, judges, officers, CJP, POST)        │
└──────────────────────────────────────────────────────┘

The MCP server itself is a single Cloudflare Pages Function — see src/mcp.js.

Why this exists

When users ask AI agents about California criminal justice, the agents often hallucinate or pull from unreliable sources. Exposing structured public-record data via MCP gives them a canonical, citable source that's far better than scraping HTML.

Everything served is already public-record. We're not exposing anything private — just making it queryable in a way that's friendly to AI agents.

Data sourcing

Every record includes a source_url field pointing at the underlying public record. Sources include:

  • cjp.ca.gov — Commission on Judicial Performance public discipline
  • post.ca.gov — California POST decertification list
  • Official California court rosters
  • Federal court dockets (PACER), settlements, civil rights case records
  • Named press coverage (cited inline)

Editorial severity scoring (severity_score_editorial field) is the project's aggregation. Underlying facts are public-record.

Discovery files

File Purpose
/.well-known/mcp.json MCP discovery manifest
/.well-known/ai-plugin.json Legacy ChatGPT plugin manifest
/llms.txt Agent-friendly site map
/agents.txt Agent capability declaration
/openapi.json OpenAPI 3.1 spec

Official MCP Registry

Listed as com.cajusticewatch/cajusticewatch v0.1.0 at registry.modelcontextprotocol.io.

License

  • Code (this repo): MIT
  • Data served by the API: public records, distributed CC0 where possible (the underlying records are public-domain government documents)
  • Editorial scoring & aggregation: CC-BY 4.0 — attribute "California Justice Watch" and link the source

Contact

Status

v0.1.0 — published 2026-05-16. Production-stable, queried in real-time by AI agents worldwide.

Releases

No releases published

Packages

 
 
 

Contributors