Index/ Legal/ Descrybe Integration Paths
Legal AI OS — Descrybe

Descrybe, two ways in

The same legal engine, reached two different ways. One is an MCP server connected to Claude Code. The other runs inside the app. They differ in what has to be built, who owns the session, and whether the query leaves a record.

MCP over HTTP · Per-user OAuth · Fernet at rest · Supabase

01

The two paths

Two doors into one engine.

Path A Claude Code, no backend Path B in-app, per-user OAuth Claude Code session you, in the terminal descrybe-legal-engine MCP server, HTTP Descrybe Legal Engine US cases + statutes Findings, in-session annotated, cited Connect Descrybe user approves once Encrypted token Supabase, Fernet DescrybeClient auto-refreshes Descrybe Legal Engine US cases + statutes Research + cite-check audited, cached tool call HTTPS results auth code access token query cached hits
  • Path A — an MCP server, not an integration. No backend, no token store, nothing to deploy.
  • Path B — each user connects their own Descrybe account once; the app holds the rest.
  • Both land on the same engine, so the same authority answers either way.
02

What actually differs

Not features. Four operational facts.

What has to be built
Path A: nothing. Register the MCP server and the tools appear in the session. Path B: an OAuth app, an encrypted token store, a per-user connection, an auto-refresh path.
Who owns the session
Path A: you. Your Descrybe account, your terminal, your conversation. Path B: the platform. Each person connects once; nobody ever pastes a key.
What leaves a record
Path A: nothing retained. The research lives in the conversation and goes away with it. Path B: every query cached and attributed to a user and a matter, on an immutable audit trail.
Who it is for
Path A: whoever already lives in a terminal. Path B: everyone else at the firm, through a UI they did not have to build.

One crossover worth knowing. The legal-os MCP server registers in Claude Code too. Its cite_check tool proxies into the deployed backend, so Path A can reach Path B’s pipeline from the terminal — same engine, same audited code path, no UI in between.