amazing.cat

API для разработчиков

Кот (amazing.cat) принимает структурированные вызовы MCP: поиск, карточки, тексты, цитаты и статистика.

Живые примеры проверены: 2026-10-08T20:43:57.369789+00:00. Тексты и поисковые запросы — на русском; документация доступна на двух языках.

Доступ и лимиты

Для серверных программ передавайте Authorization: Bearer YOUR_AMAZINGCAT_TOKEN в каждом MCP-запросе. Бесплатный токен можно получить на странице https://mcp.amazingcat.net/#get или через proof-of-work API. OAuth предназначен для веб-коннекторов и собственных клиентов с браузерным входом; транспорт MCP после OAuth также использует Bearer. Не включайте токен в URL, HTML, публичный репозиторий или клиентский JavaScript. Храните его в переменной окружения или хранилище секретов на сервере.

Тариф/ключЗа 60 сВ сутки UTCУсловия
free2005000Бесплатный токен, полученный сейчас через /issue или OAuth: 200 списываемых запросов за скользящие 60 секунд и 5000 за календарные сутки UTC. Текущие повышенные лимиты могут измениться; /issue возвращает rpm и daily при выдаче.
legacy_free20500Ранее выданные статические бесплатные ключи могут сохранять персональные лимиты 20/мин и 500/сутки. Значения общего тарифа не переопределяют квоту такого ключа.
paid12020000Действующий paid-ключ: 120/мин и 20000/UTC-сутки. Это меньший минутный темп, чем текущий временно повышенный Free, и больший суточный объём. В конфигурации PRO указаны 1000 ₽ за 30 дней, но публичное оформление подписки пока скрыто, платёжная конфигурация тестовая. Для индивидуального доступа обратитесь в поддержку; действующие paid-ключи принимаются сервисом.

Квота считается по списываемым HTTP-запросам с Bearer, а не по найденным документам. Только initialize бесплатен. notifications/initialized, tools/list, tools/call и другие методы списывают по одному запросу; GET SSE и DELETE закрытия сессии тоже учитываются. Handshake-методы проходят даже при исчерпанной квоте, но кроме initialize продолжают её расходовать. Сохраняйте сессию и список инструментов: новая сессия на каждый поиск создаёт служебные расходы. Учитываются также уже принятые запросы, завершившиеся ошибкой. Ограничение реализовано отдельно для конкретного токена; счётчики находятся в памяти процесса. Суточная граница — 00:00 UTC.

Получить бесплатный токен · Скрипт выдачи через proof-of-work

OAuth · PKCE S256

Используйте discovery, зарегистрируйте точный callback и выполняйте вход через браузер. MCP-запросы отправляйте с backend: прямой междоменный вызов из браузера сейчас не поддерживается.

  1. Проведите discovery по WWW-Authenticate из 401 или указанным metadata URL. Используйте scope=mcp и канонический resource=https://mcp.amazingcat.net/mcp.
  2. Для собственного веб-клиента отправьте POST /register с redirect_uris; ответ 201 содержит client_id. Клиент публичный: client secret не нужен. Зарегистрированный точный HTTPS callback допускает собственный домен. HTTP разрешён только для localhost и 127.0.0.1; пользовательские URI-схемы не поддерживаются.
  3. Без регистрации принимаются HTTPS callbacks доменов claude.ai, claude.com, anthropic.com, chatgpt.com, openai.com и их поддоменов; localhost и 127.0.0.1 также разрешены. Для своей интеграции зарегистрируйте точный callback.
  4. Сгенерируйте случайные code_verifier и state, вычислите code_challenge=BASE64URL(SHA256(code_verifier)) без padding. Откройте /authorize с указанными параметрами. Бесплатный ресурс выдаёт code автоматически, без формы входа. В callback проверьте state и iss по discovery.
  5. Обменяйте code через POST /token с application/x-www-form-urlencoded. redirect_uri должен точно совпадать; code одноразовый и живёт 300 секунд. Сохраните access_token и refresh_token на сервере. Ответ указывает token_type=Bearer, scope=mcp и expires_in.
  6. Обновляйте токен через grant_type=refresh_token. Free сообщает expires_in=7776000 (90 дней); PRO сообщает 86400 (1 день) и проверяет действующую подписку при запросах. Для существующего PRO-доступа используйте ресурс /pro/mcp, отдельный discovery /.well-known/oauth-protected-resource/pro/mcp и issuer https://mcp.amazingcat.net/pro. Вход /pro/authorize требует действующий paid-ключ.

POST /register: redirect_uris; /authorize: response_type=code, client_id, redirect_uri, code_challenge, code_challenge_method=S256, scope=mcp, resource, state. Проверьте state и iss в callback. POST /token (form): grant_type=authorization_code, code, redirect_uri, code_verifier, client_id. Для обновления: grant_type=refresh_token и refresh_token. Адрес resource — https://mcp.amazingcat.net/mcp. Зарегистрированный HTTPS callback может быть на вашем домене; HTTP допускается для localhost/127.0.0.1.

Ответ /token содержит access_token, token_type=Bearer, expires_in, refresh_token и scope=mcp. Free объявляет expires_in=7776000 (90 суток); PRO — 86400. Обновляйте токен по expires_in; платный ключ также зависит от активной подписки.

Ошибки

HTTPПризнакДействие
401unauthorizedНет Bearer или ключ недействителен; бесплатный ключ также не подходит для /pro/mcp. Проверьте заголовок или выполните OAuth. Ответ содержит WWW-Authenticate с resource_metadata.
200HTTP 200 + Retry-AfterПри исчерпанной квоте tools/call возвращает HTTP 200, JSON-RPC result.content с сообщением о лимите и isError:false. Заголовок Retry-After указывает секунды ожидания. Это не результат поиска: запрос к инструменту не выполнялся. Повторите тот же вызов после указанной задержки; не принимайте HTTP 200 или isError:false за доказательство успешного поиска.
429rate_limitedДля остальных методов при лимите: error=rate_limited, detail, retry_after_seconds, hint и Retry-After. Исключение — handshake-методы, которые проходят. Соблюдайте задержку из ответа.
400bad_json / bad_request / bad_powОшибки /issue: некорректный JSON, неполные поля или неверное решение proof-of-work.
403bad_challenge / expiredПодпись challenge неверна или challenge истёк. Получите новый /issue/challenge.
409replayРешённый challenge уже использован.
429ip_limitИсчерпан лимит выдачи новых токенов /issue; это отдельный лимит от квоты MCP-запросов. Ответ содержит detail и support.
400invalid_grant / unsupported_grant_typeОшибки /token: недействительный или использованный code/refresh_token, неверный redirect_uri или PKCE, либо неподдерживаемый grant. Недействующая PRO-подписка также даёт invalid_grant.
{
  "error": "unauthorized",
  "detail": "требуется Authorization: Bearer <token>. Веб-клиенты подключаются по OAuth автоматически; для CLI токен: https://mcp.amazingcat.net"
}

MCP и ответы

MCP поверх Streamable HTTP, один endpoint: https://mcp.amazingcat.net/mcp. JSON-RPC 2.0, UTF-8.

  1. initialize: согласовать версию, сохранить Mcp-Session-Id из заголовка ответа.
  2. notifications/initialized: уведомление без id, ответ 202 без тела.
  3. tools/list: узнать реальные имена и inputSchema; nextCursor продолжает список.
  4. tools/call: params.name + params.arguments.
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "initialize",
  "params": {
    "protocolVersion": "2025-06-18",
    "capabilities": {},
    "clientInfo": {
      "name": "my-integration",
      "version": "1.0"
    }
  }
}
Authorization: Bearer YOUR_AMAZINGCAT_TOKEN
Content-Type: application/json
Accept: application/json, text/event-stream
Mcp-Session-Id: SESSION_ID_FROM_INITIALIZE
MCP-Protocol-Version: 2025-06-18

Mcp-Session-Id и согласованную MCP-Protocol-Version передавайте в каждом следующем запросе. Сессионный заголовок не заменяет Bearer. Поле session в аргументах некоторых инструментов связывает поиск и добор; это другой идентификатор. При 404 истёкшей MCP-сессии выполните initialize заново. Завершение — DELETE /mcp с заголовками сессии и авторизации.

Ответ бывает application/json или text/event-stream. В SSE объединяйте строки data: одного события и выбирайте JSON-RPC ответ с вашим id. Не пытайтесь вызвать response.json() на SSE. В живой проверке обычные результаты шли через SSE; при ограничении квоты возможен JSON. Клиент обязан принимать оба формата.

В result.content[] блок типа text часто содержит ещё одну JSON-строку. Сначала разбирается JSON-RPC/SSE, затем JSON внутри content[].text. Проверяйте HTTP, JSON-RPC error, result.isError, внутренние error/ошибка, частично и предупреждения.

Спецификация транспорта MCP

Клиенты

Токен храните в переменной окружения. Команды ниже используют плейсхолдер; перед запуском подставьте свой ключ. Скрипты доступны для скачивания и выполнены против живого endpoint.

export AMAZINGCAT_TOKEN="YOUR_AMAZINGCAT_TOKEN"

Процессуальный срок · curl JSON-RPC

curl.sh

bash curl.sh
Код
#!/usr/bin/env bash
# Bash, curl 7.76+, Python 3. Set AMAZINGCAT_TOKEN in the environment; bash curl.sh.
set -euo pipefail
: "${AMAZINGCAT_TOKEN:?Set AMAZINGCAT_TOKEN in the server environment}"
umask 077
work=$(mktemp -d)
endpoint='https://mcp.amazingcat.net/mcp'
cleanup() {
  if [[ -f "$work/session-headers" ]]; then
    curl --silent --show-error --max-time 15 -X DELETE \
      -H "@$work/session-headers" "$endpoint" -o /dev/null || true
  fi
  rm -rf "$work"
}
trap cleanup EXIT

# Keep credentials out of curl's command-line arguments and temporary public files.
python3 - "$work/headers" <<'PY'
import os, pathlib, sys
token = os.environ["AMAZINGCAT_TOKEN"]
if "\r" in token or "\n" in token:
    raise SystemExit("Invalid token")
pathlib.Path(sys.argv[1]).write_text(
    "Authorization: Bearer " + token + "\n"
    "Accept: application/json, text/event-stream\n"
    "Content-Type: application/json\n", encoding="utf-8")
PY

# Decode either JSON or UTF-8 SSE. In SSE, select the matching JSON-RPC id.
cat > "$work/decode.py" <<'PY'
import json, pathlib, sys
body = pathlib.Path(sys.argv[1]).read_text(encoding="utf-8")
expected_id = int(sys.argv[2])
if body.lstrip().startswith("{"):
    message = json.loads(body)
else:
    message = None
    data = []
    for line in body.splitlines() + [""]:
        if line.startswith("data:"):
            data.append(line[5:].lstrip(" "))
        elif not line and data:
            event = json.loads("\n".join(data))
            data = []
            if event.get("id") == expected_id:
                message = event
                break
    if message is None:
        raise SystemExit("SSE ended without the matching JSON-RPC response")
if message.get("id") != expected_id or "error" in message:
    raise SystemExit("Unexpected JSON-RPC response or protocol error")
json.dump(message["result"], sys.stdout, ensure_ascii=False)
PY

post() {
  local name=$1 payload=$2 expected_id=${3:-}
  curl --silent --show-error --fail-with-body --no-buffer --max-time 120 \
    -X POST "$endpoint" -H "@$work/headers" \
    --data-binary "$payload" -D "$work/$name.headers" \
    -o "$work/$name.body" -w '%{http_code}' > "$work/$name.status"
  if [[ -n "$expected_id" ]]; then
    python3 "$work/decode.py" "$work/$name.body" "$expected_id" > "$work/$name.json"
  elif [[ "$(cat "$work/$name.status")" != 202 ]]; then
    echo 'Initialized notification was not accepted' >&2
    exit 1
  fi
}

post initialize '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-06-18","capabilities":{},"clientInfo":{"name":"amazingcat-curl-example","version":"1.0"}}}' 1

# Preserve Mcp-Session-Id if supplied; use the negotiated protocol version.
python3 - "$work" <<'PY'
import json, pathlib, sys
work = pathlib.Path(sys.argv[1])
headers = work.joinpath("headers").read_text(encoding="utf-8")
sid = None
for line in work.joinpath("initialize.headers").read_text(encoding="utf-8").splitlines():
    if line.lower().startswith("mcp-session-id:"):
        sid = line.split(":", 1)[1].strip()
if sid:
    headers += "Mcp-Session-Id: " + sid + "\n"
version = json.loads(work.joinpath("initialize.json").read_text(encoding="utf-8"))["protocolVersion"]
headers += "MCP-Protocol-Version: " + version + "\n"
work.joinpath("headers").write_text(headers, encoding="utf-8")
if sid:
    work.joinpath("session-headers").write_text(headers, encoding="utf-8")
PY

post initialized '{"jsonrpc":"2.0","method":"notifications/initialized"}'
post tools-list '{"jsonrpc":"2.0","id":2,"method":"tools/list","params":{}}' 2
post tools-call '{"jsonrpc":"2.0","id":3,"method":"tools/call","params":{"name":"kas_search","arguments":{"text":"восстановление OR пропуск","norms":"ГПК 112","year_from":2026,"year_to":2026,"court":2,"kind":"civil","limit":1,"detail":"brief"}}}' 3

# A 200 response may contain a quota/application error; check the MCP result too.
python3 - "$work" <<'PY'
import json, pathlib, sys
work = pathlib.Path(sys.argv[1])
read = lambda name: json.loads(work.joinpath(name + ".json").read_text(encoding="utf-8"))
result = read("tools-call")
if result.get("isError"):
    raise SystemExit("Tool returned an MCP error; inspect it privately")
texts = [b["text"] for b in result.get("content", []) if b.get("type") == "text"]
if not texts:
    raise SystemExit("Tool returned no text content")
try:
    data = json.loads(texts[0])
except json.JSONDecodeError:
    raise SystemExit("Tool returned non-JSON text; check quota/errors") from None
if not isinstance(data, dict) or data.get("error") or data.get("ошибка"):
    raise SystemExit("Tool returned an application error")
types = {}
for name in ("initialize", "tools-list", "tools-call"):
    for line in work.joinpath(name + ".headers").read_text(encoding="utf-8").splitlines():
        if line.lower().startswith("content-type:"):
            types[name] = line.split(":", 1)[1].strip()
print(json.dumps({
    "protocol_version": read("initialize")["protocolVersion"],
    "session_present": work.joinpath("session-headers").exists(),
    "tools_count": len(read("tools-list")["tools"]),
    "tool": "kas_search", "is_error": bool(result.get("isError")),
    "найдено": data.get("найдено"), "returned": len(data.get("результаты", [])),
    "response_content_types": types,
    "http_status": {name: int(work.joinpath(name + ".status").read_text())
                    for name in ("initialize", "initialized", "tools-list", "tools-call")},
}, ensure_ascii=False))
PY

Сокращённый реальный вывод:

{
  "protocol_version": "2025-06-18",
  "session_present": true,
  "tools_count": 62,
  "tool": "kas_search",
  "is_error": false,
  "найдено": 285,
  "returned": 1,
  "http_status": {
    "initialize": 200,
    "initialized": 202,
    "tools-list": 200,
    "tools-call": 200
  }
}

Банкротство · Python mcp SDK

sdk.py

python -m pip install mcp==1.30.0 httpx==0.28.1
python sdk.py
Код
"""Python 3.10+. pip install -r requirements.txt; set AMAZINGCAT_TOKEN."""
import asyncio
import json
import os
from datetime import timedelta

import httpx
from mcp import ClientSession
from mcp.client.streamable_http import streamable_http_client


async def main():
    # Keep the token on your server. Never embed it in a browser bundle.
    async with httpx.AsyncClient(
        headers={"Authorization": f"Bearer {os.environ['AMAZINGCAT_TOKEN']}"},
        timeout=httpx.Timeout(120.0, connect=15.0),
    ) as http:
        async with streamable_http_client(
            "https://mcp.amazingcat.net/mcp", http_client=http
        ) as (read, write, session_id):
            async with ClientSession(
                read, write, read_timeout_seconds=timedelta(seconds=120)
            ) as session:
                # initialize() also sends notifications/initialized.
                # The transport handles session/version headers and JSON/SSE.
                initialized = await session.initialize()
                tools = await session.list_tools()
                if not any(tool.name == "find_term" for tool in tools.tools):
                    raise RuntimeError("find_term is unavailable for this token")
                result = await session.call_tool(
                    "find_term", {"phrase": "банкротство", "court": "КС", "limit": 1, "detail": "compact"}
                )
                if result.isError:
                    raise RuntimeError("Tool returned an MCP error; inspect it privately")
                text = next((b.text for b in result.content if b.type == "text"), None)
                # HTTP 200 does not by itself prove success: plain text can be a quota error.
                if text is None:
                    raise RuntimeError("Tool returned no text content")
                try:
                    data = json.loads(text)
                except json.JSONDecodeError:
                    raise RuntimeError("Tool returned non-JSON text; check quota/errors") from None
                if not isinstance(data, dict) or data.get("error") or data.get("ошибка"):
                    raise RuntimeError("Tool returned an application error")
                # Print counters, avoiding personal names in the sample output.
                print(json.dumps({
                    "protocol_version": initialized.protocolVersion,
                    "session_present": bool(session_id()),
                    "tools_count": len(tools.tools),
                    "tool": "find_term", "is_error": bool(result.isError),
                    "найдено": data.get("найдено"),
                    "returned": len(data.get("results", [])),
                }, ensure_ascii=False))
        # terminate_on_close=True (the default) sends DELETE for the MCP session.


if __name__ == "__main__":
    asyncio.run(main())

Сокращённый реальный вывод:

{
  "protocol_version": "2025-11-25",
  "session_present": true,
  "tools_count": 62,
  "tool": "find_term",
  "is_error": false,
  "найдено": null,
  "returned": 1
}

Наследство · Python requests

raw.py

python -m pip install requests
python raw.py
Код
import json
import os
from raw import MCP

def main():
    client = MCP(os.environ["AMAZINGCAT_TOKEN"])
    try:
        client.initialize()
        print("tools:", len(client.rpc("tools/list")["tools"]))
        result = client.call("kas_search", {"text": "принятие SENTENCE наследства", "court": 0, "kind": "civil", "limit": 1, "detail": "brief"})
        print(json.dumps(result, ensure_ascii=False))
    finally:
        client.close()


