Docs

Last updated: September 25, 2026

On this page

Rilvo is an MCP server your own agent connects to: Claude Code, Codex, or Cursor. It gives that agent a methodology, a legal corpus, and a results registry. The compliance work itself is done by your agent, and the facts about your company are collected by it and stay on your own machine. There is no Rilvo client to install and nowhere else to do the work. What you open in the browser is the dashboard below: where results land, and where the decisions that are yours to make are recorded.

MCP endpoint: https://mcp.rilvo.io/mcp · Dashboard: https://rilvo.io/app

1. Account and workspace

Create a workspace at https://rilvo.io/app/signup: your work email and a password of at least 12 characters. The address is confirmed by email before the workspace exists, and you land in the dashboard right after. Your agent will use this same email and password to sign in on the authorization screen, so the password is needed before you connect MCP, not after.

The owner then invites the rest of the team under Settings → People and assigns roles. The role decides both what is visible in the dashboard and what the agent is allowed to do:

RoleIn the dashboardWhat the agent can do
OwnerPeople, roles, all workspacesFull cycle: research and implementation
AdminAssigned workspaces (tenants)Full cycle in accessible workspaces
MemberAssigned workspacesFull cycle in their own workspaces
ViewerRead onlyRead only. Write tools never appear in tools/list

An organization can own one or more workspaces (tenants). If it owns more than one, pick the right one from the workspace switcher in the dashboard.

2. Connect MCP to your agent

One command on your machine. There is no Rilvo client CLI. Your agent talks to https://mcp.rilvo.io/mcp directly and walks itself through the rest.

Claude Code

claude mcp add --transport http rilvo https://mcp.rilvo.io/mcp

# check connection status
claude mcp list

The browser opens by itself on the first tool call. Nothing needs to be pasted by hand: no keys, no tokens.

Codex

codex mcp add rilvo \
  --url https://mcp.rilvo.io/mcp \
  --oauth-client-id codex-cli

codex mcp login rilvo

# the Auth column will show whether access was granted
codex mcp list
  • --oauth-client-id codex-cli connects a pre-registered client, and the consent screen shows a green "Verified" badge.
  • codex mcp add --url without it starts OAuth itself and waits for the callback. If sign-in isn't finished in the browser, the command fails with timed out waiting for OAuth callback. The entry is still saved in ~/.codex/config.toml, so just run codex mcp login rilvo again.
  • The loopback listener only lives while the command is running, so a link from a previous attempt can't be reused.

Cursor

// ~/.cursor/mcp.json
"mcpServers": {
  "rilvo": { "type": "http", "url": "https://mcp.rilvo.io/mcp" }
}

The server then turns on under Settings → MCP, where sign-in and consent also happen.

Old address: leoncomply.compliance.apli.tech/mcp now returns 403. If your agent was connected before the move, replace the URL with https://mcp.rilvo.io/mcp. Until then no tool will work.

3. Authorization and consent

On the first tool call the agent gets a 401, finds the authorization server itself, and opens the browser.

What the agent requests

ScopeWhat it unlocks
mcp:readMethodology recipes, the L1 assignment, legal search, baseline status, workspace bootstrap
l1:writeOpening a baseline and writing L1: coverage, candidate acts, findings, positions, domains
impl:writeWriting L2–L4: policies, procedures, technical controls, control assessments
offline_accessRefresh token. Without it the agent has to sign in again every 15 minutes

The split between l1:write and impl:write is deliberate: an agent that only researches the law should not be able to write implementation state.

The "Limit to workspace" selector: an empty value ("All workspaces I can access") grants access to every workspace you can reach. A yellow "Unverified client" badge on Claude Code and Cursor is expected, not a failure.

Verifying and revoking

  • The connection counts as verified once the first baseline-status request succeeds. The badge alone proves nothing.
  • The access token lives 15 minutes, the refresh token 30 days and rotates. No repeat sign-in needed.
  • Changing your password under Settings → Security immediately revokes every agent token.

4. First prompts: one kickoff, four returns

You don't need to build the cycle by hand. The server hands the agent a twelve-step sequence the moment it connects. It only stops where you can't be skipped: questions about company facts, a decision on a gray area, or picking a domain to implement.

Kickoff

The only prompt you have to give. The agent then sets up a working folder, runs a fact interview with you, opens a baseline, and starts working through the matrix. No domain is named up front: jurisdictions come from the interview, and the facts stay with you.

Make us compliant. Connect to Rilvo and follow the order it hands you,
on your own, until you hit something you need me for.

When the agent is waiting on a gray-area decision

That decision is yours, in the dashboard: no tool can accept a client's position for them, and the agent will honestly stop.

I've gone through the positions in the dashboard. Continue.
Re-read the status: rejected ones have my reasoning attached, redo those.

When it's time to pick a domain to implement

Research is done and findings are sorted into domains. This is where "we only need GDPR" finally makes sense.

Open the implementation cycle for the GDPR domain. From here, work as usual:
top to bottom by traffic-light priority.

