CasusLegal connector in your product
One address and one key for four corpora of Russian case law. Your assistant receives tools for searching and reading judgments; routing between corpora is handled on our side.
1. Connection
Standard MCP server: connect it like any other connector in your chat.
| Parameter | Value |
|---|---|
| Address | https://mcp.casus.legal/partner/mcp |
| Transport | MCP Streamable HTTP (not SSE) |
| Authentication | Authorization: Bearer clp_… — you receive the key in one of two ways, see below |
| Connector name in the client | Latin characters only, for example CasusLegal |
How to obtain the key
A partner key looks like clp_<name>_…. There are two methods;
their connection endpoint and operating rules are identical.
- The key is issued to you ready for use. This is how, for example, the
Doczilla platform is connected: a CasusLegal manager sends the key through a secure channel; you
save it on your server and insert it into the header
Authorization. We reissue the key upon your request. An account with your statistics and database activation is also available: the manager will send an invitation link. - You issue the key yourself. This is how, for example, a platform
from Samara is connected: the manager sends an invitation link to the partner account
lk.casus.legal/pcab(with the login and one-time code inside). You enter an email address and password, click “Issue key” and copy it: the key is displayed once; a lost key is reissued, and the previous one ceases to work.
The key provides access to all databases enabled for you. Store it only on the server and do not send it to the end user’s browser.
"type": "streamable-http"
or "streamable" — depending on the library.
curl -sS https://mcp.casus.legal/partner/mcp \
-H "Authorization: Bearer $CASUS_PARTNER_KEY" \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{
"protocolVersion":"2025-06-18","capabilities":{},
"clientInfo":{"name":"my-platform","version":"1.0"}}}'
The response contains — serverInfo.name: "CasusLegal Partner". Next,
tools/list it should return nine tools.
2. Request headers
| Header | Required | Purpose |
|---|---|---|
Authorization: Bearer clp_… |
yes | platform key |
X-Partner-User-Id |
strongly recommended | end-user (lawyer) pseudonym on your side |
X-Partner-User-Id — any stable string that does not
disclose identity: your internal identifier or its hash. It is
needed for itemised accounting by user: it is used to reconcile
our figures with yours (how many calls, of what types, and how many people actually
reached the connector). The header does not affect access: there are no
user-number limits.
3. Tools
Nine tools, each with a parameter
corpus.
| Tool | What it does |
|---|---|
casuslegal_search_practice | primary subject-matter case-law search |
casuslegal_find_term | search for a phrase or rare term (consecutive words, in all word forms) |
casuslegal_get_case_details | the full text of a ruling by its numerical id from the results |
casuslegal_find_similar | judgments close to the specified one in legal position |
casuslegal_list_tags | frequency dictionary of the corpus’s topics |
casuslegal_stats | corpus contents: volume, year coverage, courts |
casuslegal_browse_practice | case selection without analysis: a flat list with pagination |
casuslegal_export_cases | catalogue page generated from selected IDs (links to texts, download in Markdown/DOCX) |
casuslegal_subscription_status | access status for the corpus; responds to the partner key not_applicable |
Parameter corpus
| Value | Corpus | Topics |
|---|---|---|
mainby default |
Constitutional Court of the Russian Federation, Supreme Court of the Russian Federation, Supreme Commercial Court of the Russian Federation | civil, commercial, tax, insolvency, corporate, contractual, employment and inheritance disputes; Resolutions of the Plenum and reviews of the Presidium of the Supreme Court of the Russian Federation; legal positions of the Constitutional Court of the Russian Federation |
sip |
Intellectual Property Court | trademarks, patents, copyright and related rights, disputes with Rospatent, domain-name disputes |
kas |
administrative cases of the Supreme Court of the Russian Federation (KAS) | regulatory review, challenges to decisions of public authorities, cadastral value, electoral disputes |
kud |
criminal cases of the Supreme Court of the Russian Federation | legal classification, sentencing, CPC RF, appeals and cassation proceedings against judgments |
corpus from it: the model then spends no token on selecting one.
{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{
"name":"casuslegal_search_practice",
"arguments":{
"query":"recovery of a penalty, reduction under Article 333 of the Civil Code",
"corpus":"main",
"limit":10
}}}
4. What the response contains
A structured object. For the main corpus, these are the blocks
constitutional_context (legal positions of the Constitutional Court of the Russian Federation),
vs_guidance (Plenum resolutions and reviews of the Supreme Court of the Russian Federation),
latest_practice (recent rulings of judicial chambers),
vas_history (practice of the Supreme Commercial Court of the Russian Federation) and results.
Volume
One search returns approximately 110,000 characters, or about 40,000 tokens as input to your model. This is intentional: completeness of the results is the product. Factor this volume into your choice of the model that processes the response — at this scale, the difference in cost between models can be as much as twelvefold.
Time
A search takes about 30 seconds. Set the tool-call timeout to at least 120 seconds; otherwise, you will interrupt requests that are proceeding normally.
Links to judicial acts
Each judicial act has a field url — a page containing the full text.
Pass it to the user as is, and do not truncate the parameter
?t=: without it, the link is invalid. The link remains valid for
30 days. If you plan to embed links in client documents, tell us — we will make them permanent.
Full text
The search returns the identifying details and key excerpts; the full judicial act is obtained by a separate
call casuslegal_get_case_details(case_id, corpus).
Parameter case_id — is the number from the field id
in the results card. The card also has a field with the same name
case_id, but it contains the case number (a string of the form
“305-ЭС22-11906”); it must not be transmitted. id valid
only within its own corpus; the same applies to
casuslegal_find_similar.
5. Errors and load
Failures are returned as a successful tool response with a field
error — this allows your model to explain the situation to the user,
rather than treating the connector as broken.
error | What happened |
|---|---|
corpus_forbidden | the corpus is not included in your integration |
corpus_unavailable | the corpus is temporarily unavailable |
engine_not_ready | the corpus data is being reloaded |
401 is returned only at the connection level: the key is incorrect,
revoked or expired. This is a configuration error; retries will not
resolve it.
Load
There are no limits on the number of users, calls or concurrent requests: the integration pays for each successful request, and we do not limit the volume of requests.
Note one physical property: simultaneous searches across the main corpus share processor time. Four parallel searches take approximately as long to complete as four sequential searches, and each takes longer than a single search. The time saving comes from parallel searches across different corpora: they are served by separate services. If you are planning peak load, notify us in advance—we will add capacity for it.
6. Billing
Each successful request that returns content to you is billable: search, full text of a ruling, similar rulings, list, export and “Glossa” commentary, 3,00 ₽ per request, the full text of a ruling— 2,00 ₽. Reference and service calls are free.
| Tool | What it does | Price |
|---|---|---|
search_practice | semantic case-law search | 3,00 ₽ |
find_term | exact phrase search across the entire corpus | 3,00 ₽ |
get_case_details | full text of a ruling | 2,00 ₽ |
find_similar | rulings similar to the one found | 3,00 ₽ |
browse_practice | case-law list by filters | 3,00 ₽ |
export_cases | selection export | 3,00 ₽ |
list_tags, stats, subscription_status | topic dictionary, corpus composition, access status | free |
- The price does not depend on the database: higher courts, the IP Court, the Judicial Chamber for Administrative Cases, the Judicial Chamber for Criminal Cases and cassation districts are charged at the same rate; the tool prefix is irrelevant.
- Each page
browse_practiceand each callexport_casesare charged as a single request, regardless of the number of decisions they contain. - A search and list covering all districts at once (
okrug_search_practice,okrug_find_term,okrug_browse_practicewithout a parametercorpus) are performed separately in each district open to you and counted as a request in each of them. To pay for one request, specify the district. - A call that ends with an error on our side is not charged.
Protocol service messages (
initialize,tools/list) are not counted as calls. - If the “Glossa” commentary is enabled for your integration, searching and
reading it (
glossa_search,glossa_support,glossa_get_point,glossa_get_article,glossa_find_by_act,glossa_find_similar) are charged at the same rate;glossa_statsit is free. - Days and billing periods are calculated according to Moscow time.
In the partner dashboard, you can see the number of calls—paid and free—broken down by tools, databases,
districts and days, together with the amount payable
lk.casus.legal/pcab. There, you can also issue the key yourself and
enable or disable the databases available to you: a disabled database returns
a refusal and is not charged. Your manager at CasusLegal will send the link for
your first login; you set the password yourself. The free
trial period is marked separately there: the amount for it is shown for
reference and is not billed.
Billing procedure
The partner dashboard is designed for self-service. On your first login, you set a password, an email address for exchanging documents, and your organisation’s details; the dashboard will not open without them. The details are immediately inserted into the agreement, certificates of services rendered and invoices; the agreement has already been signed on our side (by facsimile). Download it from the “Documents and Billing” section, sign it and upload a scan using the “Upload Signed Agreement” button. The agreement is also deemed concluded upon payment of the first invoice. All documents are stored in the dashboard and can be downloaded at any time.
- The billing period is 30 calendar days. The first period begins on the day after the free trial (or on the date specified by the manager); each subsequent period begins immediately after the previous one. The cost of services for the period = paid requests × 3.00 ₽ (full texts of decisions × 2.00 ₽).
- Services are provided on a prepayment basis. The first advance payment is determined by the CasusLegal manager and invoiced for the first period.
- On the day after the end of the period, three documents automatically appear in the dashboard: a certificate of calculation (services minus the advance payment minus the credit of any overpayment), an invoice for the additional amount if the services exceeded the advance payment, and an invoice for the advance payment for the next period—80% of the cost of services for the expired period, rounded down to the nearest ruble. The same documents are sent to your email. Overpayments are not refunded; they are credited to the next period.
- Invoices must be paid by bank transfer within 3 business days after the end of the period. After paying, click “Report payment” next to the invoice and attach the payment order. Upload the signed certificate in the period row.
- If the invoice has not been paid and the payment document has not been uploaded by the due date, access via the key is automatically suspended; uploading the payment document restores access immediately, pending verification. If the payment is not confirmed, the manager will write to you in the dashboard’s “Messages” section, and access will again be suspended until payment is received.
- The remaining prepayment (advance payment, credit, amount used since the beginning of the period) is shown in the dashboard in real time. Not subject to VAT (individual entrepreneur on the simplified taxation system).
7. Pre-launch checklist
- Transport — streamable HTTP, not SSE.
tools/listreturns nine tools.- Tool-call timeout — at least 120 seconds.
- Header
X-Partner-User-Idis set on every call. corpusis selected based on the subject of the question, one corpus per request.- Links
urlreach the user in full, together with?t=. - The model processing the results has been selected with 40,000 tokens per search in mind.
- Field
errorin the tool response is processed and shown to the user.