MCP Server Quickstart

Connect your reasoning agent (Claude Code, Claude desktop, or any MCP client) to
Relex in a couple of minutes. Once connected, the agent reads your cases, reasons,
and drafts through two tools (search and execute) — while your clients'
personal data stays encrypted in your browser.

Claude Code — install the plugin

In Claude Code, add the GitHub marketplace and install the plugin. You run these
yourself — Claude can't install itself:

/plugin marketplace add relexyou/relex-claude
/plugin install relex-legal@relex

Reload, then tell Claude:

Set up my practice workflow with Relex.

On the first tool call your browser opens to sign in to Relex (Google or Apple)
and approve — no key to paste. From there the plugin guides Claude through
your setup; you add your know-how, parties, and documents in Relex yourself.

Claude desktop / claude.ai — add a connector

The connector URL is the same for everyone:

https://relex.you/api/mcp

How you add it depends on your plan — and on every plan you finish by clicking
Connect
:

  • Pro / MaxCustomize → Connectors → Add custom connector. Name it
    Relex, paste the URL above (leave the OAuth fields blank) and save, then click
    Connect and sign in.
  • Team / Enterprise — members can't add connectors. An owner or admin adds
    the custom connector once in the organisation's settings → Connectors, using
    the URL above. Each member then opens Customize → Connectors, finds Relex
    under available connectors, and clicks Connect to sign in.

Sign-in is over OAuth — there's no key to paste. Once connected, this connector
also works in the Claude mobile app.

API-key fallback (CI / headless)

In Relex, Settings → API Keys → Create key, then:

claude mcp add --transport http relex https://relex.you/api/mcp \
  --header "Authorization: Bearer rlx_..."

The two tools

Both take plain arguments. path is relative to /v1.

Discover endpoints

search({ query: "cases" })
→ [{ method: "GET", path: "/cases", summary: "...", tags: ["Cases"], params: { body: { properties: { caseTier: { enum: [1,2,3], ... } } } } }, ...]

params tells the agent each call's required/optional fields, enums and defaults
— so it never asks you for a value the platform supplies.

Call an endpoint

execute({ method: "GET", path: "/onboarding/status" })
→ { status: 200, body: { ...anonymized progress... } }

// Open a case — the agent never sets the tier; Relex's eval agent decides it.
execute({ method: "POST", path: "/cases", body: {} })
→ { status: 201, body: { caseId: "..." } }

execute({ method: "POST", path: "/agent", body: { type: "eval_req", caseId: "...", payload: { prompt: "" } } })
→ { status: 200, body: { message: "...", response: { tier, payRequired, ... }, done: true } }

What stays in Relex (not the agent)

Adding know-how, creating parties, uploading documents, paying, and exporting
with real details all happen in Relex, in your browser — that's where
personal data is extracted, encrypted with your password, and stored encrypted.
If the agent tries to move plaintext PII, the server refuses and returns a deep
link so you do it there.

Troubleshooting

  • Asked to sign in again — the connection's credential expired or was revoked
    in Settings → API Keys; approve the browser sign-in again.
  • A call comes back refused with a link — that endpoint would move personal
    data; open the link and do that step in Relex.
  • "path must not contain percent-encoding" — use plain path segments, e.g.
    /cases/abc123, not an encoded path.