if __name__ == "__main__":
    main()

Сокращённый реальный вывод:

{
  "найдено": 32283,
  "page": {
    "next_cursor": 1
  },
  "returned": 1,
  "application_error": false,
  "tools_count": 62
}

Родительские обязанности, КоАП · TypeScript

client.ts

npm install @modelcontextprotocol/sdk@1.32.1 tsx@4.23.15
npx tsx client.ts
Код
// Node.js 20+. npm install; AMAZINGCAT_TOKEN=... npm start
import { Client } from "@modelcontextprotocol/sdk/client/index.js";
import { StreamableHTTPClientTransport } from "@modelcontextprotocol/sdk/client/streamableHttp.js";

async function main() {
  const token = process.env.AMAZINGCAT_TOKEN;
  if (!token) throw new Error("Set AMAZINGCAT_TOKEN in the server environment");
  const transport = new StreamableHTTPClientTransport(
    new URL("https://mcp.amazingcat.net/mcp"),
    { requestInit: { headers: { Authorization: `Bearer ${token}` } } },
  );
  const client = new Client({ name: "amazingcat-api-example", version: "1.0.0" });
  try {
    // connect() performs initialize + notifications/initialized.
    // The transport handles session/version headers and JSON/SSE.
    await client.connect(transport);
    const tools = await client.listTools();
    if (!tools.tools.some((tool) => tool.name === "get_norm_text")) {
      throw new Error("get_norm_text is unavailable for this token");
    }
    const result = await client.callTool({
      name: "get_norm_text", arguments: { norms: "5.35 КоАП", with_practice: false },
    }, undefined, { timeout: 120_000 });
    if (result.isError) throw new Error("Tool returned an MCP error; inspect it privately");
    const blocks = result.content as Array<{ type: string; text?: string }>;
    const text = blocks.find((block) => block.type === "text")?.text;
    if (!text) throw new Error("Tool returned no text content");
    let data: Record<string, unknown>;
    try {
      data = JSON.parse(text);
    } catch {
      throw new Error("Tool returned non-JSON text; check quota/errors");
    }
    if (!data || typeof data !== "object" || data.error || data["ошибка"]) {
      throw new Error("Tool returned an application error");
    }
    // Print counters, avoiding personal names in the sample output.
    console.log(JSON.stringify({
      protocol_version: transport.protocolVersion,
      session_present: Boolean(transport.sessionId), tools_count: tools.tools.length,
      tool: "get_norm_text", is_error: Boolean(result.isError),
      "найдено": data["найдено"],
      returned: Array.isArray(data["norms"]) ? data["norms"].length : 0,
    }));
  } finally {
    try {
      if (transport.sessionId) await transport.terminateSession();
    } finally {
      await client.close();
    }
  }
}

main().catch((error: unknown) => {
  console.error(error instanceof Error ? error.message : "MCP example failed");
  process.exitCode = 1;
});

Сокращённый реальный вывод:

{
  "protocol_version": "2025-11-25",
  "session_present": true,
  "tools_count": 62,
  "tool": "get_norm_text",
  "is_error": false,
  "returned": 1
}

requirements.txt · package.json · Python SDK · TypeScript SDK v1

Параметры и операторы

kas_search: court=1…9 — номер КСОЮ; court=0 — все. Справочник — kas_stats. oblsud_search: court=код ГАС, например 77OS0000; справочник — oblsud_courts. raysud_courts даёт коды районных судов. Передача номера без суда может быть неоднозначной. УИД состоит из кода суда, инстанции, года, порядкового и контрольного номера; он отличается от UUID карточки сайта.

ПараметрСемантика
queryОбычный вопрос/слова. В кассации и облсудах — лексическая нормализация с морфологическими префиксами; у search_practice также смысловой поиск. Это разные поисковые движки.
textЯвное текстовое выражение: AND/OR/NOT, NEAR/N, ADJACENT, SENTENCE, PARAGRAPH. Не универсальный параметр всех инструментов.
phraseДословная фраза, без догадки по смыслу. find_term(phrase) ищет высшие суды; kas_search/oblsud_search имеют свой phrase.
normsЛогическое выражение ссылок на нормы: ГК 196 AND ГПК 56. find_by_norm использует article=200 ГК, *_by_norm — code=КАС, article=219. Не переносите сложный синтаксис в find_by_norm без проверки.
detailУ высших судов full/compact. У kas_search brief/subject/facts/full; у oblsud_search brief/subject/facts/reasoning/resolution/full. detail меняет объём карточки и фрагментов; полный документ получайте отдельно через *_act/get_case.
kind / prockas_search.kind: civil/admin/koap/criminal/all; admin — КАС, koap — КоАП. all = civil + admin + koap. В oblsud_search производство задаёт proc, а kind — вид документа.

Операторы пишутся прописной латиницей. AND — оба условия, OR — любое, NOT — исключение; NEAR/N — близость в N словах; ADJACENT — соседние слова в любом порядке; SENTENCE/PARAGRAPH — фильтры по предложению/абзацу. В текущем kas_search(text) пример AND NOT возвращает ошибку FTS5, показанную ниже. Проверяйте разобранное выражение и воронку в ответе. Для norms оператор ADJACENT имеет отдельную семантику соседних ссылок на нормы, а текстовые операторы не переносятся автоматически на другие семейства.

Пагинация неодинакова: поиск kas/oblsud/fas — page.next_cursor; *_acts — cursor_next и не_вошли; browse_practice — offset; raysud_courts — next_cursor. Для текста *_act используйте исходные offset/length и продолжение ответа, не длину замаскированной строки. part=full не всегда означает весь текст в одном ответе. В law_get_text продолжайте только по pagination.next_request при truncated=true.

Маскируются распознанные ФИО участников; имена судей в ряде семейств остаются открытыми как имена должностных лиц. Некоторые ответы скрывают также контакты и реквизиты физлиц. Маска не является дословной цитатой. source_url и qr.qr_image_url у актов высших судов ведут на оригинал; у остальных семейств проверяйте фактически возвращённые поля источника, не предполагайте QR во всех ответах.

law_get_text(as_of) запрашивает редакцию на дату. При _warning ближайшая редакция может отличаться от текста на нужную дату. get_norm_text возвращает текущую редакцию и не принимает as_of; проверьте redaction_verified/redaction_warning, для истории используйте law_history и law_get_text.

Примеры задач

Каждый показанный вызов выполнен вживую. Ниже сокращён JSON внутри content[].text: поля опущены, массивы обычно оставлены до первого элемента; числа не пересчитаны. Это примеры формы ответа, а не неизменные счётчики базы. Пометка «Ограничение API» показывает реальный отказ/частичный результат, не успешный поиск.

15 обобщённых задач из реального использования: 10 сценариев ниже, четыре задачи в клиентских примерах и одна в пакетной интеграции. client в связанных шагах — MCP-клиент из raw.py. Он отправляет tools/call; номера и УИД берутся из предыдущего ответа, а в опубликованных выдержках опущены.

Уступка требования и взыскание долга

Открыть выбранный акт: текст, маски и QR Проверено

2026-10-08T20:40:22.038838+00:00 · 0.639 s

assignment_read = client.call('get_case', {
    'court': 'ВС',
    'doc_id': assignment_search['results'][0]['doc_id']
})

Сокращённый реальный результат; переменная: assignment_read.

{
  "source": "ВС РФ",
  "court": "ВС",
  "doc_id": 1728170,
  "date": "2019-01-15",
  "url": "https://www.vsrf.ru/lk/practice/stor_pdf/1728170",
  "norms": [
    "ст. 1110 ГК РФ"
  ],
  "analyzed": true,
  "result": "Апелляционное определение Нижегородского облсуда от 10.04.2018 отменено, дело направлено на новое апелляционное рассмотрение в тот же суд.",
  "source_url": "https://www.vsrf.ru/lk/practice/stor_pdf/1728170",
  "qr": {
    "qr_image_url": "https://mcp.amazingcat.net/qr/6f0c8217ae15ca35.png",
    "qr_encodes": "https://www.vsrf.ru/lk/practice/stor_pdf/1728170"
  },
  "_обезличено": "ФИО физлиц замаскированы (152-ФЗ); ссылки и QR ведут на оригиналы."
}

Исключить страховые споры: оператор NOT Ограничение API

2026-10-08T20:40:22.159481+00:00 · 0.12 s

{
  "jsonrpc": "2.0",
  "id": 3,
  "method": "tools/call",
  "params": {
    "name": "kas_search",
    "arguments": {
      "text": "уступка AND NOT страхование",
      "court": 1,
      "kind": "civil",
      "limit": 1,
      "detail": "brief"
    }
  }
}

Сокращённый реальный результат; переменная: assignment_exclude.

{
  "error": "tool_failed",
  "tool": "kas_search",
  "retryable": false,
  "retry_after_seconds": null,
  "detail": "OperationalError: fts5: syntax error near \"NOT\""
}

Отрицание AND NOT сейчас возвращает ошибку API; эта строка показывает проверенный отказ. Не интерпретируйте его как отсутствие дел.

Начало исковой давности

Подборка по статье 200 ГК Проверено

2026-10-08T20:40:41.849601+00:00 · 0.811 s

{
  "jsonrpc": "2.0",
  "id": 3,
  "method": "tools/call",
  "params": {
    "name": "find_by_norm",
    "arguments": {
      "article": "200 ГК",
      "court": "ВС",
      "limit": 1,
      "detail": "compact"
    }
  }
}

Сокращённый реальный результат; переменная: limitation_norm.

{
  "norm": "200 ГК",
  "corpora": {
    "ВС РФ · определения коллегий (vsrf.ru, разбор opus-grounded)": {
      "всего": 456,
      "содержательных": 417,
      "отказных_определений": 13,
      "без_аналитики": 26,
      "показано": 10,
      "документы": [
        {
          "source": "ВС РФ",
          "court": "ВС",
          "doc_id": 2115084,
          "date": "2022-04-26",
          "url": "https://www.vsrf.ru/lk/practice/stor_pdf/2115084",
          "norms": [
            "ст. 195 ГК РФ"
          ],
          "analyzed": true,
          "result": "Решение Хостинского районного суда г. Сочи от 13.07.2020, апелляционное определение Краснодарского краевого суда от 28.01.2021 и определение 4-го КСОЮ от 27.05.2021 отменены. Дело направлено на новое …",
          "source_url": "https://www.vsrf.ru/lk/practice/stor_pdf/2115084",
          "qr": {
            "qr_image_url": "https://mcp.amazingcat.net/qr/ec95adbd9e9cc3d6.png",
            "qr_encodes": "https://www.vsrf.ru/lk/practice/stor_pdf/2115084"
          }
        }
      ]
    }
  },
  "акт": "ст. 200 ГК",
  "_обезличено": "ФИО физлиц замаскированы (152-ФЗ); ссылки и QR ведут на оригиналы.",
  "_detail": "compact: карточки без полного текста; полный текст акта — get_case(doc_id, court)."
}

Совместное упоминание ГК 196 и ГПК 56 Проверено

2026-10-08T20:40:53.098177+00:00 · 11.248 s

{
  "jsonrpc": "2.0",
  "id": 3,
  "method": "tools/call",
  "params": {
    "name": "kas_search",
    "arguments": {
      "norms": "ГК 196 AND ГПК 56",
      "court": 1,
      "kind": "civil",
      "limit": 1,
      "detail": "brief"
    }
  }
}

Сокращённый реальный результат; переменная: limitation_expression.

{
  "найдено": 1551,
  "показано": 1,
  "вид_производства": "гражданские",
  "результаты": [
    {
      "act_id": 1401941,
      "суд": "1 КСОЮ",
      "дата": "2026-08-21"
    }
  ],
  "максимум_карточек_в_ответе": 526,
  "page": {
    "showing": "1-1 of 1551",
    "sorted_by": "дата, новые первыми",
    "next_cursor": 1
  },
  "предупреждение": "совпадений 1551, обработаны первые 400. Сузьте фильтрами, иначе хвост не виден",
  "_снимок_от": "2026-10-08T20:40:00.316649+00:00",
  "_снимок_полной_сверки": "2026-10-08T19:12:19.705788+00:00",
  "_обезличено": "ФИО физлиц замаскированы (152-ФЗ); фамилии судей открыты — должностные лица, по ним работает поиск."
}

Следующая карточка по норме: offset Проверено

2026-10-08T20:40:54.359487+00:00 · 1.26 s

{
  "jsonrpc": "2.0",
  "id": 3,
  "method": "tools/call",
  "params": {
    "name": "browse_practice",
    "arguments": {
      "court": "ВС",
      "article": "200 ГК",
      "limit": 1,
      "offset": 1
    }
  }
}

Сокращённый реальный результат; переменная: limitation_page.

{
  "court": "ВС",
  "offset": 1,
  "limit": 1,
  "returned": 1,
  "has_more": true,
  "next_offset": 2,
  "results": [
    {
      "id": 2442126,
      "doc_id": 2442126,
      "court": "ВС",
      "date": "2025-01-21",
      "url": "https://www.vsrf.ru/lk/practice/stor_pdf/2442126",
      "norms": [
        {
          "norm": "ст. 159 УК РФ"
        }
      ],
      "source_url": "https://www.vsrf.ru/lk/practice/stor_pdf/2442126",
      "qr": {
        "qr_image_url": "https://mcp.amazingcat.net/qr/d62de39d3429699d.png",
        "qr_encodes": "https://www.vsrf.ru/lk/practice/stor_pdf/2442126"
      }
    }
  ],
  "_обезличено": "ФИО физлиц замаскированы (152-ФЗ); ссылки и QR ведут на оригиналы."
}

Назначение уголовного наказания

Пленум: назначение наказания Проверено

2026-10-08T20:41:10.894936+00:00 · 16.535 s

{
  "jsonrpc": "2.0",
  "id": 3,
  "method": "tools/call",
  "params": {
    "name": "find_term",
    "arguments": {
      "phrase": "назначение наказания",
      "court": "Пленум",
      "limit": 1,
      "detail": "compact"
    }
  }
}

Сокращённый реальный результат; переменная: criminal_plenum.

{
  "court": "Пленум",
  "returned": 1,
  "results": [
    {
      "source": "Пленум ВС РФ",
      "court": "Пленум",
      "doc_id": 35905,
      "date": "2026-05-21",
      "title": "О внесении изменений в отдельные постановления Пленума Верховного Суда Российской Федерации по уголовным делам",
      "url": "https://www.vsrf.ru/documents/all/35905/",
      "norms": [
        {
          "norm": "ч. 1 ст. 210 УК РФ",
          "страница": 2,
          "абзац": 5,
          "цитата": "Ответственность по части 1 статьи 210 УК РФ за координацию"
        }
      ],
      "source_url": "https://www.vsrf.ru/documents/all/35905/",
      "qr": {
        "qr_image_url": "https://mcp.amazingcat.net/qr/6db2c18598a41657.png",
        "qr_encodes": "https://www.vsrf.ru/documents/all/35905/"
      }
    }
  ],
  "_обезличено": "ФИО физлиц замаскированы (152-ФЗ); ссылки и QR ведут на оригиналы.",
  "_detail": "compact: карточки без полного текста; полный текст акта — get_case(doc_id, court)."
}

Оплата коммунальных услуг

Обзоры ВС: коммунальные услуги Проверено

2026-10-08T20:41:15.076783+00:00 · 4.181 s

{
  "jsonrpc": "2.0",
  "id": 3,
  "method": "tools/call",
  "params": {
    "name": "find_term",
    "arguments": {
      "phrase": "коммунальные услуги",
      "court": "ОбзорВС",
      "limit": 1,
      "detail": "compact"
    }
  }
}

Сокращённый реальный результат; переменная: utilities_review.

{
  "court": "ОбзорВС",
  "returned": 1,
  "results": [
    {
      "source": "Обзор Президиума ВС РФ",
      "court": "ОбзорВС",
      "doc_id": 36136,
      "date": "2026-07-03",
      "title": "Обзор судебной практики Верховного Суда Российской Федерации № 2 (2026)",
      "url": "https://www.vsrf.ru/documents/all/36136/",
      "norms": [],
      "source_url": "https://www.vsrf.ru/documents/all/36136/",
      "qr": {
        "qr_image_url": "https://mcp.amazingcat.net/qr/eb5b19474311c62c.png",
        "qr_encodes": "https://www.vsrf.ru/documents/all/36136/"
      }
    }
  ],
  "_обезличено": "ФИО физлиц замаскированы (152-ФЗ); ссылки и QR ведут на оригиналы.",
  "_detail": "compact: карточки без полного текста; полный текст акта — get_case(doc_id, court)."
}

Кассация: слова в одном абзаце Проверено

2026-10-08T20:41:32.976454+00:00 · 17.899 s

{
  "jsonrpc": "2.0",
  "id": 3,
  "method": "tools/call",
  "params": {
    "name": "kas_search",
    "arguments": {
      "text": "коммунальные PARAGRAPH услуги",
      "kind": "civil",
      "limit": 1,
      "detail": "brief"
    }
  }
}

Сокращённый реальный результат; переменная: utilities_paragraph.

{
  "найдено": 83194,
  "показано": 1,
  "вид_производства": "гражданские",
  "результаты": [
    {
      "act_id": 1396710,
      "суд": "3 КСОЮ",
      "дата": "2026-09-07"
    }
  ],
  "максимум_карточек_в_ответе": 526,
  "page": {
    "showing": "1-1 of 83194",
    "sorted_by": "релевантность",
    "next_cursor": 1
  },
  "предупреждение": "совпадений 83194, обработаны первые 400. Сузьте фильтрами, иначе хвост не виден",
  "_снимок_от": "2026-10-08T20:41:02.733387+00:00",
  "_снимок_полной_сверки": "2026-10-08T19:12:19.705788+00:00",
  "_обезличено": "ФИО физлиц замаскированы (152-ФЗ); фамилии судей открыты — должностные лица, по ним работает поиск."
}

Самовольная постройка

ВАС: самовольная постройка Проверено

2026-10-08T20:41:37.130229+00:00 · 4.153 s

{
  "jsonrpc": "2.0",
  "id": 3,
  "method": "tools/call",
  "params": {
    "name": "find_term",
    "arguments": {
      "phrase": "самовольная постройка",
      "court": "ВАС",
      "limit": 1,
      "detail": "compact"
    }
  }
}

