Skip to main content
AI agentsMCPMCP

Governed Model Context Protocol tools that let approved AI assistants search and summarize case records with citations. The server implements the Model Context Protocol and calls the Case Management and Documents APIs on behalf of the signed-in user, so an assistant can never see more than that person can.

Transport: Streamable HTTP at the agency MCP gateway (OAuth 2.0; acts on behalf of the signed-in user).

Tool manifest (JSON) MCP guide

Guardrails

  • Read-only by default. The only write tool drafts a note; a person reviews and posts it.
  • Per-user authorization: each tool call carries the user's identity and is checked against their scopes and record access.
  • Citations required: summaries reference the case event or document page behind every statement.
  • Every tool call is written to the Audit Log API with the user, agent, tool, arguments, and outcome.
  • Sensitive fields (for example SSN, A-Number, date of birth) are masked in tool output unless policy allows them.

Example call

tools/call request
{
  "jsonrpc": "2.0",
  "id": 7,
  "method": "tools/call",
  "params": {
    "name": "summarize_case",
    "arguments": {
      "caseId": "CASE-2026-004817",
      "focus": "missing evidence"
    }
  }
}
result
{
  "jsonrpc": "2.0",
  "id": 7,
  "result": {
    "content": [
      {
        "type": "text",
        "text": "The case is in review. A birth certificate requested on 2026-09-02 has not been received [event EVT-77290]. The applicant's employment letter covers 2024 only [DOC-55102 p.2]."
      }
    ],
    "structuredContent": {
      "citations": [
        {
          "type": "event",
          "id": "EVT-77290"
        },
        {
          "type": "document",
          "id": "DOC-55102",
          "page": 2
        }
      ]
    }
  }
}

TOOL search_cases

Find cases by status, type, office, or date range. Returns case IDs and summaries only.

Mode: read · Scopes: cases:read

ArgumentType
statusstring (optional)
caseTypestring (optional)
updatedSincedate-time (optional)
limitinteger, max 25

TOOL get_case

Return one case with its status history.

Mode: read · Scopes: cases:read

ArgumentType
caseIdstring

TOOL summarize_case

Summarize a case file. Every sentence cites a case event or document page.

Mode: read · Scopes: cases:read, documents:read

ArgumentType
caseIdstring
focusstring (optional), e.g. 'missing evidence'

TOOL list_case_documents

List documents linked to a case, with classification and sensitivity labels.

Mode: read · Scopes: cases:read

ArgumentType
caseIdstring

TOOL get_document_text

Return extracted text for specific pages of a document, for citation.

Mode: read · Scopes: documents:read

ArgumentType
documentIdstring
pagesarray of integers

TOOL draft_case_note

Draft a case note for human review. Never saves on its own; a person approves and posts it.

Mode: draft (human approval required) · Scopes: cases:write

ArgumentType
caseIdstring
instructionsstring