Now domain-agnostic — configure any practice with Domain Packs (immigration is the reference pack)
Domain-agnostic · Production-Hardened

Case Automation MCP Server

A production-grade Model Context Protocol server for any caseworked, deadline-driven, document-heavy practice. Choose a domain pack — legal, accounting, claims, compliance — and the engine drafts, files, extracts, routes, reminds, and verifies across your systems, with mandatory human-in-the-loop gates, tamper-evident audit logging, and a fail-closed confidentiality gate.

Python 3.12+FastMCPPydantic v2PostgreSQLRedisDomain Packs424 Tests Passing

What you can build

The Case Automation MCP Server exposes every major operational workflow as a typed, auditable, reversible operation. The engine is domain-agnostic: terminology, case types, deadline rules, document classes, and the confidentiality policy live in a swappable domain pack, so the same hardened core serves a US immigration practice (the reference pack) just as readily as an accounting, claims, or compliance shop. Connect your systems — or use the included reference adapters — and let AI agents draft, file, extract, route, remind, and verify across every tab.

Architecture at a glance

MCP client — Claude / agent
MCP Server · FastMCP — tools · resources · prompts
Workflow Orchestratordurable state machine · gates · intake · status-update · document-gen · document-routing
Core Servicesdata-extraction (OCR + LLM) · qc-verification · deadline-engine
Connector Layer — ports onlyCRM · Case · Email · DocStore
Sidecar — FastAPI · webhooks · approvals · scheduler
Persistence: PostgreSQL + Redis

Every external or irreversible action is blocked behind a human-approval gate. Every state change writes to a tamper-evident hash-chained audit log before completion. Everything domain-specific — what a case is called, which deadlines apply, what counts as confidential — comes from the active domain pack, never from the engine.

One engine, any practice

The architecture was built domain-agnostic from day one — the core types (Matter, Contact, Document, Deadline) carry no domain semantics. A domain pack supplies everything practice-specific and is loaded at startup; the engine's mechanics never change.

The engine provides (fixed)The domain pack supplies (swappable)
Workflow orchestration, gates, idempotencyTerminology (Matter / Case / Engagement / Claim)
Hash-chained audit, crypto, RBAC mechanicsCase types + opening task checklists
Business-day math, reminders, escalationDeadline rule sets
Fail-closed confidentiality gate, PII floorConfidentiality label + document classes
Connector ports + webhook ingestionRBAC roles + PII pattern additions

Two safety guarantees are engine-owned and a pack can only tighten, never weaken: the confidentiality gate (no restricted document reaches an external recipient — fail-closed, never warns) and the PII redaction floor (a pack may add patterns, never remove the baseline). An incomplete or safety-weakening pack is rejected at load. See Domain Packs.

Quality scores

DimensionScore
Security96 / 100
Architecture93 / 100
Test quality93 / 100
Code correctness98 / 100
Documentation94 / 100
CI/CD92 / 100
Maintainability90 / 100
Production readiness82 / 100

Overall: 91 / 100 — Grade A−

Next steps

  • Quickstart — Get the server running locally in 10 minutes
  • Capabilities — Deep-dive into every tool and service
  • Domain Packs — Configure the engine for any practice
  • Security — Understand the audit, RBAC, and confidentiality model

Last updated: 2026-06-25