Сокращённый реальный результат; переменная: property_vas.

{
  "court": "ВАС",
  "returned": 1,
  "results": [
    {
      "source": "ВАС РФ",
      "court": "ВАС",
      "doc_id": 19056,
      "date": "2014-07-01",
      "url": "https://www.vsrf.ru/documents/all/19056/",
      "norms": [
        "ст. 14 ФЗ № 443-1"
      ],
      "analyzed": true,
      "result": "Постановление Федерального арбитражного суда Западно-Сибирского округа от 13.03.2014 отменено. Решение Арбитражного суда Новосибирской области от 06.09.2013 и постановление Седьмого арбитражного апелл…",
      "source_url": "https://www.vsrf.ru/documents/all/19056/",
      "qr": {
        "qr_image_url": "https://mcp.amazingcat.net/qr/db6b18ddfa7e123e.png",
        "qr_encodes": "https://www.vsrf.ru/documents/all/19056/"
      }
    }
  ],
  "_обезличено": "ФИО физлиц замаскированы (152-ФЗ); ссылки и QR ведут на оригиналы.",
  "_detail": "compact: карточки без полного текста; полный текст акта — get_case(doc_id, court)."
}

ВС: практика по статье 222 ГК Проверено

2026-10-08T20:41:38.128138+00:00 · 0.997 s

{
  "jsonrpc": "2.0",
  "id": 3,
  "method": "tools/call",
  "params": {
    "name": "find_by_norm",
    "arguments": {
      "article": "222 ГК",
      "court": "ВС",
      "limit": 1,
      "detail": "compact"
    }
  }
}

Сокращённый реальный результат; переменная: property_norm.

{
  "norm": "222 ГК",
  "corpora": {
    "ВС РФ · определения коллегий (vsrf.ru, разбор opus-grounded)": {
      "всего": 374,
      "содержательных": 363,
      "отказных_определений": 2,
      "без_аналитики": 9,
      "показано": 10,
      "документы": [
        {
          "source": "ВС РФ",
          "court": "ВС",
          "doc_id": 2472598,
          "date": "2025-06-17",
          "url": "https://www.vsrf.ru/lk/practice/stor_pdf/2472598",
          "norms": [
            "ст. 222 ГК РФ"
          ],
          "analyzed": true,
          "result": "Апелляционное определение Краснодарского краевого суда и определение Четвёртого кассационного суда отменить, оставить в силе решение суда первой инстанции (в иске отказано).",
          "source_url": "https://www.vsrf.ru/lk/practice/stor_pdf/2472598",
          "qr": {
            "qr_image_url": "https://mcp.amazingcat.net/qr/33b00c6bf011c06e.png",
            "qr_encodes": "https://www.vsrf.ru/lk/practice/stor_pdf/2472598"
          }
        }
      ]
    }
  },
  "акт": "ст. 222 ГК",
  "_обезличено": "ФИО физлиц замаскированы (152-ФЗ); ссылки и QR ведут на оригиналы.",
  "_detail": "compact: карточки без полного текста; полный текст акта — get_case(doc_id, court)."
}

Восстановление на работе

Карточка первого найденного трудового дела Проверено

2026-10-08T20:41:47.020989+00:00 · 1.647 s

labour_card = client.call('kas_case', {
    'act_id': labour_search['результаты'][0]['act_id']
})

Сокращённый реальный результат; переменная: labour_card.

{
  "act_id": 613147,
  "суд": "7 КСОЮ",
  "дата": "2025-08-26",
  "знаков_в_тексте": 26854,
  "источник": "https://7kas.sudrf.ru/modules.php?name=sud_delo&name_op=doc&number=10848805&delo_id=2800001&new=2800001&text_number=1&srv_num=1",
  "стороны": [
    {
      "роль": "ИСТЕЦ",
      "наименование": "С******в Р***ь М**********ч",
      "скрыто": false
    }
  ],
  "_снимок_от": "2026-10-08T20:41:02.733387+00:00",
  "_снимок_полной_сверки": "2026-10-08T19:12:19.705788+00:00",
  "_обезличено": "ФИО физлиц замаскированы (152-ФЗ); фамилии судей открыты — должностные лица, по ним работает поиск."
}

Открыть карточку по номеру из выдачи Проверено

2026-10-08T20:41:48.134619+00:00 · 1.112 s

labour_number = client.call('kas_case', {
    'court': 7,
    'number': labour_search['результаты'][0]['номер_определения']
})

Сокращённый реальный результат; переменная: labour_number.

{
  "act_id": 613147,
  "суд": "7 КСОЮ",
  "дата": "2025-08-26",
  "знаков_в_тексте": 26854,
  "источник": "https://7kas.sudrf.ru/modules.php?name=sud_delo&name_op=doc&number=10848805&delo_id=2800001&new=2800001&text_number=1&srv_num=1",
  "стороны": [
    {
      "роль": "ИСТЕЦ",
      "наименование": "С******в Р***ь М**********ч",
      "скрыто": false
    }
  ],
  "_снимок_от": "2026-10-08T20:41:02.733387+00:00",
  "_снимок_полной_сверки": "2026-10-08T19:12:19.705788+00:00",
  "_обезличено": "ФИО физлиц замаскированы (152-ФЗ); фамилии судей открыты — должностные лица, по ним работает поиск."
}

Открыть карточку по УИД Проверено

2026-10-08T20:41:50.077462+00:00 · 1.941 s

labour_uid = client.call('kas_case', {
    'court': 7,
    'uid': labour_card['УИД']
})

Сокращённый реальный результат; переменная: labour_uid.

{
  "act_id": 613147,
  "суд": "7 КСОЮ",
  "дата": "2025-08-26",
  "знаков_в_тексте": 26854,
  "источник": "https://7kas.sudrf.ru/modules.php?name=sud_delo&name_op=doc&number=10848805&delo_id=2800001&new=2800001&text_number=1&srv_num=1",
  "стороны": [
    {
      "роль": "ИСТЕЦ",
      "наименование": "С******в Р***ь М**********ч",
      "скрыто": false
    }
  ],
  "_снимок_от": "2026-10-08T20:41:02.733387+00:00",
  "_снимок_полной_сверки": "2026-10-08T19:12:19.705788+00:00",
  "_обезличено": "ФИО физлиц замаскированы (152-ФЗ); фамилии судей открыты — должностные лица, по ним работает поиск."
}

Найти производства по УИД Проверено

2026-10-08T20:41:50.242395+00:00 · 0.163 s

labour_route = client.call('case_by_uid', {
    'uid': labour_card['УИД']
})

Сокращённый реальный результат; переменная: labour_route.

{
  "найдено": 4,
  "производства": [
    {
      "инстанция": "первая инстанция",
      "суд": "Свердловский районный суд г. Перми (Пермский край)",
      "код_суда": "59RS0007",
      "результат": "Иск (заявление, жалоба) УДОВЛЕТВОРЕН ЧАСТИЧНО",
      "карточка_на_сайте_суда": "https://sverdlov--perm.sudrf.ru/modules.php?name=sud_delo&srv_num=1&name_op=case&case_id=458112710&case_uid=f00cc8ca-1b75-4939-8944-d6d96b3f70a5&delo_id=1540005&new="
    }
  ],
  "показано": 4,
  "_обезличено": "ФИО физлиц замаскированы (152-ФЗ); фамилии судей открыты — должностные лица, по ним работает поиск."
}

Определить районный суд по коду УИД Проверено

2026-10-08T20:41:50.634335+00:00 · 0.39 s

labour_district_courts = client.call('raysud_courts', {
    'limit': 1,
    'code': labour_card['УИД'][:8]
})

Сокращённый реальный результат; переменная: labour_district_courts.

{
  "_снимок_номеров": {},
  "_снимок_актов": {},
  "_снимок_фасетов": {},
  "найдено": 1,
  "показано": 1,
  "суды": [
    {
      "код": "59RS0007",
      "суд": "Свердловский районный суд г. Перми (Пермский край)",
      "регион": "Пермский край",
      "карточек_дел": 53729,
      "источник": "district.db"
    }
  ],
  "next_cursor": null,
  "_обезличено": "ФИО физлиц замаскированы (152-ФЗ); фамилии судей открыты — должностные лица, по ним работает поиск. Адреса, даты рождения, паспортные данные, СНИЛС, ИНН физлица, телефоны и e-mail скрыты."
}

Районная карточка той же первой инстанции Ограничение API

2026-10-08T20:41:50.841617+00:00 · 0.206 s

labour_district_card = client.call('raysud_case', {
    'limit': 1,
    'court': labour_card['УИД'][:8],
    'uid': labour_card['УИД']
})

Сокращённый реальный результат; переменная: labour_district_card.

{
  "ошибка": "обезличивание недоступно, выдача остановлена"
}

Форма чтения районного акта; текущий отказ маскирования Ограничение API

2026-10-08T20:41:51.222868+00:00 · 0.38 s

{
  "jsonrpc": "2.0",
  "id": 3,
  "method": "tools/call",
  "params": {
    "name": "raysud_act",
    "arguments": {
      "act_id": 2,
      "part": "full",
      "length": 200
    }
  }
}

Сокращённый реальный результат; переменная: labour_district_act.

{
  "ошибка": "обезличивание недоступно, выдача остановлена"
}

Это отдельный демонстрационный act_id из живого сервиса, а не номер трудового дела выше. API пока прекращает выдачу при недоступном маскировании.

Текст выбранного кассационного акта Проверено

2026-10-08T20:41:51.958875+00:00 · 0.734 s

labour_full = client.call('kas_act', {
    'part': 'full',
    'act_id': labour_search['результаты'][0]['act_id']
})

Сокращённый реальный результат; переменная: labour_full.

{
  "act_id": 613147,
  "часть": "акт целиком",
  "знаков": 26854,
  "_обезличено": "ФИО физлиц замаскированы (152-ФЗ); фамилии судей открыты — должностные лица, по ним работает поиск."
}

Первые 200 исходных знаков Проверено

2026-10-08T20:41:52.162114+00:00 · 0.202 s

labour_window = client.call('kas_act', {
    'offset': 0,
    'length': 200,
    'act_id': labour_search['результаты'][0]['act_id']
})

Сокращённый реальный результат; переменная: labour_window.

{
  "act_id": 613147,
  "знаков_всего": 26854,
  "окно": [
    0
  ],
  "продолжение_есть": true,
  "_обезличено": "ФИО физлиц замаскированы (152-ФЗ); фамилии судей открыты — должностные лица, по ним работает поиск."
}

Обстоятельства двух выбранных актов: первая страница Проверено

2026-10-08T20:41:52.577041+00:00 · 0.413 s

labour_batch = client.call('kas_acts', {
    'part': 'facts',
    'limit': 1,
    'cursor': 0,
    'act_ids': ",".join(str(row['act_id']) for row in labour_search['результаты'][:2])
})

Сокращённый реальный результат; переменная: labour_batch.

{
  "часть": "фабула",
  "запрошено": 2,
  "максимум_актов_в_ответе": 67,
  "средний_размер_части_знаков": 1491,
  "бюджет_ответа_знаков": 100000,
  "отдано": 1,
  "page": {
    "showing": "1-1 of 2",
    "next_cursor": 1
  },
  "акты": [
    {
      "act_id": 613147,
      "суд": "7 КСОЮ",
      "дата": "2025-08-26",
      "знаков": 1495,
      "текст": "С******в Р.М., С*******а Н.П. обратились в суд с иском к Государственному бюджетному учреждению здравоохранения Пермского края «Городская клиническая больница № 2 имени Фёдора Христофоровича Граля» (д…"
    }
  ],
  "знаков_в_ответе": 1495,
  "_обезличено": "ФИО физлиц замаскированы (152-ФЗ); фамилии судей открыты — должностные лица, по ним работает поиск."
}

Второй выбранный акт: cursor Проверено

2026-10-08T20:41:52.793315+00:00 · 0.214 s

labour_batch_page = client.call('kas_acts', {
    'part': 'facts',
    'limit': 1,
    'cursor': 1,
    'act_ids': ",".join(str(row['act_id']) for row in labour_search['результаты'][:2])
})

Сокращённый реальный результат; переменная: labour_batch_page.

{
  "часть": "фабула",
  "запрошено": 2,
  "максимум_актов_в_ответе": 67,
  "средний_размер_части_знаков": 1491,
  "бюджет_ответа_знаков": 100000,
  "отдано": 1,
  "page": {
    "showing": "2-2 of 2",
    "next_cursor": null
  },
  "акты": [
    {
      "act_id": 168403,
      "суд": "7 КСОЮ",
      "дата": "2025-12-09",
      "знаков": 1450,
      "текст": "Л***е А.И. обратилась в суд с иском к ООО «Фармасинтез-Тюмень», в котором с учетом уточнения исковых требований просила взыскать средний заработок за время вынужденного прогула за период с 31 июля 202…"
    }
  ],
  "знаков_в_ответе": 1450,
  "_обезличено": "ФИО физлиц замаскированы (152-ФЗ); фамилии судей открыты — должностные лица, по ним работает поиск."
}

Взыскание алиментов

Код суда для фильтра областного поиска Проверено

2026-10-08T20:41:53.032134+00:00 · 0.237 s

{
  "jsonrpc": "2.0",
  "id": 3,
  "method": "tools/call",
  "params": {
    "name": "oblsud_courts",
    "arguments": {
      "contains": "Чуваш"
    }
  }
}

Сокращённый реальный результат; переменная: family_courts.

{
  "судов_в_индексе": 84,
  "карточек_дел": 11526512,
  "актов_выкачано_всего": 5246926,
  "текстов_актов_в_базе": 5246926,
  "суды": [
    {
      "код": "21OS0000",
      "суд": "Верховный Суд Чувашской Республики (Чувашская Республика - Чувашия)",
      "карточек_дел": 125452,
      "актов_выкачано": 44448,
      "источник": "индекс"
    }
  ],
  "_обезличено": "ФИО физлиц замаскированы (152-ФЗ); фамилии судей открыты — должностные лица, по ним работает поиск."
}

Карточка по номеру, полученному из поиска Проверено

2026-10-08T20:42:02.527692+00:00 · 0.354 s

family_card = client.call('oblsud_case', {
    'court': '21OS0000',
    'number': family_search['результаты'][0]['номер']
})

Сокращённый реальный результат; переменная: family_card.

{
  "источник": "индекс amazing.cat (карточка собрана с сайта суда)",
  "суд": {
    "код": "21OS0000",
    "наименование": "Верховный Суд Чувашской Республики (Чувашская Республика - Чувашия)"
  },
  "вид_производства": "Гражданские дела - апелляция",
  "стороны": [
    {
      "роль": "ИСТЕЦ(ЗАЯВИТЕЛЬ)",
      "наименование": "Ж****а Н*****я Ю*****а"
    }
  ],
  "результат": "РЕШЕНИЕ оставлено БЕЗ ИЗМЕНЕНИЯ",
  "актов_опубликовано": 1,
  "акты": [
    {
      "act_key": "21OS0000|doc|7930018|1",
      "дата_документа": "11.10.2023",
      "вид_документа": "Определение",
      "url": "/modules.php?name=sud_delo&name_op=doc&number=7930018&delo_id=5&new=5&text_number=1&srv_num=1",
      "текст_в_базе": true,
      "знаков": 26557,
      "документов_на_странице": 1
    }
  ],
  "ссылка_на_карточку": "https://vs.chv.sudrf.ru/modules.php?name=sud_delo&srv_num=1&name_op=case&case_id=11510066&case_uid=154b060b-fe1f-4a96-986c-534dfcc51750&delo_id=5&new=5",
  "_обезличено": "ФИО физлиц замаскированы (152-ФЗ); фамилии судей открыты — должностные лица, по ним работает поиск."
}

Повторное открытие по УИД карточки Проверено

2026-10-08T20:42:02.757193+00:00 · 0.227 s

family_uid = client.call('oblsud_case', {
    'court': '21OS0000',
    'uid': family_card['uid']
})

Сокращённый реальный результат; переменная: family_uid.

{
  "источник": "индекс amazing.cat (карточка собрана с сайта суда)",
  "суд": {
    "код": "21OS0000",
    "наименование": "Верховный Суд Чувашской Республики (Чувашская Республика - Чувашия)"
  },
  "вид_производства": "Гражданские дела - апелляция",
  "стороны": [
    {
      "роль": "ИСТЕЦ(ЗАЯВИТЕЛЬ)",
      "наименование": "Ж****а Н*****я Ю*****а"
    }
  ],
  "результат": "РЕШЕНИЕ оставлено БЕЗ ИЗМЕНЕНИЯ",
  "актов_опубликовано": 1,
  "акты": [
    {
      "act_key": "21OS0000|doc|7930018|1",
      "дата_документа": "11.10.2023",
      "вид_документа": "Определение",
      "url": "/modules.php?name=sud_delo&name_op=doc&number=7930018&delo_id=5&new=5&text_number=1&srv_num=1",
      "текст_в_базе": true,
      "знаков": 26557,
      "документов_на_странице": 1
    }
  ],
  "ссылка_на_карточку": "https://vs.chv.sudrf.ru/modules.php?name=sud_delo&srv_num=1&name_op=case&case_id=11510066&case_uid=154b060b-fe1f-4a96-986c-534dfcc51750&delo_id=5&new=5",
  "_обезличено": "ФИО физлиц замаскированы (152-ФЗ); фамилии судей открыты — должностные лица, по ним работает поиск."
}

Полный текст выбранного регионального акта Проверено

2026-10-08T20:42:03.533281+00:00 · 0.77 s

family_full = client.call('oblsud_act', {
    'part': 'full',
    'act_key': family_search['результаты'][0]['act_key']
})

Сокращённый реальный результат; переменная: family_full.

{
  "act_id": 2127158,
  "act_key": "21OS0000|doc|7930018|1",
  "часть": "full",
  "знаков": 26557,
  "код_суда": "21OS0000",
  "суд": "Верховный Суд Чувашской Республики (Чувашская Республика - Чувашия)",
  "вид_документа": "Определение",
  "дата": "2023-10-11",
  "источник": "https://vs.chv.sudrf.ru/modules.php?name=sud_delo&name_op=doc&number=7930018&delo_id=5&new=5&text_number=1&srv_num=1",
  "часть_не_выделена": false,
  "знаков_всего": 26557,
  "окно": [
    0
  ],
  "продолжение_есть": false,
  "_обезличено": "ФИО физлиц замаскированы (152-ФЗ); фамилии судей открыты — должностные лица, по ним работает поиск."
}