When you start a new session

A full cycle runs longer than one conversation. The agent restores state from the server status and its working-folder notes.

Pick up the Rilvo work where we left off: check the status and the working
folder, tell me where we are.

When you want to know what's needed from you

A standing question for any day: where is the bottleneck. It writes nothing, only builds a picture and sorts it by traffic-light priority.

Check the current research status and, if an implementation cycle is open,
its assignment. Give me one short summary, no new writes.

5. What stays with you, and what goes to Rilvo

The boundary runs along the data. The server is built so that it cannot learn the facts about your company on its own. It only sees what your agent explicitly sends.

Never leaves your machine

company-profile.md / product-fact-sheet.md
Everything you said in the interview
research-notes/
Queries, source excerpts, reasoning trail
research-notes/positions/
The reasoning behind each position. Only its hash goes to the server
exclusions.md
Why a candidate act was dropped
evidence/
Contracts, screenshots, exports, configs

Goes to Rilvo

  • Verdicts, nexus-test confidence, domain coverage
  • Act identifiers and citations, verified server-side
  • Positions on gray areas, and your decisions on them
  • Policies, procedures, controls, and their assessments
  • SHA-256 of evidence files, never the files themselves

Guard: the server rejects a write if free-text fields contain an email, phone number, IBAN, card number, or an Estonian personal ID code.

6. Glossary

Legal research

Fact interview
The conversation the work starts with: your agent collects facts about the company and product. It is not a checkbox form, and our team doesn't run it. Your agent runs it, and the answers stay with you.
Nexus test
Whether a norm actually reaches your company, judged on your facts rather than on industry-wide assumptions.
Legal corpus
The shared base of legal acts Rilvo maintains: texts, versions, article structure.
Research matrix
The full set of "jurisdiction × area of law" cells the agent must cover.
Baseline
One legal-research run for your company: a set of jurisdictions, an assessment date, a methodology version. An audit is something narrower: domain-scoped work inside a baseline.
Finding
One assessed pair of legal act and your company: an applicability verdict with reasoning and citation. A finding is a verdict on a norm's fate. It is neither a requirement nor a task.
Verdict
How a norm's review ended: applies, partially applies, doesn't apply, or gray area. A verdict says nothing about record status.
Nexus confidence
A 1–5 rating of how reliable the verdict itself is, independent of the verdict.
Gray area
A verdict of "objectively unresolved": good-faith arguments exist on both sides. It is a different thing from low confidence, and from a question that hasn't been researched yet.
Position
Your documented choice among the gray area's interpretations. It is your decision, neither a lawyer's opinion nor a policy draft.
Duty acceptance
Part of a position: whether the chosen interpretation takes on the obligation. If not, the finding closes without implementation.
Re-evaluation trigger
A required field on a gray area: what has to change or become known for the question to resolve.

Implementation

Domain
A named section of baseline findings, such as GDPR, sanctions, or NIS2. A domain is a research result, so you don't name it up front.
Implementation cycle
Work on one domain: policies, procedures, and technical controls on top of its findings.
Traffic-light priority
A norm's priority specifically for your company, calculated from verdict and impact.
L1 · L2 · L3 · L4
Four layers of work. L1 is law: which acts reach you at all, each verdict carrying its reasoning and a citation. L2 is policy: the documents your applicable acts require, written against your own findings rather than a template. L3 is procedure: the steps your team follows in practice, written down so they can be handed over, repeated and checked. L4 is technical control: Rilvo specifies the control and the evidence that proves it works, and wiring it into your product stays with your team.
Evidence
A file proving a control actually works: a contract, screenshot, export, config.

Connection and access

MCP
Model Context Protocol, the standard your agent uses to connect to an external service and get tools from it.
Workspace
A distinct company or product inside your organization, with its own baseline and cycles.
Scope
A permission the agent requests on the consent screen. Tools without a granted scope simply don't register.

7. If it's not working

The agent only sees read tools, no write tools
Either the role is Viewer, or consent wasn't granted the full scope set. Check Settings → People and make sure l1:write / impl:write were actually granted.
Every call returns 403
Almost always the old address. Confirm the server is registered at https://mcp.rilvo.io/mcp, not leoncomply.compliance.apli.tech.
Codex: "timed out waiting for OAuth callback"
Sign-in has to finish in the browser while the command is still running. The loopback listener only lives that long. Run codex mcp login rilvo again, then codex mcp list.
All write tools refuse on this baseline
The baseline is frozen, and a frozen run isn't meant to be edited. Have the agent open a new run.
A write was rejected because of field contents
The PII guard fired: personal data or a secret landed in free text. The server names the field.
Not sure whether the server is up
Discovery answers without a token, so one curl call is enough. Expect a 401 with a WWW-Authenticate header:
curl -si -X POST https://mcp.rilvo.io/mcp \
  -H 'content-type: application/json' \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}' | head -1
# expected: HTTP/2 401