Окно регионального текста: offset/length Проверено

2026-10-08T20:42:03.753585+00:00 · 0.219 s

family_window = client.call('oblsud_act', {
    'offset': 0,
    'length': 200,
    'act_key': family_search['результаты'][0]['act_key']
})

Сокращённый реальный результат; переменная: family_window.

{
  "источник": "из базы (собрано ранее)",
  "суд": {
    "код": "21OS0000",
    "наименование": "Верховный Суд Чувашской Республики (Чувашская Республика - Чувашия)"
  },
  "act_key": "21OS0000|doc|7930018|1",
  "дата_документа": "11.10.2023",
  "вид_документа": "Определение",
  "часть_страницы": 0,
  "документов_на_странице": 1,
  "знаков_всего": 26557,
  "окно": [
    0
  ],
  "продолжение_есть": true,
  "_обезличено": "ФИО физлиц замаскированы (152-ФЗ); фамилии судей открыты — должностные лица, по ним работает поиск."
}

Сверить фразу о взыскании алиментов Проверено

2026-10-08T20:42:03.983379+00:00 · 0.227 s

family_quote = client.call('oblsud_verify_quote', {
    'quote': 'взыскании алиментов',
    'act_key': family_search['результаты'][0]['act_key']
})

Сокращённый реальный результат; переменная: family_quote.

{
  "результаты": [],
  "найдено": 1,
  "показано": 1,
  "пул_разных_актов": 0,
  "_снимок_полной_сверки": "2026-10-08T20:16:32.947764+00:00",
  "_снимок_фасетов": "2026-10-07T03:19:42.938362+00:00",
  "act_key": "21OS0000|doc|7930018|1",
  "подтверждено": true,
  "проверено_частей": 1,
  "_обезличено": "ФИО физлиц замаскированы (152-ФЗ); фамилии судей открыты — должностные лица, по ним работает поиск."
}

СК 80: акты суда за выбранную дату Проверено

2026-10-08T20:42:04.746304+00:00 · 0.76 s

{
  "jsonrpc": "2.0",
  "id": 3,
  "method": "tools/call",
  "params": {
    "name": "oblsud_by_norm",
    "arguments": {
      "code": "СК",
      "article": "80",
      "court": "21OS0000",
      "date_from": "2026-05-27",
      "date_to": "2026-05-27",
      "query": "алиментов",
      "limit": 1
    }
  }
}

Сокращённый реальный результат; переменная: family_norm.

{
  "результаты": [
    {
      "act_id": 403535,
      "act_key": "21OS0000|doc|9617019|1",
      "суд": "Верховный Суд Чувашской Республики (Чувашская Республика - Чувашия)",
      "код_суда": "21OS0000",
      "дата": "2026-05-27",
      "вид_документа": "Определение",
      "вид_производства": "admin",
      "judge_id": 2996140511861903,
      "источник": "https://vs.chv.sudrf.ru/modules.php?name=sud_delo&name_op=doc&number=9617019&delo_id=42&new=&text_number=1&srv_num=1"
    }
  ],
  "найдено": 1,
  "показано": 1,
  "пул_разных_актов": 1,
  "_снимок_полной_сверки": "2026-10-08T20:16:32.947764+00:00",
  "охват": {
    "срез": "21OS0000, 2026-05-27 — 2026-05-27",
    "известно_документов": 24,
    "собрано_документов": 24,
    "в_поиске_разных_актов": 24,
    "нормы": {
      "обработано_документов": 24,
      "со_ссылками": 24,
      "частей": 24,
      "ошибок": 0,
      "уникальных_связей": 527,
      "упоминаний": 730
    }
  },
  "_снимок_фасетов": "2026-10-07T03:19:42.938362+00:00",
  "cursor_next": null,
  "sorted_by": "дата, новые первыми",
  "page": {
    "sorted_by": "дата, новые первыми",
    "showing": "1-1 of 1",
    "next_cursor": null
  },
  "норма": {
    "code": "СК",
    "article": "80"
  },
  "include_frame": true,
  "_обезличено": "ФИО физлиц замаскированы (152-ФЗ); фамилии судей открыты — должностные лица, по ним работает поиск."
}

Статистика выбранного суда Проверено

2026-10-08T20:42:04.915361+00:00 · 0.166 s

{
  "jsonrpc": "2.0",
  "id": 3,
  "method": "tools/call",
  "params": {
    "name": "oblsud_stats",
    "arguments": {
      "court": "21OS0000"
    }
  }
}

Сокращённый реальный результат; переменная: family_stats.

{
  "результаты": [],
  "найдено": 44448,
  "показано": 0,
  "пул_разных_актов": 0,
  "_снимок_полной_сверки": "2026-10-08T20:16:32.947764+00:00",
  "охват": {
    "срез": "21OS0000",
    "известно_документов": 47037,
    "собрано_документов": 44448,
    "в_поиске_разных_актов": 44448,
    "нормы": {
      "обработано_документов": 44448,
      "со_ссылками": 44070,
      "частей": 44448,
      "ошибок": 0,
      "уникальных_связей": 657667,
      "упоминаний": 874607
    }
  },
  "_снимок_фасетов": "2026-10-07T03:19:42.938362+00:00",
  "производства": [
    {
      "n": 21839
    }
  ],
  "_обезличено": "ФИО физлиц замаскированы (152-ФЗ); фамилии судей открыты — должностные лица, по ним работает поиск."
}

Акты выбранного суда по годам Проверено

2026-10-08T20:42:05.199652+00:00 · 0.28 s

{
  "jsonrpc": "2.0",
  "id": 3,
  "method": "tools/call",
  "params": {
    "name": "oblsud_aggregate",
    "arguments": {
      "by": "year",
      "court": "21OS0000",
      "limit": 3
    }
  }
}

Сокращённый реальный результат; переменная: family_years.

{
  "результаты": [],
  "найдено": 44448,
  "показано": 3,
  "пул_разных_актов": 44448,
  "_снимок_полной_сверки": "2026-10-08T20:16:32.947764+00:00",
  "охват": {
    "срез": "21OS0000",
    "известно_документов": 47037,
    "собрано_документов": 44448,
    "в_поиске_разных_актов": 44448,
    "нормы": {
      "обработано_документов": 44448,
      "со_ссылками": 44070,
      "частей": 44448,
      "ошибок": 0,
      "уникальных_связей": 657667,
      "упоминаний": 874607
    }
  },
  "_снимок_фасетов": "2026-10-07T03:19:42.938362+00:00",
  "распределение": [
    {
      "разных_актов": 4205
    }
  ],
  "сумма_показанных_групп": 11675,
  "_обезличено": "ФИО физлиц замаскированы (152-ФЗ); фамилии судей открыты — должностные лица, по ним работает поиск."
}

Срез агрегата задан кодом суда; текстовый фильтр алиментов сюда не передаётся.

Бездействие судебного пристава: КАС

Статья 219 КАС: срок обращения Проверено

2026-10-08T20:42:13.100088+00:00 · 1.179 s

{
  "jsonrpc": "2.0",
  "id": 3,
  "method": "tools/call",
  "params": {
    "name": "kas_by_norm",
    "arguments": {
      "code": "КАС",
      "article": "219",
      "kind": "admin",
      "court": 2,
      "limit": 1
    }
  }
}

Сокращённый реальный результат; переменная: administrative_norm.

{
  "норма": "КАС 219",
  "найдено": 434,
  "обработано_в_этом_вызове": 400,
  "показано": 1,
  "результаты": [
    {
      "act_id": 2955,
      "суд": "2 КСОЮ",
      "дата": "2026-01-21",
      "знаков_в_тексте": 19589,
      "смещение": 10018
    }
  ],
  "_снимок_от": "2026-10-08T20:42:05.217772+00:00",
  "_снимок_полной_сверки": "2026-10-08T19:12:19.705788+00:00",
  "_обезличено": "ФИО физлиц замаскированы (152-ФЗ); фамилии судей открыты — должностные лица, по ним работает поиск."
}

Текст КАС на дату Проверено

2026-10-08T20:42:13.547333+00:00 · 0.444 s

{
  "jsonrpc": "2.0",
  "id": 3,
  "method": "tools/call",
  "params": {
    "name": "law_get_text",
    "arguments": {
      "act": "КАС",
      "articles": "219",
      "as_of": "2025-01-01"
    }
  }
}

Сокращённый реальный результат; переменная: administrative_law.

{
  "act": {
    "docid": 170464,
    "name": "Кодекс административного судопроизводства Российской Федерации",
    "law_group": "kas_rf",
    "redaction_date": "20260510",
    "n_articles": 427,
    "plain_chars": 757998,
    "token_estimate": 252666,
    "source_url": "https://mcp.amazingcat.net/russian_law/kas_rf",
    "redaction_verified": true,
    "actual_redaction_date": "20260510",
    "actual_redid": 490431
  },
  "as_of": "2025-01-01",
  "articles": [
    {
      "act": "Кодекс административного судопроизводства Российской Федерации",
      "article": "219",
      "as_of": "2025-01-01",
      "redaction_date": "20240819",
      "valid_until": "20250108",
      "redid": 457498,
      "text": "Статья 219. Срок обращения с административным исковым заявлением в суд\n1. Если настоящим Кодексом не установлены иные сроки обращения с административным исковым заявлением в суд, административное иско…"
    }
  ],
  "_note": "Текст в редакции, действовавшей на указанную дату (источник ЭБПИ)."
}

Возмещение судебных расходов

Исходы гражданских дел выбранного суда и года Проверено

2026-10-08T20:42:52.539850+00:00 · 1.819 s

{
  "jsonrpc": "2.0",
  "id": 3,
  "method": "tools/call",
  "params": {
    "name": "kas_aggregate",
    "arguments": {
      "by": "outcome",
      "court": 3,
      "kind": "civil",
      "year_from": 2026,
      "year_to": 2026,
      "limit": 3
    }
  }
}

Сокращённый реальный результат; переменная: costs_outcomes.

{
  "вид_производства": "гражданские",
  "всего_в_срезе": 10490,
  "показано_значений": 3,
  "счётчики": [
    {
      "дел": 8489
    }
  ],
  "_снимок_от": "2026-10-08T20:42:05.217772+00:00",
  "_снимок_полной_сверки": "2026-10-08T19:12:19.705788+00:00",
  "_обезличено": "ФИО физлиц замаскированы (152-ФЗ); фамилии судей открыты — должностные лица, по ним работает поиск."
}

Агрегат относится к гражданским актам суда за год. Этот инструмент не принимает text: это другой срез, а не распределение найденных строк по расходам.

Справочник судов 1…9 и доступных полей Проверено

2026-10-08T20:42:52.975518+00:00 · 0.433 s

{
  "jsonrpc": "2.0",
  "id": 3,
  "method": "tools/call",
  "params": {
    "name": "kas_stats",
    "arguments": {}
  }
}

Сокращённый реальный результат; переменная: costs_stats.

{
  "корпус": "кассационные суды общей юрисдикции (КСОЮ), суды 1–9",
  "бюджет_ответа_знаков": 100000,
  "актов": 1402707,
  "дел": 1809516,
  "актов_в_полнотексте": 1402707,
  "период": {
    "с": "2019-10-03",
    "по": "2026-10-01"
  },
  "по_судам": {
    "1": 226143,
    "2": 212040,
    "3": 134633,
    "4": 230215,
    "5": 88339,
    "6": 186222,
    "7": 49886,
    "8": 184842,
    "9": 90387
  },
  "по_годам": {
    "2019": 13109,
    "2020": 133550,
    "2021": 214927,
    "2022": 227247,
    "2023": 236496,
    "2024": 227319,
    "2025": 215739,
    "2026": 134320
  },
  "судей_в_справочнике": 944,
  "_снимок_от": "2026-10-08T20:42:05.217772+00:00",
  "_снимок_полной_сверки": "2026-10-08T19:12:19.705788+00:00",
  "_обезличено": "ФИО физлиц замаскированы (152-ФЗ); фамилии судей открыты — должностные лица, по ним работает поиск."
}

Проверить выбранную цитату перед выводом Проверено

2026-10-08T20:42:53.101838+00:00 · 0.122 s

costs_quote = client.call('kas_verify_quote', {
    'quote': 'судебные расходы',
    'act_id': costs_search['результаты'][0]['act_id']
})

Сокращённый реальный результат; переменная: costs_quote.

{
  "подтверждено": false,
  "act_id": 1273602,
  "_обезличено": "ФИО физлиц замаскированы (152-ФЗ); фамилии судей открыты — должностные лица, по ним работает поиск."
}

Поиск с морфологическими вариантами и ADJACENT допускает другую форму слов. verify_quote отдельно проверяет точную цитату; false — проверенный отрицательный ответ.

Техническое задание в закупке

Первые 200 знаков решения ФАС Проверено

2026-10-08T20:43:01.300041+00:00 · 7.559 s

procurement_text = client.call('fas_doc', {
    'offset': 0,
    'length': 200,
    'doc': procurement_search['результаты'][0]['uuid']
})

Сокращённый реальный результат; переменная: procurement_text.

{
  "корпус": "решения ФАС России (административная практика, НЕ суд)",
  "запрошено": 1,
  "отдано": 1,
  "документы": [
    {
      "did": 3054,
      "url": "https://br.fas.gov.ru/ca/upravlenie-kontrolya-razmeshcheniya-gosudarstvennogo-zakaza/6bf2bb1d-2ece-45f1-89f6-5053f1a16d11/",
      "вид_документа": "Решение",
      "знаков_всего": 8828,
      "окно": [
        0
      ],
      "продолжение_есть": true
    }
  ],
  "_обезличено": "ФИО физлиц замаскированы (152-ФЗ); фамилии судей открыты — должностные лица, по ним работает поиск."
}

Сверить фразу с решением ФАС Проверено

2026-10-08T20:43:01.585702+00:00 · 0.282 s

procurement_quote = client.call('fas_verify_quote', {
    'quote': 'техническое задание',
    'doc': procurement_search['результаты'][0]['uuid']
})

Сокращённый реальный результат; переменная: procurement_quote.

{
  "корпус": "решения ФАС России (административная практика, НЕ суд)",
  "подтверждено": true,
  "did": 3054,
  "url": "https://br.fas.gov.ru/ca/upravlenie-kontrolya-razmeshcheniya-gosudarstvennogo-zakaza/6bf2bb1d-2ece-45f1-89f6-5053f1a16d11/",
  "_обезличено": "ФИО физлиц замаскированы (152-ФЗ); фамилии судей открыты — должностные лица, по ним работает поиск."
}

Пакетная интеграция

Возврат товара и расторжение потребительского договора

Переиспользуйте MCP-сессию, ограничьте параллельность и темп по квоте своего ключа. Собирайте страницы по next_cursor, затем добирайте выбранные act_ids через *_acts. Повторяйте тот же read-only вызов после Retry-After/server_busy или временного 502/503/504; используйте ограниченное число попыток и случайную задержку. Суточный лимит переносите в очередь до указанного времени. 401 требует обновления доступа, частичный результат требует проверки охвата/сужения.

batch.py + raw.py

"""Bounded batch search with pagination and retries. pip install requests

Keep raw.py in the same directory. Use your token's actual rpm, not a plan name.
"""
import json
import os

from raw import MCP


def pages(client, query, court, max_pages=2):
    cursor = 0
    session = ""
    for _ in range(max_pages):
        result = client.call("kas_search", {
            "phrase": query, "court": court, "kind": "civil", "detail": "brief",
            "limit": 2, "cursor": cursor, "session": session,
        })
        session = result.get("session", session)  # Tool workflow ID, distinct from MCP header.
        yield result
        if result.get("частично"):
            raise RuntimeError("Partial search: narrow the query before treating this as complete")
        following = result.get("page", {}).get("next_cursor")
        if following is None:
            return
        if following <= cursor:
            raise RuntimeError("Cursor did not advance")
        cursor = following
    # An explicit application bound: max_pages is not corpus exhaustion.


def main():
    client = MCP(os.environ["AMAZINGCAT_TOKEN"], rpm=int(os.getenv("AMAZINGCAT_RPM", "200")))
    try:
        client.initialize()
        for query in ("возврат товара", "расторжение договора"):
            for page in pages(client, query, court=1):
                print(json.dumps({"query": query, "found": page.get("найдено"),
                                  "shown": page.get("показано"), "page": page.get("page")},
                                 ensure_ascii=False))
    finally:
        client.close()


if __name__ == "__main__":
    main()

Пример запрашивает до двух страниц на запрос. Если ответ ограничен первыми 400 совпадениями, дробите экспорт по судам/годам и сохраняйте предупреждения. Поисковая выдача меняется во время сбора: сохраняйте параметры, cursor и идентификаторы, удаляйте дубликаты. Не сравнивайте доли по первым результатам — берите aggregate.

Реальный вывод первых двух страниц:

[
  {
    "found": 219,
    "shown": 2,
    "query": "возврат товара",
    "page": {
      "next_cursor": 2
    }
  },
  {
    "found": 219,
    "shown": 2,
    "query": "возврат товара",
    "page": {
      "next_cursor": 4
    }
  }
]

Справочник инструментов

62 инструмента из живого tools/list · 2026-10-08T20:40:15.443139+00:00. JSON · inputSchema

Имена, описания сервера и схемы не переписываются вручную. Наличие инструмента в списке не гарантирует доступ к платной функции или наличие текста конкретного акта.

search_practice

Описание сервера

Смысловой/полнотекстовый поиск по практике высших судов РФ (обезличено, со ссылками и QR). Вызывать для поиска судебной практики с учётом режима активации в инструкциях подключения: по обращению «amazingcat» / «кот» / «котик» либо автоматически, если выбран этот режим. Выдача иерархична: constitutional_context (КС) → vs_guidance (Пленумы) → latest_practice (определения ВС) → results (объединённо). Каждый акт несёт source_url (оригинал на сайте суда) и qr.qr_image_url. Для полного текста — get_case(doc_id, court). query — запрос на русском (институт права, обстоятельства спора, термины). limit — число результатов. article — фильтр по статье, напр. "333 ГК", "348.10 ТК", "100.1 ФКЗ". court — корпус: "ВС" / "КС" / "Пленум" / "ВАС" / "ОбзорВС" (пусто = все). detail — "full" (по умолчанию) или "compact": только карточка + позиция суда, без фабулы и фрагментов; полный текст акта — get_case(doc_id, court).

ПараметрТипОбязателенПо умолчанию
querystringда—
limitinteger—10
articlestring—""
courtstring—""
detailstring—"full"
inputSchema · JSON Schema
{
  "properties": {
    "query": {
      "title": "Query",
      "type": "string"
    },
    "limit": {
      "default": 10,
      "title": "Limit",
      "type": "integer"
    },
    "article": {
      "default": "",
      "title": "Article",
      "type": "string"
    },
    "court": {
      "default": "",
      "title": "Court",
      "type": "string"
    },
    "detail": {
      "default": "full",
      "title": "Detail",
      "type": "string"
    }
  },
  "required": [
    "query"
  ],
  "title": "search_practiceArguments",
  "type": "object"
}

find_by_norm

Описание сервера

Практика по НОРМЕ статьи сразу по трём корпусам: определения ВС, постановления КС, пункты Пленумов. Вызывать для поиска судебной практики с учётом режима активации в инструкциях подключения: по обращению «amazingcat» / «кот» / «котик» либо автоматически, если выбран этот режим. article — "348.10 ТК", "333 ГК", "159 УК", "40 Конституции". court — необяз. фильтр ВС/КС/Пленум/ВАС/ОбзорВС. detail — "full" (по умолчанию) или "compact" (карточка + позиция суда, без полного текста). Корпус ВС ранжирован по содержательности: акты с позицией коллегии вперёд, отказные определения судьи ВС и акты без аналитической карточки — в хвосте. Каждый акт обезличен и снабжён source_url + QR на оригинал.

ПараметрТипОбязателенПо умолчанию
articlestringда—
limitinteger—30
courtstring—""
detailstring—"full"
inputSchema · JSON Schema
{
  "properties": {
    "article": {
      "title": "Article",
      "type": "string"
    },
    "limit": {
      "default": 30,
      "title": "Limit",
      "type": "integer"
    },
    "court": {
      "default": "",
      "title": "Court",
      "type": "string"
    },
    "detail": {
      "default": "full",
      "title": "Detail",
      "type": "string"
    }
  },
  "required": [
    "article"
  ],
  "title": "find_by_normArguments",
  "type": "object"
}

practice_under_norms

Описание сервера

Позиция высших судов РФ СРАЗУ ПО НЕСКОЛЬКИМ НОРМАМ — компактно, сгруппировано по нормам. Вызывать для поиска судебной практики с учётом режима активации в инструкциях подключения: по обращению «amazingcat» / «кот» / «котик» либо автоматически, если выбран этот режим. Укажи нормы, под которые готовишь правовую позицию (как в иске/жалобе/отзыве). По каждой норме вернётся набор актов с готовой позицией суда (position), source_url и QR — БЕЗ полного текста. Один вызов заменяет несколько find_by_norm. Полный текст любого акта — get_case(doc_id, court). norms — нормы через запятую/точку с запятой, напр. "393.1 ГК; 32 ЗоЗПП; 330 ГПК". query — необязательный тезис: если задан, внутри каждой нормы акты ранжируются под него. court — фильтр корпуса: "ВС" / "КС" / "Пленум" (пусто = все). limit_per_norm — сколько актов на норму (по умолчанию 5).

ПараметрТипОбязателенПо умолчанию
normsstring—""
querystring—""
courtstring—""
limit_per_norminteger—5
inputSchema · JSON Schema
{
  "properties": {
    "norms": {
      "default": "",
      "title": "Norms",
      "type": "string"
    },
    "query": {
      "default": "",
      "title": "Query",
      "type": "string"
    },
    "court": {
      "default": "",
      "title": "Court",
      "type": "string"
    },
    "limit_per_norm": {
      "default": 5,
      "title": "Limit Per Norm",
      "type": "integer"
    }
  },
  "title": "practice_under_normsArguments",
  "type": "object"
}

find_term

Описание сервера

Лексический поиск точной фразы или НОМЕРА акта/дела (напр. "<case-number>") по корпусу ВС/КС/Пленумов/ВАС/Обзоров ВС. Вызывать для поиска судебной практики с учётом режима активации в инструкциях подключения: по обращению «amazingcat» / «кот» / «котик» либо автоматически, если выбран этот режим. НЕ ищет по текстам законов и кодексов. Для текста закона используй get_norm_text, law_get_text или law_search; нулевая выдача find_term не означает, что текста статьи нет в law-корпусе. Удобно для скриншотов: извлеки номер дела из изображения и найди акт. Выдача обезличена, с source_url + QR. court — фильтр по корпусу: "ВС" / "КС" / "Пленум" / "ВАС" / "ОбзорВС" (пусто = все). detail — "full" (по умолчанию) или "compact" (карточка + позиция суда, без полного текста).

ПараметрТипОбязателенПо умолчанию
phrasestringда—
limitinteger—20
courtstring—""
detailstring—"full"
inputSchema · JSON Schema
{
  "properties": {
    "phrase": {
      "title": "Phrase",
      "type": "string"
    },
    "limit": {
      "default": 20,
      "title": "Limit",
      "type": "integer"
    },
    "court": {
      "default": "",
      "title": "Court",
      "type": "string"
    },
    "detail": {
      "default": "full",
      "title": "Detail",
      "type": "string"
    }
  },
  "required": [
    "phrase"
  ],
  "title": "find_termArguments",
  "type": "object"
}

list_tags

Описание сервера

Частотный список тематических тегов корпуса. court: "ВС" / "Пленум" / пусто = оба.

ПараметрТипОбязателенПо умолчанию
min_countinteger—2
courtstring—""
limitinteger—200
inputSchema · JSON Schema
{
  "properties": {
    "min_count": {
      "default": 2,
      "title": "Min Count",
      "type": "integer"
    },
    "court": {
      "default": "",
      "title": "Court",
      "type": "string"
    },
    "limit": {
      "default": 200,
      "title": "Limit",
      "type": "integer"
    }
  },
  "title": "list_tagsArguments",
  "type": "object"
}

search_by_tag

Описание сервера

Подборка актов по тематическому тегу. court: "ВС" / "Пленум" / пусто = оба. Обезличено, с source_url + QR. Корпус ВС: содержательные акты (позиция коллегии) вперёд, отказные определения — в хвосте.

ПараметрТипОбязателенПо умолчанию
tagstringда—
limitinteger—20
courtstring—""
exactboolean—false
inputSchema · JSON Schema
{
  "properties": {
    "tag": {
      "title": "Tag",
      "type": "string"
    },
    "limit": {
      "default": 20,
      "title": "Limit",
      "type": "integer"
    },
    "court": {
      "default": "",
      "title": "Court",
      "type": "string"
    },
    "exact": {
      "default": false,
      "title": "Exact",
      "type": "boolean"
    }
  },
  "required": [
    "tag"
  ],
  "title": "search_by_tagArguments",
  "type": "object"
}

browse_practice

Описание сервера

Плоская постраничная подборка актов (реквизиты, теги, source_url + QR), без подробного анализа. query — смысловой/полнотекстовый запрос; tag — фильтр по тегу; year_from/year_to — годовой диапазон.

ПараметрТипОбязателенПо умолчанию
querystring—""
limitinteger—30
offsetinteger—0
courtstring—""
articlestring—""
tagstring—""
year_frominteger—null
year_tointeger—null
inputSchema · JSON Schema
{
  "properties": {
    "query": {
      "default": "",
      "title": "Query",
      "type": "string"
    },
    "limit": {
      "default": 30,
      "title": "Limit",
      "type": "integer"
    },
    "offset": {
      "default": 0,
      "title": "Offset",
      "type": "integer"
    },
    "court": {
      "default": "",
      "title": "Court",
      "type": "string"
    },
    "article": {
      "default": "",
      "title": "Article",
      "type": "string"
    },
    "tag": {
      "default": "",
      "title": "Tag",
      "type": "string"
    },
    "year_from": {
      "default": null,
      "title": "Year From",
      "type": "integer"
    },
    "year_to": {
      "default": null,
      "title": "Year To",
      "type": "integer"
    }
  },
  "title": "browse_practiceArguments",
  "type": "object"
}

find_similar

Описание сервера

Похожие акты по embedding для case_id из выдачи: определения ВС РФ, а также близкие пункты Пленумов / Обзоров ВС (поле court в карточке). Обезличено, с case_number, source_url + QR.

ПараметрТипОбязателенПо умолчанию
case_idintegerда—
limitinteger—10
inputSchema · JSON Schema
{
  "properties": {
    "case_id": {
      "title": "Case Id",
      "type": "integer"
    },
    "limit": {
      "default": 10,
      "title": "Limit",
      "type": "integer"
    }
  },
  "required": [
    "case_id"
  ],
  "title": "find_similarArguments",
  "type": "object"
}

get_case

Описание сервера

Полная (обезличенная) карточка/текст акта по корпусу. court: "ВС" / "КС" / "Пленум" / "ВАС" / "ОбзорВС". Содержит source_url + QR.

ПараметрТипОбязателенПо умолчанию
doc_idintegerда—
courtstring—"ВС"
inputSchema · JSON Schema
{
  "properties": {
    "doc_id": {
      "title": "Doc Id",
      "type": "integer"
    },
    "court": {
      "default": "ВС",
      "title": "Court",
      "type": "string"
    }
  },
  "required": [
    "doc_id"
  ],
  "title": "get_caseArguments",
  "type": "object"
}

get_case_details

Описание сервера

Алиас get_case: полная обезличенная карточка/текст акта по doc_id и корпусу.

ПараметрТипОбязателенПо умолчанию
doc_idintegerда—
courtstring—"ВС"
inputSchema · JSON Schema
{
  "properties": {
    "doc_id": {
      "title": "Doc Id",
      "type": "integer"
    },
    "court": {
      "default": "ВС",
      "title": "Court",
      "type": "string"
    }
  },
  "required": [
    "doc_id"
  ],
  "title": "get_case_detailsArguments",
  "type": "object"
}

locate_pinpoint

Описание сервера

PRO: точная привязка цитаты к PDF акта — страница, визуальный абзац (считая СВЕРХУ страницы), пункт (для Пленума/Обзора) + готовая сноска с URL и QR. Вызывать ПОСЛЕ выбора дословной цитаты из полного текста акта (get_case): передать court ("ВС"/"КС"/"Пленум"/"ОбзорВС"/"ВАС"), doc_id из карточки и дословный фрагмент quote. Если фраза найдена в PDF — вернёт page / visual_paragraph_on_page / act_point для ЭТОЙ цитаты; иначе честно сообщит, что точный pinpoint не установлен (без догадок). Для Пленума/Обзора act_point (номер пункта) возвращается только при наличии PDF акта локально — иначе честный quote_only без догадок. Доступно на тарифе PRO.

ПараметрТипОбязателенПо умолчанию
courtstringда—
doc_idintegerда—
quotestringда—
inputSchema · JSON Schema
{
  "properties": {
    "court": {
      "title": "Court",
      "type": "string"
    },
    "doc_id": {
      "title": "Doc Id",
      "type": "integer"
    },
    "quote": {
      "title": "Quote",
      "type": "string"
    }
  },
  "required": [
    "court",
    "doc_id",
    "quote"
  ],
  "title": "locate_pinpointArguments",
  "type": "object"
}

stats

Описание сервера

Охват базы по корпусам (ВС/КС/Пленумы), норм-индекс, RAG. Личных данных не содержит.

ПараметрТипОбязателенПо умолчанию
inputSchema · JSON Schema
{
  "properties": {},
  "title": "statsArguments",
  "type": "object"
}

law_find

Описание сервера

Найти закон/кодекс по аббревиатуре, номеру или названию («ГК», «44-ФЗ», «о защите прав потребителей»). Возвращает кандидатов с реквизитами и РАЗМЕРОМ (plain_chars/token_estimate/n_articles) — по нему реши, какую часть запрашивать через law_get_text (статья/диапазон/раздел). Неоднозначное («ВК» = Воздушный и Водный) вернёт несколько кандидатов — уточни следующим запросом.

ПараметрТипОбязателенПо умолчанию
querystringда—
limitinteger—8
inputSchema · JSON Schema
{
  "properties": {
    "query": {
      "title": "Query",
      "type": "string"
    },
    "limit": {
      "default": 8,
      "title": "Limit",
      "type": "integer"
    }
  },
  "required": [
    "query"
  ],
  "title": "law_findArguments",
  "type": "object"
}

law_get_text

Описание сервера

Текст закона целиком или в части. Сначала вызови law_find, чтобы узнать размер и оглавление. act — аббревиатура/номер/название («ГК», «44-ФЗ», «Воздушный кодекс»). articles — статья/диапазон/список: «333» | «1-100» | «333,395,85-1». Дотовая статья (с надстрочным суффиксом в оригинале, напр. ст. 203.1) распознаётся в любой форме — «203.1», «203-1», «2031»; в ответе — каноничная форма через точку. section — фильтр по разделу/главе (подстрока из оглавления), если не заданы articles. as_of — дата правоотношений «ГГГГ-ММ-ДД»: вернуть текст в редакции, действовавшей на эту дату. offset — служебная пагинация для продолжения широкого запроса; бери из pagination.next_request. Шапка act отражает акт, из которого РЕАЛЬНО взяты статьи: «НК» + ст. 333.19 → в шапке часть вторая (117-ФЗ) с её редакцией. Если статьи пришли из нескольких актов (частей) группы — в шапке сводная карточка с multi_act=true и список acts, а реквизиты и редакция — у каждой статьи. Если ничего не задано и акт большой — вернётся оглавление с подсказкой по диапазону. ВАЖНО: текст найденной статьи возвращается целиком, без скрытой обрезки. Поэтому для больших актов и крупных статей не запрашивай широкие диапазоны одним вызовом: сначала law_find, затем точную статью или короткий диапазон; если нужно много статей, делай несколько отдельных вызовов. Если широкий запрос не помещается, ответ содержит truncated=true и pagination.next_request с точными аргументами следующего вызова. Без pagination ответ не считается продолжимым.

ПараметрТипОбязателенПо умолчанию
actstringда—
articlesstring—""
sectionstring—""
as_ofstring—""
max_charsinteger—60000
offsetinteger—0
inputSchema · JSON Schema
{
  "properties": {
    "act": {
      "title": "Act",
      "type": "string"
    },
    "articles": {
      "default": "",
      "title": "Articles",
      "type": "string"
    },
    "section": {
      "default": "",
      "title": "Section",
      "type": "string"
    },
    "as_of": {
      "default": "",
      "title": "As Of",
      "type": "string"
    },
    "max_chars": {
      "default": 60000,
      "title": "Max Chars",
      "type": "integer"
    },
    "offset": {
      "default": 0,
      "title": "Offset",
      "type": "integer"
    }
  },
  "required": [
    "act"
  ],
  "title": "law_get_textArguments",
  "type": "object"
}

get_norm_text

Описание сервера

Дословный текст НОРМ закона РФ — для цитаты/сноски. Главный путь, когда норма упомянута в тексте. norms — ОДНА или СРАЗУ НЕСКОЛЬКО норм в одной строке через «;» или запятую, напр. "333 ГК; 1102 Гражданский кодекс; 32 ЗоЗПП; 56 ГПК". Закон в каждой норме можно указывать: • общепринятым сокращением — ГК, ГПК, АПК, КАС, УК, УПК, КоАП, НК, ТК, ЖК, СК, ЗК, ВК, ЗоЗПП…; • полным названием — «Гражданский кодекс», «о защите прав потребителей»; • номером акта — «44-ФЗ», «2300-1». Дотовая статья (с надстрочным суффиксом в оригинале, напр. ст. 203.1) понимается в любой форме — «203.1 ГПК», «203-1 ГПК», «2031 ГПК»; каноничная форма в ответе — через точку. Возвращает по каждой норме: ДОСЛОВНЫЙ текст статьи, ссылку на вьюер для сноски и (with_practice) практику ВС/КС по норме. Неоднозначное сокращение («107 ВК» = Воздушный и Водный кодекс) вернёт текст из всех подходящих актов — уточни следующим запросом. ВАЖНО: статьи возвращаются целиком, без скрытой обрезки. Если нужно проверить много норм или потенциально крупные статьи (например НК), вызывай инструмент несколькими небольшими порциями; для точной цитаты одной нормы лучше один вызов = одна норма. РЕДАКЦИЯ: у каждой нормы есть redaction_date и redaction_verified — true (редакция сверена с ЭБПИ и действует), false (снапшот базы отстал; тогда текст по возможности заменён на текст ДЕЙСТВУЮЩЕЙ редакции — см. redaction_warning) или null (сверить не удалось — не выдавай текст как действующий, проверь law_history). Ссылаться на норму как на действующую можно только при redaction_verified=true либо text_redaction="actual_ebpi".

ПараметрТипОбязателенПо умолчанию
normsstringда—
with_practiceboolean—true
limit_practiceinteger—4
inputSchema · JSON Schema
{
  "properties": {
    "norms": {
      "title": "Norms",
      "type": "string"
    },
    "with_practice": {
      "default": true,
      "title": "With Practice",
      "type": "boolean"
    },
    "limit_practice": {
      "default": 4,
      "title": "Limit Practice",
      "type": "integer"
    }
  },
  "required": [
    "norms"
  ],
  "title": "get_norm_textArguments",
  "type": "object"
}

law_history

Описание сервера

История редакций акта (для запроса текста на дату X) + законы-правки, затрагивающие акт. Возвращает список редакций ЭБПИ с датами вступления (reddate) и redid — по ним law_get_text(as_of=…) выдаёт текст на нужную дату. Глубина истории зависит от акта (часто консолидация с ~2022).

ПараметрТипОбязателенПо умолчанию
actstringда—
inputSchema · JSON Schema
{
  "properties": {
    "act": {
      "title": "Act",
      "type": "string"
    }
  },
  "required": [
    "act"
  ],
  "title": "law_historyArguments",
  "type": "object"
}

law_stats

Описание сервера

Охват корпуса законов: сколько актов, проиндексировано, по видам; дата снапшота.

ПараметрТипОбязателенПо умолчанию
inputSchema · JSON Schema
{
  "properties": {},
  "title": "law_statsArguments",
  "type": "object"
}

npa_org_find

Описание сервера

Локальный справочник органов Банка B: нечеткий поиск ведомства/органа по названию или алиасу (например: Минтранс, Росавиация, ФССП). Возвращает code для последующего поиска по каталогу.

ПараметрТипОбязателенПо умолчанию
querystringда—
limitinteger—10
inputSchema · JSON Schema
{
  "properties": {
    "query": {
      "title": "Query",
      "type": "string"
    },
    "limit": {
      "default": 10,
      "title": "Limit",
      "type": "integer"
    }
  },
  "required": [
    "query"
  ],
  "title": "npa_org_findArguments",
  "type": "object"
}

npa_kind_find

Описание сервера

Локальный справочник видов актов Банка B: нечеткий поиск вида акта (например: Приказ, Постановление, Распоряжение). Возвращает code для npa_catalog_search.

ПараметрТипОбязателенПо умолчанию
querystringда—
limitinteger—10
inputSchema · JSON Schema
{
  "properties": {
    "query": {
      "title": "Query",
      "type": "string"
    },
    "limit": {
      "default": 10,
      "title": "Limit",
      "type": "integer"
    }
  },
  "required": [
    "query"
  ],
  "title": "npa_kind_findArguments",
  "type": "object"
}

npa_catalog_stats

Описание сервера

Размер локального справочника НПА: сколько органов/видов актов и карточек актов проиндексировано.

ПараметрТипОбязателенПо умолчанию
inputSchema · JSON Schema
{
  "properties": {},
  "title": "npa_catalog_statsArguments",
  "type": "object"
}

npa_originals_text

Описание сервера

Текст локально скачанного оригинала НПА по original_id из npa_originals_search/npa_catalog_search.

ПараметрТипОбязателенПо умолчанию
original_idstringда—
max_charsinteger—40000
inputSchema · JSON Schema
{
  "properties": {
    "original_id": {
      "title": "Original Id",
      "type": "string"
    },
    "max_chars": {
      "default": 40000,
      "title": "Max Chars",
      "type": "integer"
    }
  },
  "required": [
    "original_id"
  ],
  "title": "npa_originals_textArguments",
  "type": "object"
}

npa_originals_stats

Описание сервера

Размер локального полнотекстового корпуса скачанных оригиналов НПА.

ПараметрТипОбязателенПо умолчанию
inputSchema · JSON Schema
{
  "properties": {},
  "title": "npa_originals_statsArguments",
  "type": "object"
}

npa_find

Описание сервера

Поиск НПА в банке «Законодательство России» (pravo.gov.ru): ведомственные приказы (ФАП, СанПиН, регламенты, инструкции министерств/служб), а также иные акты, которых НЕТ в федеральном корпусе law_search/get_norm_text. Зови, когда нужен приказ/акт министерства или ведомства, акт по номеру+органу, либо историческая редакция. Запрос — по смыслу/реквизитам, напр. «Федеральные авиационные правила общие правила воздушных перевозок» или «приказ Минтранса 82». Возвращает список {nd, kind, date, number, title, source_url}; затем — npa_text(nd[, as_of]).

ПараметрТипОбязателенПо умолчанию
querystringда—
limitinteger—15
inputSchema · JSON Schema
{
  "properties": {
    "query": {
      "title": "Query",
      "type": "string"
    },
    "limit": {
      "default": 15,
      "title": "Limit",
      "type": "integer"
    }
  },
  "required": [
    "query"
  ],
  "title": "npa_findArguments",
  "type": "object"
}

npa_text

Описание сервера

Текст НПА из банка «Законодательство России» по его nd (см. npa_find). as_of (необяз., ДД.ММ.ГГГГ) — текст редакции, ДЕЙСТВОВАВШЕЙ на дату (историческая глубина, в т.ч. до 2022, чего нет в актуальном федеральном корпусе). Без as_of — действующая редакция. Возвращает реквизиты, список редакций (rdk + даты правок), сам текст и ссылку-источник на вьюер pravo.gov.ru.

ПараметрТипОбязателенПо умолчанию
ndstringда—
as_ofstring—""
inputSchema · JSON Schema
{
  "properties": {
    "nd": {
      "title": "Nd",
      "type": "string"
    },
    "as_of": {
      "default": "",
      "title": "As Of",
      "type": "string"
    }
  },
  "required": [
    "nd"
  ],
  "title": "npa_textArguments",
  "type": "object"
}

wording_review

Описание сервера

ВЫЧИТКА СЛОВОУПОТРЕБЛЕНИЯ русского юридического текста по актам ВС РФ. Зови перед тем как отдать пользователю готовую жалобу, иск, отзыв, возражения или ходатайство, а также на просьбы «причесать формулировки», «написать как суд», «проверить язык документа», «убрать следы нейросети» в юридическом тексте. Присылай предложения СВОЕГО документа целиком (до 40 за вызов, каждое 40–700 знаков), а не ключевые слова. На каждое вернутся: дословные фрагменты мотивировочных и описательных частей определений ВС РФ с номером акта, датой и ссылкой; частоты слов предложения по корпусу; и отдельно сочетания, которых в практике НЕТ НИ РАЗУ, хотя каждое их слово употребительно, — это самый полезный сигнал, обычно именно он и показывает неудачный оборот. Готовых замен инструмент НЕ возвращает и ничего не переписывает: он показывает, какими словами о том же пишет сам суд, а решение принимаешь ты. Более частый вариант не обязан вытеснять уместную формулировку, а редкость сама по себе не ошибка. Фрагменты — образец ЯЗЫКА: переносить из них обстоятельства, требования, нормы и выводы чужого дела нельзя. sentences — предложения вашего текста. per_sentence — сколько фрагментов на предложение (1–8, по умолчанию 3). article — сузить выборку до актов по норме, напр. "203 ГПК" или "203 ГПК; 434 ГПК". Пусто — весь корпус. proceeding — вид судопроизводства: civil / administrative / economic / any. zone — часть акта: reasoning (мотивировочная) / narrative (описательная) / пусто (обе). exclude_roles — роли фрагмента через запятую, которые не нужны: lower_court (пересказ нижестоящего суда), party_position (позиция стороны). frequencies — считать ли частоты выражений (по умолчанию да).

ПараметрТипОбязателенПо умолчанию
sentencesarrayда—
per_sentenceinteger—3
articlestring—""
proceedingstring—"any"
zonestring—""
exclude_rolesstring—""
frequenciesboolean—true
inputSchema · JSON Schema
{
  "properties": {
    "sentences": {
      "items": {
        "type": "string"
      },
      "title": "Sentences",
      "type": "array"
    },
    "per_sentence": {
      "default": 3,
      "title": "Per Sentence",
      "type": "integer"
    },
    "article": {
      "default": "",
      "title": "Article",
      "type": "string"
    },
    "proceeding": {
      "default": "any",
      "title": "Proceeding",
      "type": "string"
    },
    "zone": {
      "default": "",
      "title": "Zone",
      "type": "string"
    },
    "exclude_roles": {
      "default": "",
      "title": "Exclude Roles",
      "type": "string"
    },
    "frequencies": {
      "default": true,
      "title": "Frequencies",
      "type": "boolean"
    }
  },
  "required": [
    "sentences"
  ],
  "title": "wording_reviewArguments",
  "type": "object"
}

wording_stats

Описание сервера

Границы корпуса вычитки: сколько актов и предложений, лимиты вызова, версии. Вызывай, если нужно понять, что именно покрывает wording_review и какие у него ограничения по объёму запроса.

ПараметрТипОбязателенПо умолчанию
inputSchema · JSON Schema
{
  "properties": {},
  "title": "wording_statsArguments",
  "type": "object"
}

kas_stats

Описание сервера

Границы и покрытие корпуса КАССАЦИИ судов общей юрисдикции: суды, годы, охват полей, словарь кодов норм, допустимые значения параметров, размеры частей акта. Вызывать первым: отсюда берутся значения для остальных kas-инструментов. Отвечает мгновенно; счётчики берутся из снимка и пересчитываются в фоне.

ПараметрТипОбязателенПо умолчанию
sessionstring—""
inputSchema · JSON Schema
{
  "properties": {
    "session": {
      "default": "",
      "title": "Session",
      "type": "string"
    }
  },
  "title": "kas_statsArguments",
  "type": "object"
}

kas_categories

Описание сервера

Дерево категорий спора по рубрикатору ГАС «Правосудие» со счётчиками. Категорию проставил сам суд — надёжнее, чем угадывать тему словами.

ПараметрТипОбязателенПо умолчанию
containsstring—""
rootstring—""
limitinteger—40
sessionstring—""
inputSchema · JSON Schema
{
  "properties": {
    "contains": {
      "default": "",
      "title": "Contains",
      "type": "string"
    },
    "root": {
      "default": "",
      "title": "Root",
      "type": "string"
    },
    "limit": {
      "default": 40,
      "title": "Limit",
      "type": "integer"
    },
    "session": {
      "default": "",
      "title": "Session",
      "type": "string"
    }
  },
  "title": "kas_categoriesArguments",
  "type": "object"
}

kas_judges

Описание сервера

Справочник судей кассационных судов: фамилия → идентификатор. Судья задаётся идентификатором, не строкой: формат записи в судах разный.

ПараметрТипОбязателенПо умолчанию
surnamestring—""
courtinteger—0
limitinteger—20
sessionstring—""
inputSchema · JSON Schema
{
  "properties": {
    "surname": {
      "default": "",
      "title": "Surname",
      "type": "string"
    },
    "court": {
      "default": 0,
      "title": "Court",
      "type": "integer"
    },
    "limit": {
      "default": 20,
      "title": "Limit",
      "type": "integer"
    },
    "session": {
      "default": "",
      "title": "Session",
      "type": "string"
    }
  },
  "title": "kas_judgesArguments",
  "type": "object"
}

kas_parties

Описание сервера

Справочник сторон: наименование или ИНН → ключ и число дел. Одно лицо записано в карточках десятками способов; ИНН по названию не выводится.

ПараметрТипОбязателенПо умолчанию
namestring—""
innstring—""
only_orgboolean—false
limitinteger—20
sessionstring—""
inputSchema · JSON Schema
{
  "properties": {
    "name": {
      "default": "",
      "title": "Name",
      "type": "string"
    },
    "inn": {
      "default": "",
      "title": "Inn",
      "type": "string"
    },
    "only_org": {
      "default": false,
      "title": "Only Org",
      "type": "boolean"
    },
    "limit": {
      "default": 20,
      "title": "Limit",
      "type": "integer"
    },
    "session": {
      "default": "",
      "title": "Session",
      "type": "string"
    }
  },
  "title": "kas_partiesArguments",
  "type": "object"
}

kas_probe

Описание сервера

Проверить НЕСКОЛЬКО формулировок вопроса РАЗОМ (через вертикальную черту) и увидеть, сколько актов даёт каждая. Лексический поиск чувствителен к формулировке, одиночная проверка обманывает. Вызывать первым, когда лексика спора неочевидна. kind — вид производства: civil (гражданские, по умолчанию), admin (административные, КАС), koap (правонарушения, КоАП), criminal, all (civil + admin + koap). Виды не смешиваются: ответ всегда называет свой вид и сколько того же лежит в других.

ПараметрТипОбязателенПо умолчанию
variantsstringда—
topinteger—20
detailstring—"brief"
courtinteger—0
categorystring—""
outcomestring—""
appellant_rolestring—""
judge_idinteger—0
partystring—""
normsstring—""
year_frominteger—0
year_tointeger—0
kindstring—""
sessionstring—""
inputSchema · JSON Schema
{
  "properties": {
    "variants": {
      "title": "Variants",
      "type": "string"
    },
    "top": {
      "default": 20,
      "title": "Top",
      "type": "integer"
    },
    "detail": {
      "default": "brief",
      "title": "Detail",
      "type": "string"
    },
    "court": {
      "default": 0,
      "title": "Court",
      "type": "integer"
    },
    "category": {
      "default": "",
      "title": "Category",
      "type": "string"
    },
    "outcome": {
      "default": "",
      "title": "Outcome",
      "type": "string"
    },
    "appellant_role": {
      "default": "",
      "title": "Appellant Role",
      "type": "string"
    },
    "judge_id": {
      "default": 0,
      "title": "Judge Id",
      "type": "integer"
    },
    "party": {
      "default": "",
      "title": "Party",
      "type": "string"
    },
    "norms": {
      "default": "",
      "title": "Norms",
      "type": "string"
    },
    "year_from": {
      "default": 0,
      "title": "Year From",
      "type": "integer"
    },
    "year_to": {
      "default": 0,
      "title": "Year To",
      "type": "integer"
    },
    "kind": {
      "default": "",
      "title": "Kind",
      "type": "string"
    },
    "session": {
      "default": "",
      "title": "Session",
      "type": "string"
    }
  },
  "required": [
    "variants"
  ],
  "title": "kas_probeArguments",
  "type": "object"
}

kas_by_norm

Описание сервера

Практика кассации по НОРМЕ — с предложением, в котором суд на неё сослался. Кодексы и федеральные законы с номером; подзаконные акты индексом не разбираются, их ищут фразой. Код пишется как в индексе («ГПК», «КоАП», «Конституция», «ФЗ № 229-ФЗ»), но синонимы («229-ФЗ», «ЗоЗПП», «Закон об исполнительном производстве») приводятся к нему сами — ответ называет подстановку. Для процессуального ВОПРОСА рамку стадии не выключать. kind — вид производства: civil (гражданские, по умолчанию), admin (административные, КАС), koap (правонарушения, КоАП), criminal, all (civil + admin + koap). Виды не смешиваются: ответ всегда называет свой вид и сколько того же лежит в других.

ПараметрТипОбязателенПо умолчанию
codestringда—
articlestringда—
partstring—""
zonestring—"motivation"
include_frameboolean—true
with_normstring—""
courtinteger—0
outcomestring—""
judge_idinteger—0
limitinteger—10
kindstring—""
sessionstring—""
inputSchema · JSON Schema
{
  "properties": {
    "code": {
      "title": "Code",
      "type": "string"
    },
    "article": {
      "title": "Article",
      "type": "string"
    },
    "part": {
      "default": "",
      "title": "Part",
      "type": "string"
    },
    "zone": {
      "default": "motivation",
      "title": "Zone",
      "type": "string"
    },
    "include_frame": {
      "default": true,
      "title": "Include Frame",
      "type": "boolean"
    },
    "with_norm": {
      "default": "",
      "title": "With Norm",
      "type": "string"
    },
    "court": {
      "default": 0,
      "title": "Court",
      "type": "integer"
    },
    "outcome": {
      "default": "",
      "title": "Outcome",
      "type": "string"
    },
    "judge_id": {
      "default": 0,
      "title": "Judge Id",
      "type": "integer"
    },
    "limit": {
      "default": 10,
      "title": "Limit",
      "type": "integer"
    },
    "kind": {
      "default": "",
      "title": "Kind",
      "type": "string"
    },
    "session": {
      "default": "",
      "title": "Session",
      "type": "string"
    }
  },
  "required": [
    "code",
    "article"
  ],
  "title": "kas_by_normArguments",
  "type": "object"
}

kas_aggregate

Описание сервера

Счётчики по срезу корпуса кассации. Единственный допустимый источник выводов о том, как обычно решаются такие споры, и способ построить профиль судьи. Профиль — для выбора аргументации; статистику по судье в текст документа не вставлять. kind — вид производства: civil (гражданские, по умолчанию), admin (административные, КАС), koap (правонарушения, КоАП), criminal, all (civil + admin + koap). Виды не смешиваются: ответ всегда называет свой вид и сколько того же лежит в других. Разрез by=kind сравнивает виды между собой.

ПараметрТипОбязателенПо умолчанию
bystring—"outcome"
judge_idinteger—0
courtinteger—0
categorystring—""
outcomestring—""
appellant_rolestring—""
groundsstring—""
year_frominteger—0
year_tointeger—0
limitinteger—25
kindstring—""
sessionstring—""
inputSchema · JSON Schema
{
  "properties": {
    "by": {
      "default": "outcome",
      "title": "By",
      "type": "string"
    },
    "judge_id": {
      "default": 0,
      "title": "Judge Id",
      "type": "integer"
    },
    "court": {
      "default": 0,
      "title": "Court",
      "type": "integer"
    },
    "category": {
      "default": "",
      "title": "Category",
      "type": "string"
    },
    "outcome": {
      "default": "",
      "title": "Outcome",
      "type": "string"
    },
    "appellant_role": {
      "default": "",
      "title": "Appellant Role",
      "type": "string"
    },
    "grounds": {
      "default": "",
      "title": "Grounds",
      "type": "string"
    },
    "year_from": {
      "default": 0,
      "title": "Year From",
      "type": "integer"
    },
    "year_to": {
      "default": 0,
      "title": "Year To",
      "type": "integer"
    },
    "limit": {
      "default": 25,
      "title": "Limit",
      "type": "integer"
    },
    "kind": {
      "default": "",
      "title": "Kind",
      "type": "string"
    },
    "session": {
      "default": "",
      "title": "Session",
      "type": "string"
    }
  },
  "title": "kas_aggregateArguments",
  "type": "object"
}

kas_acts

Описание сервера

Пакетный добор: несколько отобранных дел за ОДИН вызов, каждое целой частью акта. По знакам ничего не режется; сколько дел войдёт, зависит от размера части.

ПараметрТипОбязателенПо умолчанию
act_idsstringда—
partstring—"facts"
limitinteger—0
cursorinteger—0
budgetinteger—0
sessionstring—""
inputSchema · JSON Schema
{
  "properties": {
    "act_ids": {
      "title": "Act Ids",
      "type": "string"
    },
    "part": {
      "default": "facts",
      "title": "Part",
      "type": "string"
    },
    "limit": {
      "default": 0,
      "title": "Limit",
      "type": "integer"
    },
    "cursor": {
      "default": 0,
      "title": "Cursor",
      "type": "integer"
    },
    "budget": {
      "default": 0,
      "title": "Budget",
      "type": "integer"
    },
    "session": {
      "default": "",
      "title": "Session",
      "type": "string"
    }
  },
  "required": [
    "act_ids"
  ],
  "title": "kas_actsArguments",
  "type": "object"
}

kas_case

Описание сервера

Полные карточки дел кассации: стороны, движение по инстанциям, исход, реквизиты. Единственный источник реквизитов для ссылки в документе. Принимает и одно дело, и список отобранных. Номер без суда ненадёжен — номера производств повторяются.

ПараметрТипОбязателенПо умолчанию
numberstring—""
courtinteger—0
uidstring—""
act_idinteger—0
act_idsstring—""
limitinteger—0
cursorinteger—0
sessionstring—""
inputSchema · JSON Schema
{
  "properties": {
    "number": {
      "default": "",
      "title": "Number",
      "type": "string"
    },
    "court": {
      "default": 0,
      "title": "Court",
      "type": "integer"
    },
    "uid": {
      "default": "",
      "title": "Uid",
      "type": "string"
    },
    "act_id": {
      "default": 0,
      "title": "Act Id",
      "type": "integer"
    },
    "act_ids": {
      "default": "",
      "title": "Act Ids",
      "type": "string"
    },
    "limit": {
      "default": 0,
      "title": "Limit",
      "type": "integer"
    },
    "cursor": {
      "default": 0,
      "title": "Cursor",
      "type": "integer"
    },
    "session": {
      "default": "",
      "title": "Session",
      "type": "string"
    }
  },
  "title": "kas_caseArguments",
  "type": "object"
}

kas_act

Описание сервера

Текст ОДНОГО кассационного акта: целиком, либо названной частью, либо окном вокруг подстроки. Для нескольких отобранных дел этот инструмент не нужен — есть пакетный добор.

ПараметрТипОбязателенПо умолчанию
act_idintegerда—
partstring—""
aroundstring—""
offsetinteger—0
lengthinteger—0
sessionstring—""
inputSchema · JSON Schema
{
  "properties": {
    "act_id": {
      "title": "Act Id",
      "type": "integer"
    },
    "part": {
      "default": "",
      "title": "Part",
      "type": "string"
    },
    "around": {
      "default": "",
      "title": "Around",
      "type": "string"
    },
    "offset": {
      "default": 0,
      "title": "Offset",
      "type": "integer"
    },
    "length": {
      "default": 0,
      "title": "Length",
      "type": "integer"
    },
    "session": {
      "default": "",
      "title": "Session",
      "type": "string"
    }
  },
  "required": [
    "act_id"
  ],
  "title": "kas_actArguments",
  "type": "object"
}

kas_verify_quote

Описание сервера

Сверить, что цитата ДОСЛОВНО есть в кассационном акте. В процессуальный документ переносится только подтверждённое — это защита от выдуманных формулировок.

ПараметрТипОбязателенПо умолчанию
act_idintegerда—
quotestringда—
sessionstring—""
inputSchema · JSON Schema
{
  "properties": {
    "act_id": {
      "title": "Act Id",
      "type": "integer"
    },
    "quote": {
      "title": "Quote",
      "type": "string"
    },
    "session": {
      "default": "",
      "title": "Session",
      "type": "string"
    }
  },
  "required": [
    "act_id",
    "quote"
  ],
  "title": "kas_verify_quoteArguments",
  "type": "object"
}

oblsud_courts

Описание сервера

Справочник судов уровня СУБЪЕКТА (областных, краевых, республиканских, окружных, городских судов Москвы и Петербурга) со счётчиками: код суда, название, сайт, сколько карточек дел в индексе и сколько документов по суду уже выкачано (тексты остального докачиваются по требованию, см. oblsud_act). Вызывать ПЕРВЫМ. Код суда — обязательный параметр oblsud_case и oblsud_act, и взять его больше неоткуда: здесь суд обозначается не цифрой 1..9, как кассационные суды в kas_*, а кодом ГАС «Правосудие» вида 50OS0000 (Московский областной), 78OS0000 (Санкт-Петербургский городской). Отсутствующие карточки запрашиваются с сайта. contains — часть кода или названия, чтобы не читать все 83 строки.

ПараметрТипОбязателенПо умолчанию
containsstring—""
sessionstring—""
inputSchema · JSON Schema
{
  "properties": {
    "contains": {
      "default": "",
      "title": "Contains",
      "type": "string"
    },
    "session": {
      "default": "",
      "title": "Session",
      "type": "string"
    }
  },
  "title": "oblsud_courtsArguments",
  "type": "object"
}

oblsud_case

Описание сервера

Карточка дела областного (краевого, республиканского, окружного, городского) суда: суд, номер, дело и суд первой инстанции, стороны, судья-докладчик, даты, результат, движение дела и ПЕРЕЧЕНЬ ОПУБЛИКОВАННЫХ АКТОВ с датой и видом каждого. Текста акта не отдаёт — за текстом идут в oblsud_act по act_key из этого перечня. ЧЕМ ОТЛИЧАЕТСЯ ОТ oblsud_act: oblsud_case отвечает на вопрос «что это за дело и какие документы по нему опубликованы», oblsud_act — «что написано в конкретном документе». Начинать почти всегда надо отсюда: у дела бывает несколько актов (определение о назначении, апелляционное определение, определение об исправлении описки), и брать текст «первого попавшегося» нельзя. СУД ОБЯЗАТЕЛЕН вместе с номером, и это не формальность. Номера производств не уникальны между судами. Если court не передан, инструмент вернёт ВСЕ совпадения и потребует уточнить — сам он не выбирает и никогда не выберет. ДАТЫ. Инструмент отдаёт дату ДОКУМЕНТА из карточки суда, а не дату заседания и не дату поступления дела. Сохранённая карточка берётся из индекса, отсутствующая — с mos-gorsud.ru. Адресация: court + number, либо uid (для судов sudrf — case_uid из карточки, для Мосгорсуда — uuid или путь /mgs/services/cases/<раздел>/details/<uuid>).

ПараметрТипОбязателенПо умолчанию
courtstring—""
numberstring—""
uidstring—""
sessionstring—""
act_idinteger—0
act_idsstring—""
limitinteger—0
cursorinteger—0
inputSchema · JSON Schema
{
  "properties": {
    "court": {
      "default": "",
      "title": "Court",
      "type": "string"
    },
    "number": {
      "default": "",
      "title": "Number",
      "type": "string"
    },
    "uid": {
      "default": "",
      "title": "Uid",
      "type": "string"
    },
    "session": {
      "default": "",
      "title": "Session",
      "type": "string"
    },
    "act_id": {
      "default": 0,
      "title": "Act Id",
      "type": "integer"
    },
    "act_ids": {
      "default": "",
      "title": "Act Ids",
      "type": "string"
    },
    "limit": {
      "default": 0,
      "title": "Limit",
      "type": "integer"
    },
    "cursor": {
      "default": 0,
      "title": "Cursor",
      "type": "integer"
    }
  },
  "title": "oblsud_caseArguments",
  "type": "object"
}

oblsud_act

Описание сервера

Текст одного акта по act_key/act_id либо court+number/uid (при неоднозначности выберите документ через oblsud_case). date сужает дату акта. Строка part — intro/facts/motivation/resolution/args/full, число — физическая часть страницы. offset/length или around задаёт окно; session связывает вызовы. Границы именованных частей — по апелляционному профилю производства, неизвестные и первая инстанция явно отмечаются. Числовая адресация сохраняет докачку с сайта. JSON содержит дату, вид документа, источник и смещения. Перед цитированием — oblsud_verify_quote.

ПараметрТипОбязателенПо умолчанию
act_keystring—""
courtstring—""
numberstring—""
uidstring—""
datestring—""
partinteger | string—0
aroundstring—""
offsetinteger—0
lengthinteger—0
sessionstring—""
act_idinteger—0
inputSchema · JSON Schema
{
  "properties": {
    "act_key": {
      "default": "",
      "title": "Act Key",
      "type": "string"
    },
    "court": {
      "default": "",
      "title": "Court",
      "type": "string"
    },
    "number": {
      "default": "",
      "title": "Number",
      "type": "string"
    },
    "uid": {
      "default": "",
      "title": "Uid",
      "type": "string"
    },
    "date": {
      "default": "",
      "title": "Date",
      "type": "string"
    },
    "part": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "string"
        }
      ],
      "default": 0,
      "title": "Part"
    },
    "around": {
      "default": "",
      "title": "Around",
      "type": "string"
    },
    "offset": {
      "default": 0,
      "title": "Offset",
      "type": "integer"
    },
    "length": {
      "default": 0,
      "title": "Length",
      "type": "integer"
    },
    "session": {
      "default": "",
      "title": "Session",
      "type": "string"
    },
    "act_id": {
      "default": 0,
      "title": "Act Id",
      "type": "integer"
    }
  },
  "title": "oblsud_actArguments",
  "type": "object"
}

oblsud_by_norm

Описание сервера

По норме code/article; JSON с охватом и ссылками на разные акты. Кодексы и федеральные законы канонизируются общей библиотекой (ГК, ГПК, КоАП, Конституция, 229-ФЗ, ЗоЗПП). part — часть либо пункт, point — строго пункт; вместе они означают часть и пункт. query ищется в той же физической части, что ссылка. zone — именованная часть, with_norm — дополнительное выражение норм. include_frame=false пока возвращает явное отсутствие разметки рамки (этап 2c). court/year/kind/proc/date_from/date_to/judge/judge_id/party/category/first_court/ outcome/limit/session — срез и объём как у oblsud_search.

ПараметрТипОбязателенПо умолчанию
codestringда—
articlestringда—
partstring—""
querystring—""
courtstring—""
yearstring—""
kindstring—""
date_fromstring—""
date_tostring—""
judgestring—""
partystring—""
categorystring—""
first_courtstring—""
outcomestring—""
limitinteger—20
sessionstring—""
pointstring—""
zonestring—""
include_frameboolean—true
with_normstring—""
judge_idinteger—0
procstring—""
inputSchema · JSON Schema
{
  "properties": {
    "code": {
      "title": "Code",
      "type": "string"
    },
    "article": {
      "title": "Article",
      "type": "string"
    },
    "part": {
      "default": "",
      "title": "Part",
      "type": "string"
    },
    "query": {
      "default": "",
      "title": "Query",
      "type": "string"
    },
    "court": {
      "default": "",
      "title": "Court",
      "type": "string"
    },
    "year": {
      "default": "",
      "title": "Year",
      "type": "string"
    },
    "kind": {
      "default": "",
      "title": "Kind",
      "type": "string"
    },
    "date_from": {
      "default": "",
      "title": "Date From",
      "type": "string"
    },
    "date_to": {
      "default": "",
      "title": "Date To",
      "type": "string"
    },
    "judge": {
      "default": "",
      "title": "Judge",
      "type": "string"
    },
    "party": {
      "default": "",
      "title": "Party",
      "type": "string"
    },
    "category": {
      "default": "",
      "title": "Category",
      "type": "string"
    },
    "first_court": {
      "default": "",
      "title": "First Court",
      "type": "string"
    },
    "outcome": {
      "default": "",
      "title": "Outcome",
      "type": "string"
    },
    "limit": {
      "default": 20,
      "title": "Limit",
      "type": "integer"
    },
    "session": {
      "default": "",
      "title": "Session",
      "type": "string"
    },
    "point": {
      "default": "",
      "title": "Point",
      "type": "string"
    },
    "zone": {
      "default": "",
      "title": "Zone",
      "type": "string"
    },
    "include_frame": {
      "default": true,
      "title": "Include Frame",
      "type": "boolean"
    },
    "with_norm": {
      "default": "",
      "title": "With Norm",
      "type": "string"
    },
    "judge_id": {
      "default": 0,
      "title": "Judge Id",
      "type": "integer"
    },
    "proc": {
      "default": "",
      "title": "Proc",
      "type": "string"
    }
  },
  "required": [
    "code",
    "article"
  ],
  "title": "oblsud_by_normArguments",
  "type": "object"
}

oblsud_probe

Описание сервера

Сравнить до восьми формулировок variants (или queries) через |. JSON считает разные акты и показывает top результатов с detail. court, year, kind (документ), proc (производство), date_from/date_to, judge/judge_id, party, category, first_court, outcome, appellant_role, norms, year_from/year_to сужают срез как у oblsud_search. session связывает вызовы. Частичный счёт — нижняя граница, неизвестный остаток не считается нулём.

ПараметрТипОбязателенПо умолчанию
queriesstring—""
courtstring—""
yearstring—""
kindstring—""
date_fromstring—""
date_tostring—""
judgestring—""
partystring—""
categorystring—""
first_courtstring—""
outcomestring—""
sessionstring—""
variantsstring—""
topinteger—20
detailstring—"brief"
appellant_rolestring—""
judge_idinteger—0
normsstring—""
year_frominteger—0
year_tointeger—0
procstring—""
inputSchema · JSON Schema
{
  "properties": {
    "queries": {
      "default": "",
      "title": "Queries",
      "type": "string"
    },
    "court": {
      "default": "",
      "title": "Court",
      "type": "string"
    },
    "year": {
      "default": "",
      "title": "Year",
      "type": "string"
    },
    "kind": {
      "default": "",
      "title": "Kind",
      "type": "string"
    },
    "date_from": {
      "default": "",
      "title": "Date From",
      "type": "string"
    },
    "date_to": {
      "default": "",
      "title": "Date To",
      "type": "string"
    },
    "judge": {
      "default": "",
      "title": "Judge",
      "type": "string"
    },
    "party": {
      "default": "",
      "title": "Party",
      "type": "string"
    },
    "category": {
      "default": "",
      "title": "Category",
      "type": "string"
    },
    "first_court": {
      "default": "",
      "title": "First Court",
      "type": "string"
    },
    "outcome": {
      "default": "",
      "title": "Outcome",
      "type": "string"
    },
    "session": {
      "default": "",
      "title": "Session",
      "type": "string"
    },
    "variants": {
      "default": "",
      "title": "Variants",
      "type": "string"
    },
    "top": {
      "default": 20,
      "title": "Top",
      "type": "integer"
    },
    "detail": {
      "default": "brief",
      "title": "Detail",
      "type": "string"
    },
    "appellant_role": {
      "default": "",
      "title": "Appellant Role",
      "type": "string"
    },
    "judge_id": {
      "default": 0,
      "title": "Judge Id",
      "type": "integer"
    },
    "norms": {
      "default": "",
      "title": "Norms",
      "type": "string"
    },
    "year_from": {
      "default": 0,
      "title": "Year From",
      "type": "integer"
    },
    "year_to": {
      "default": 0,
      "title": "Year To",
      "type": "integer"
    },
    "proc": {
      "default": "",
      "title": "Proc",
      "type": "string"
    }
  },
  "title": "oblsud_probeArguments",
  "type": "object"
}

oblsud_parties

Описание сервера

Справочник сторон со стабильным party_id, числом дел и разных актов. name — начало слов имени или названия (например ПАО Аэрофлот), inn — явные 10/12 цифр источника, only_org — только организации. court/year/date_from/ date_to сужают наличие участия; limit <=100, session связывает вызовы. ФИО физлица маскировано штатно: первая/последняя буква, длина сохранена. Технический ключ физлица непрозрачен. Список дел лица — oblsud_search(party=…).

ПараметрТипОбязателенПо умолчанию
namestring—""
courtstring—""
yearstring—""
date_fromstring—""
date_tostring—""
limitinteger—20
sessionstring—""
innstring—""
only_orgboolean—false
inputSchema · JSON Schema
{
  "properties": {
    "name": {
      "default": "",
      "title": "Name",
      "type": "string"
    },
    "court": {
      "default": "",
      "title": "Court",
      "type": "string"
    },
    "year": {
      "default": "",
      "title": "Year",
      "type": "string"
    },
    "date_from": {
      "default": "",
      "title": "Date From",
      "type": "string"
    },
    "date_to": {
      "default": "",
      "title": "Date To",
      "type": "string"
    },
    "limit": {
      "default": 20,
      "title": "Limit",
      "type": "integer"
    },
    "session": {
      "default": "",
      "title": "Session",
      "type": "string"
    },
    "inn": {
      "default": "",
      "title": "Inn",
      "type": "string"
    },
    "only_org": {
      "default": false,
      "title": "Only Org",
      "type": "boolean"
    }
  },
  "title": "oblsud_partiesArguments",
  "type": "object"
}

oblsud_aggregate

Описание сервера

Распределение разных актов: by=court/year/kind/proc/judge/outcome/ appellant/category. query, court, year, kind, proc, date_from/date_to, judge/judge_id, party, category, first_court, outcome, appellant_role, grounds, year_from/year_to сужают срез; limit <=100, session связывает вызовы. JSON показывает охват и снимок.

ПараметрТипОбязателенПо умолчанию
bystring—"court"
querystring—""
courtstring—""
yearstring—""
kindstring—""
date_fromstring—""
date_tostring—""
judgestring—""
partystring—""
categorystring—""
first_courtstring—""
outcomestring—""
limitinteger—20
sessionstring—""
appellant_rolestring—""
groundsstring—""
judge_idinteger—0
year_frominteger—0
year_tointeger—0
procstring—""
inputSchema · JSON Schema
{
  "properties": {
    "by": {
      "default": "court",
      "title": "By",
      "type": "string"
    },
    "query": {
      "default": "",
      "title": "Query",
      "type": "string"
    },
    "court": {
      "default": "",
      "title": "Court",
      "type": "string"
    },
    "year": {
      "default": "",
      "title": "Year",
      "type": "string"
    },
    "kind": {
      "default": "",
      "title": "Kind",
      "type": "string"
    },
    "date_from": {
      "default": "",
      "title": "Date From",
      "type": "string"
    },
    "date_to": {
      "default": "",
      "title": "Date To",
      "type": "string"
    },
    "judge": {
      "default": "",
      "title": "Judge",
      "type": "string"
    },
    "party": {
      "default": "",
      "title": "Party",
      "type": "string"
    },
    "category": {
      "default": "",
      "title": "Category",
      "type": "string"
    },
    "first_court": {
      "default": "",
      "title": "First Court",
      "type": "string"
    },
    "outcome": {
      "default": "",
      "title": "Outcome",
      "type": "string"
    },
    "limit": {
      "default": 20,
      "title": "Limit",
      "type": "integer"
    },
    "session": {
      "default": "",
      "title": "Session",
      "type": "string"
    },
    "appellant_role": {
      "default": "",
      "title": "Appellant Role",
      "type": "string"
    },
    "grounds": {
      "default": "",
      "title": "Grounds",
      "type": "string"
    },
    "judge_id": {
      "default": 0,
      "title": "Judge Id",
      "type": "integer"
    },
    "year_from": {
      "default": 0,
      "title": "Year From",
      "type": "integer"
    },
    "year_to": {
      "default": 0,
      "title": "Year To",
      "type": "integer"
    },
    "proc": {
      "default": "",
      "title": "Proc",
      "type": "string"
    }
  },
  "title": "oblsud_aggregateArguments",
  "type": "object"
}

oblsud_stats

Описание сервера

Охват собранного корпуса: известно документов, собрано текстов, виды документов/производства и наличие полей карточек. Без параметров — весь корпус; court — код или однозначная часть названия, year — год либо диапазон 2019-2021. Перечень видов — это и есть список допустимых значений параметра kind у oblsud_search; других источников этого перечня нет. Части документа не увеличивают процент охвата. Для поиска по нормам показывает также охват разметки, уникальные связи «норма — акт», число упоминаний и ошибки разбора. Это отдельные показатели: наличие текста ещё не означает, что его ссылки уже разобраны. Наличие полей и производства считается по суду/корпусу целиком; year сужает охват текстов и норм. _снимок_* показывает время каждого индекса.

ПараметрТипОбязателенПо умолчанию
courtstring—""
yearstring—""
sessionstring—""
inputSchema · JSON Schema
{
  "properties": {
    "court": {
      "default": "",
      "title": "Court",
      "type": "string"
    },
    "year": {
      "default": "",
      "title": "Year",
      "type": "string"
    },
    "session": {
      "default": "",
      "title": "Session",
      "type": "string"
    }
  },
  "title": "oblsud_statsArguments",
  "type": "object"
}

oblsud_verify_quote

Описание сервера

Сверить дословную цитату с хранимыми текстами акта и показать окружение. Передайте act_key из поиска/карточки либо суд ВМЕСТЕ с номером дела. Если у дела несколько документов, выберите act_key через oblsud_case. Проверяются все хранимые части; ответ указывает part и позицию с нуля. Различия только в пробелах/мягких переносах отмечаются отдельно. При недоступном тексте или таймауте цитата считается НЕ ПРОВЕРЕННОЙ. quote — минимум 15 знаков. Сеть не используется, акты не докачиваются.

ПараметрТипОбязателенПо умолчанию
act_keystring—""
courtstring—""
numberstring—""
quotestring—""
sessionstring—""
act_idinteger—0
inputSchema · JSON Schema
{
  "properties": {
    "act_key": {
      "default": "",
      "title": "Act Key",
      "type": "string"
    },
    "court": {
      "default": "",
      "title": "Court",
      "type": "string"
    },
    "number": {
      "default": "",
      "title": "Number",
      "type": "string"
    },
    "quote": {
      "default": "",
      "title": "Quote",
      "type": "string"
    },
    "session": {
      "default": "",
      "title": "Session",
      "type": "string"
    },
    "act_id": {
      "default": 0,
      "title": "Act Id",
      "type": "integer"
    }
  },
  "title": "oblsud_verify_quoteArguments",
  "type": "object"
}

oblsud_acts

Описание сервера

Пакетный добор целых частей выбранных актов: act_ids через запятую. part — intro/facts/reasoning/resolution/args/full; budget — знаки, по умолчанию 100000. Непоместившиеся целые части перечисляются; cursor продолжает список.

ПараметрТипОбязателенПо умолчанию
act_idsstringда—
partstring—"facts"
limitinteger—0
cursorinteger—0
budgetinteger—0
sessionstring—""
inputSchema · JSON Schema
{
  "properties": {
    "act_ids": {
      "title": "Act Ids",
      "type": "string"
    },
    "part": {
      "default": "facts",
      "title": "Part",
      "type": "string"
    },
    "limit": {
      "default": 0,
      "title": "Limit",
      "type": "integer"
    },
    "cursor": {
      "default": 0,
      "title": "Cursor",
      "type": "integer"
    },
    "budget": {
      "default": 0,
      "title": "Budget",
      "type": "integer"
    },
    "session": {
      "default": "",
      "title": "Session",
      "type": "string"
    }
  },
  "required": [
    "act_ids"
  ],
  "title": "oblsud_actsArguments",
  "type": "object"
}

oblsud_categories

Описание сервера

Категории споров из карточек облсудов: рубрика/корень, дела и разные акты. contains — подстрока, root — точный корень; идентификаторы и счётчики из снимка.

ПараметрТипОбязателенПо умолчанию
containsstring—""
rootstring—""
limitinteger—40
sessionstring—""
inputSchema · JSON Schema
{
  "properties": {
    "contains": {
      "default": "",
      "title": "Contains",
      "type": "string"
    },
    "root": {
      "default": "",
      "title": "Root",
      "type": "string"
    },
    "limit": {
      "default": 40,
      "title": "Limit",
      "type": "integer"
    },
    "session": {
      "default": "",
      "title": "Session",
      "type": "string"
    }
  },
  "title": "oblsud_categoriesArguments",
  "type": "object"
}

oblsud_judges

Описание сервера

Судьи-докладчики облсудов: начало фамилии → стабильный judge_id для поиска. court — код или однозначное название; однофамильцев разных судов не объединяет.

ПараметрТипОбязателенПо умолчанию
surnamestring—""
courtstring—""
limitinteger—20
sessionstring—""
inputSchema · JSON Schema
{
  "properties": {
    "surname": {
      "default": "",
      "title": "Surname",
      "type": "string"
    },
    "court": {
      "default": "",
      "title": "Court",
      "type": "string"
    },
    "limit": {
      "default": 20,
      "title": "Limit",
      "type": "integer"
    },
    "session": {
      "default": "",
      "title": "Session",
      "type": "string"
    }
  },
  "title": "oblsud_judgesArguments",
  "type": "object"
}

case_by_uid

Описание сервера

ВСЕ производства одного дела по УИД — сквозь все суды общей юрисдикции. УИД (уникальный идентификатор дела, вида <court>-<instance>-<year>-<serial>-<check>) присваивается делу в первой инстанции и идёт с ним дальше. Под одним УИД лежат: * само дело в первой инстанции (районный суд, в т.ч. районные суды Москвы); * МАТЕРИАЛЫ по этому делу — взыскание судебных расходов, разъяснение решения, индексация, отсрочка, пересмотр по новым обстоятельствам, исполнение приговора: у них свой номер (13-…, М-…, 4/17-…), но ТОТ ЖЕ УИД; * апелляция (областной, краевой, республиканский суд; Московский городской суд); * кассация (кассационные суды общей юрисдикции); * повторные рассмотрения после возврата из вышестоящего суда — новый номер, тот же УИД. Где взять УИД: в карточке дела на сайте суда и в шапке судебных актов (с 2019 г.). Вызывать, когда нужна история дела целиком: чем кончилась апелляция, была ли кассация, вернули ли дело, какие были материалы после решения. Каждое производство — суд, номер, даты, результат, вид (дело / материал / апелляция / кассация), ссылка на карточку суда и каким инструментом идти за актами («далее»). Полнота: первая инстанция и кассация — по собранным карточкам; апелляция — по УИД в тексте акта или по номеру дела первой инстанции.

ПараметрТипОбязателенПо умолчанию
uidstring—""
sessionstring—""
inputSchema · JSON Schema
{
  "properties": {
    "uid": {
      "default": "",
      "title": "Uid",
      "type": "string"
    },
    "session": {
      "default": "",
      "title": "Session",
      "type": "string"
    }
  },
  "title": "case_by_uidArguments",
  "type": "object"
}

raysud_case

Описание сервера

Карточка районного дела, доступные стадии и список собранных документов. court — код (37RS0019) либо однозначное название; неоднозначное название возвращает кандидатов с регионом. number — основной, прежний номер или номер материала с буквальным суффиксом; нормализация едина с индексом Д1. Без суда — список «суд — дело» по всем судам и просьба уточнить court: показано N из M, limit<=100, cursor продолжает страницу. Повторные рассмотрения и материалы по УИД сохраняются отдельными производствами. uid — УИД производства через uid_index (не UUID карточки сайта). act_id/act_ids — документы из raysud_case; act_ids перечисляются через запятую. Москва 77RS читается из mgs_district.db. Даты/состояние карточки читаются по живому PK; полной таблицы движения в локальных источниках пока нет. Индекс номеров/актов догружается каждые 15 минут, изменённые старые поля перечитываются циклом refresh; отметки _снимок_* показывают срез.

ПараметрТипОбязателенПо умолчанию
courtstring—""
numberstring—""
uidstring—""
sessionstring—""
limitinteger—20
cursorinteger—0
act_idinteger—0
act_idsstring—""
inputSchema · JSON Schema
{
  "properties": {
    "court": {
      "default": "",
      "title": "Court",
      "type": "string"
    },
    "number": {
      "default": "",
      "title": "Number",
      "type": "string"
    },
    "uid": {
      "default": "",
      "title": "Uid",
      "type": "string"
    },
    "session": {
      "default": "",
      "title": "Session",
      "type": "string"
    },
    "limit": {
      "default": 20,
      "title": "Limit",
      "type": "integer"
    },
    "cursor": {
      "default": 0,
      "title": "Cursor",
      "type": "integer"
    },
    "act_id": {
      "default": 0,
      "title": "Act Id",
      "type": "integer"
    },
    "act_ids": {
      "default": "",
      "title": "Act Ids",
      "type": "string"
    }
  },
  "title": "raysud_caseArguments",
  "type": "object"
}

raysud_act

Описание сервера

Текст одного районного документа по act_id или act_key=raysud:<doc_id>. Те же параметры окна, что у kas_act/oblsud_act: around (подстрока), offset, length (знаки исходника, максимум 100000), part=full либо номер физической части из raysud_case. part=0 по умолчанию читает часть, адресованную act_id. intro/facts/reasoning/resolution/args пока возвращают явное отсутствие разметки первой инстанции; не подменяются кассационным профилем. court+number или uid выбирают акт только при однозначности; date (ISO) сужает дату документа. Если актов несколько — выберите act_id из списка. JSON содержит суд, номер, дату/вид документа, источник, исходные смещения и продолжение. part=full читает документ окнами до 100000 знаков; продолжайте по offset из ответа. Реквизиты физлиц заменяются понятными масками; окно/offset/length и around остаются в координатах исходника, поэтому длина выданной строки может отличаться от размера окна. Маска не является дословной цитатой. ФИО обезличивает общий публичный слой. Отсутствующий текст не скачивается в этом вызове; используйте ссылку на источник.

ПараметрТипОбязателенПо умолчанию
act_keystring—""
courtstring—""
numberstring—""
uidstring—""
datestring—""
partinteger | string—0
aroundstring—""
offsetinteger—0
lengthinteger—0
sessionstring—""
act_idinteger—0
inputSchema · JSON Schema
{
  "properties": {
    "act_key": {
      "default": "",
      "title": "Act Key",
      "type": "string"
    },
    "court": {
      "default": "",
      "title": "Court",
      "type": "string"
    },
    "number": {
      "default": "",
      "title": "Number",
      "type": "string"
    },
    "uid": {
      "default": "",
      "title": "Uid",
      "type": "string"
    },
    "date": {
      "default": "",
      "title": "Date",
      "type": "string"
    },
    "part": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "string"
        }
      ],
      "default": 0,
      "title": "Part"
    },
    "around": {
      "default": "",
      "title": "Around",
      "type": "string"
    },
    "offset": {
      "default": 0,
      "title": "Offset",
      "type": "integer"
    },
    "length": {
      "default": 0,
      "title": "Length",
      "type": "integer"
    },
    "session": {
      "default": "",
      "title": "Session",
      "type": "string"
    },
    "act_id": {
      "default": 0,
      "title": "Act Id",
      "type": "integer"
    }
  },
  "title": "raysud_actArguments",
  "type": "object"
}

raysud_courts

Описание сервера

Районные/городские суды: код, название, регион, источник и число карточек. contains — код, слова названия или регион; region — часть названия региона, code — код либо его префикс (37RS, 77RS); limit<=100, cursor продолжает список. Москва включается из отдельной mgs_district.db с честной пометкой охвата. Для дела выберите код и вызовите raysud_case(court=…, number=…).

ПараметрТипОбязателенПо умолчанию
containsstring—""
sessionstring—""
regionstring—""
codestring—""
limitinteger—100
cursorinteger—0
inputSchema · JSON Schema
{
  "properties": {
    "contains": {
      "default": "",
      "title": "Contains",
      "type": "string"
    },
    "session": {
      "default": "",
      "title": "Session",
      "type": "string"
    },
    "region": {
      "default": "",
      "title": "Region",
      "type": "string"
    },
    "code": {
      "default": "",
      "title": "Code",
      "type": "string"
    },
    "limit": {
      "default": 100,
      "title": "Limit",
      "type": "integer"
    },
    "cursor": {
      "default": 0,
      "title": "Cursor",
      "type": "integer"
    }
  },
  "title": "raysud_courtsArguments",
  "type": "object"
}

fas_stats

Описание сервера

Границы и покрытие корпуса решений ФАС России: сколько документов, за какой период, какие ВИДЫ документов и какие ТЕРРИТОРИАЛЬНЫЕ ОРГАНЫ в нём есть, сколько документов по годам. Вызывать первым: значения параметров fas_search берутся отсюда — вид документа и управление задаются так, как их печатает ФАС («Решение», «Предписание», «Приморское УФАС России»). ЧЕМ ЭТО ОТЛИЧАЕТСЯ ОТ СУДЕБНЫХ КОРПУСОВ. Здесь административная практика антимонопольного органа, а не суд: комиссия УФАС рассматривает жалобы на закупки (44-ФЗ, 223-ФЗ), дела о нарушении Закона о защите конкуренции, реестр недобросовестных поставщиков, рекламу, тарифы. На решение ФАС нельзя ссылаться как на позицию суда — оно само оспаривается в арбитражном суде. Судебную практику ищут в kas_* (кассация ОЮ), oblsud_* (облсуды) и search_practice/find_by_norm (ВС, КС, Пленумы, ВАС). Отвечает мгновенно: счётчики берутся из снимка на диске, в обработчике вызова счёта по корпусу нет вовсе.

ПараметрТипОбязателенПо умолчанию
sessionstring—""
inputSchema · JSON Schema
{
  "properties": {
    "session": {
      "default": "",
      "title": "Session",
      "type": "string"
    }
  },
  "title": "fas_statsArguments",
  "type": "object"
}

fas_doc

Описание сервера

Текст документа ФАС: целиком, окном или вокруг подстроки. Принимает uuid, адрес страницы (/to/…/<uuid>/) или did из выдачи fas_search; можно НЕСКОЛЬКО через запятую — тогда документы отдаются подряд, пока хватает бюджета ответа, а не поместившиеся называются поимённо, а не отбрасываются молча. around — показать окно вокруг подстроки (удобно, когда нужен один абзац из решения на 200 тыс. знаков). offset/length — окно по смещению; продолжение ответ подсказывает сам. Вместе с документом отдаётся карточка ДЕЛА, если документ на неё ссылается: у ФАС дело и документ — разные страницы, и стадия со сроками стоят в деле.

ПараметрТипОбязателенПо умолчанию
docstring—""
aroundstring—""
offsetinteger—0
lengthinteger—0
budgetinteger—0
sessionstring—""
inputSchema · JSON Schema
{
  "properties": {
    "doc": {
      "default": "",
      "title": "Doc",
      "type": "string"
    },
    "around": {
      "default": "",
      "title": "Around",
      "type": "string"
    },
    "offset": {
      "default": 0,
      "title": "Offset",
      "type": "integer"
    },
    "length": {
      "default": 0,
      "title": "Length",
      "type": "integer"
    },
    "budget": {
      "default": 0,
      "title": "Budget",
      "type": "integer"
    },
    "session": {
      "default": "",
      "title": "Session",
      "type": "string"
    }
  },
  "title": "fas_docArguments",
  "type": "object"
}

fas_verify_quote

Описание сервера

Сверить, что цитата ДОСЛОВНО есть в документе ФАС. В процессуальный документ и в переписку с антимонопольным органом переносится только подтверждённое — это защита от выдуманных формулировок. Сверка идёт по исходному тексту, но допускает разрядку и мягкие переносы: ловится выдуманное, а не типографика. Цитата принимается и в ОБЕЗЛИЧЕННОМ виде, как её видит вызывающий: серия «*» сверяется как ровно такое же число букв (маска сохраняет длину слова), поэтому подмена слова другой длины подтверждения не получит.

ПараметрТипОбязателенПо умолчанию
docstring—""
quotestring—""
sessionstring—""
inputSchema · JSON Schema
{
  "properties": {
    "doc": {
      "default": "",
      "title": "Doc",
      "type": "string"
    },
    "quote": {
      "default": "",
      "title": "Quote",
      "type": "string"
    },
    "session": {
      "default": "",
      "title": "Session",
      "type": "string"
    }
  },
  "title": "fas_verify_quoteArguments",
  "type": "object"
}

Как это выглядит для пользователя ИИ-агента

  1. Пользователь пишет ChatGPT/Claude: Попроси кота найти практику по обжалованию бездействия судебного пристава.
  2. ИИ-агент отправляет коту структурированный вызов:
    {
      "jsonrpc": "2.0",
      "id": 3,
      "method": "tools/call",
      "params": {
        "name": "kas_search",
        "arguments": {
          "text": "бездействие AND пристав",
          "kind": "admin",
          "limit": 1,
          "detail": "brief"
        }
      }
    }
  3. Кот возвращает JSON (сокращённый реальный ответ):
    {
      "найдено": 22829,
      "показано": 1,
      "вид_производства": "административные (КАС)",
      "результаты": [
        {
          "act_id": 862258,
          "суд": "3 КСОЮ",
          "дата": "2025-11-26"
        }
      ],
      "максимум_карточек_в_ответе": 526,
      "page": {
        "showing": "1-1 of 22829",
        "sorted_by": "релевантность",
        "next_cursor": 1
      },
      "предупреждение": "совпадений 22829, обработаны первые 400. Сузьте фильтрами, иначе хвост не виден",
      "_снимок_от": "2026-10-08T20:42:05.217772+00:00",
      "_снимок_полной_сверки": "2026-10-08T19:12:19.705788+00:00",
      "_обезличено": "ФИО физлиц замаскированы (152-ФЗ); фамилии судей открыты — должностные лица, по ним работает поиск."
    }
  4. ИИ-агент пишет пользователю: По словам «бездействие» и «пристав» в административных делах кассации найдено 22829 совпадений. Использован kind=admin — производство по КАС. Дальше можно открыть выбранную карточку и текст акта.

Алиас «кот» можно использовать в любом падеже: кот, кота, коту, котом. Фраза пользователя адресована ИИ-агенту; MCP принимает tools/call с параметрами.

llms.txt · Машинный справочник