{
  "fetched_at": "2026-10-08T20:40:15.443139+00:00",
  "endpoint": "https://mcp.amazingcat.net/mcp",
  "protocol_version": "2025-06-18",
  "server_info": {
    "name": "amazing.cat",
    "version": "1.27.2"
  },
  "source_tools_sha256": "9c722e49a977ee26272766fd2bbf172f321623efcfe143f3f5a6f1d2e9bf9eba",
  "description_cleanup": "Server descriptions with disallowed editorial copy and case-specific anecdotes removed; case identifiers replaced by field placeholders; inputSchema unchanged.",
  "tools": [
    {
      "name": "search_practice",
      "description": "Смысловой/полнотекстовый поиск по практике высших судов РФ (обезличено, со ссылками и QR). Вызывать для поиска судебной практики с учётом режима активации в инструкциях подключения:\n    по обращению «amazingcat» / «кот» / «котик» либо автоматически, если выбран этот режим. Выдача иерархична: constitutional_context (КС) → vs_guidance (Пленумы) → latest_practice\n    (определения ВС) → results (объединённо). Каждый акт несёт source_url (оригинал на сайте суда)\n    и qr.qr_image_url. Для полного текста — get_case(doc_id, court). query   — запрос на русском (институт права, обстоятельства спора, термины). limit   — число результатов. article — фильтр по статье, напр. \"333 ГК\", \"348.10 ТК\", \"100.1 ФКЗ\". court   — корпус: \"ВС\" / \"КС\" / \"Пленум\" / \"ВАС\" / \"ОбзорВС\" (пусто = все). detail  — \"full\" (по умолчанию) или \"compact\": только карточка + позиция суда,\n              без фабулы и фрагментов; полный текст акта — get_case(doc_id, court). ",
      "inputSchema": {
        "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"
      },
      "outputSchema": {
        "properties": {
          "result": {
            "title": "Result",
            "type": "string"
          }
        },
        "required": [
          "result"
        ],
        "title": "search_practiceOutput",
        "type": "object"
      }
    },
    {
      "name": "find_by_norm",
      "description": "Практика по НОРМЕ статьи сразу по трём корпусам: определения ВС, постановления КС, пункты Пленумов. Вызывать для поиска судебной практики с учётом режима активации в инструкциях подключения:\n    по обращению «amazingcat» / «кот» / «котик» либо автоматически, если выбран этот режим. article — \"348.10 ТК\", \"333 ГК\", \"159 УК\", \"40 Конституции\". court — необяз. фильтр\n              ВС/КС/Пленум/ВАС/ОбзорВС. detail  — \"full\" (по умолчанию) или \"compact\" (карточка + позиция суда, без полного текста). Корпус ВС ранжирован по содержательности: акты с позицией коллегии вперёд, отказные\n    определения судьи ВС и акты без аналитической карточки — в хвосте. Каждый акт обезличен и снабжён source_url + QR на оригинал. ",
      "inputSchema": {
        "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"
      },
      "outputSchema": {
        "properties": {
          "result": {
            "title": "Result",
            "type": "string"
          }
        },
        "required": [
          "result"
        ],
        "title": "find_by_normOutput",
        "type": "object"
      }
    },
    {
      "name": "practice_under_norms",
      "description": "Позиция высших судов РФ СРАЗУ ПО НЕСКОЛЬКИМ НОРМАМ — компактно, сгруппировано по нормам. Вызывать для поиска судебной практики с учётом режима активации в инструкциях подключения:\n    по обращению «amazingcat» / «кот» / «котик» либо автоматически, если выбран этот режим. Укажи нормы, под которые готовишь правовую позицию (как в иске/жалобе/отзыве). По каждой норме\n    вернётся набор актов с готовой позицией суда (position), source_url и QR — БЕЗ полного текста. Один вызов заменяет несколько find_by_norm. Полный текст любого акта — get_case(doc_id, court). norms          — нормы через запятую/точку с запятой, напр. \"393.1 ГК; 32 ЗоЗПП; 330 ГПК\". query          — необязательный тезис: если задан, внутри каждой нормы акты ранжируются под него. court          — фильтр корпуса: \"ВС\" / \"КС\" / \"Пленум\" (пусто = все). limit_per_norm — сколько актов на норму (по умолчанию 5). ",
      "inputSchema": {
        "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"
      },
      "outputSchema": {
        "properties": {
          "result": {
            "title": "Result",
            "type": "string"
          }
        },
        "required": [
          "result"
        ],
        "title": "practice_under_normsOutput",
        "type": "object"
      }
    },
    {
      "name": "find_term",
      "description": "Лексический поиск точной фразы или НОМЕРА акта/дела (напр. \"<case-number>\") по корпусу ВС/КС/Пленумов/ВАС/Обзоров ВС. Вызывать для поиска судебной практики с учётом режима активации в инструкциях подключения:\n    по обращению «amazingcat» / «кот» / «котик» либо автоматически, если выбран этот режим. НЕ ищет по текстам законов и кодексов. Для текста закона используй get_norm_text, law_get_text\n    или law_search; нулевая выдача find_term не означает, что текста статьи нет в law-корпусе. Удобно для скриншотов: извлеки номер дела из изображения и найди акт. Выдача обезличена, с source_url + QR. court  — фильтр по корпусу: \"ВС\" / \"КС\" / \"Пленум\" / \"ВАС\" / \"ОбзорВС\" (пусто = все). detail — \"full\" (по умолчанию) или \"compact\" (карточка + позиция суда, без полного текста). ",
      "inputSchema": {
        "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"
      },
      "outputSchema": {
        "properties": {
          "result": {
            "title": "Result",
            "type": "string"
          }
        },
        "required": [
          "result"
        ],
        "title": "find_termOutput",
        "type": "object"
      }
    },
    {
      "name": "list_tags",
      "description": "Частотный список тематических тегов корпуса. court: \"ВС\" / \"Пленум\" / пусто = оба.",
      "inputSchema": {
        "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"
      },
      "outputSchema": {
        "properties": {
          "result": {
            "title": "Result",
            "type": "string"
          }
        },
        "required": [
          "result"
        ],
        "title": "list_tagsOutput",
        "type": "object"
      }
    },
    {
      "name": "search_by_tag",
      "description": "Подборка актов по тематическому тегу. court: \"ВС\" / \"Пленум\" / пусто = оба. Обезличено, с source_url + QR. Корпус ВС: содержательные акты (позиция коллегии) вперёд, отказные определения — в хвосте.",
      "inputSchema": {
        "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"
      },
      "outputSchema": {
        "properties": {
          "result": {
            "title": "Result",
            "type": "string"
          }
        },
        "required": [
          "result"
        ],
        "title": "search_by_tagOutput",
        "type": "object"
      }
    },
    {
      "name": "browse_practice",
      "description": "Плоская постраничная подборка актов (реквизиты, теги, source_url + QR), без подробного анализа. query — смысловой/полнотекстовый запрос; tag — фильтр по тегу; year_from/year_to — годовой диапазон. ",
      "inputSchema": {
        "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"
      },
      "outputSchema": {
        "properties": {
          "result": {
            "title": "Result",
            "type": "string"
          }
        },
        "required": [
          "result"
        ],
        "title": "browse_practiceOutput",
        "type": "object"
      }
    },
    {
      "name": "find_similar",
      "description": "Похожие акты по embedding для case_id из выдачи: определения ВС РФ, а также близкие пункты\n    Пленумов / Обзоров ВС (поле court в карточке). Обезличено, с case_number, source_url + QR.",
      "inputSchema": {
        "properties": {
          "case_id": {
            "title": "Case Id",
            "type": "integer"
          },
          "limit": {
            "default": 10,
            "title": "Limit",
            "type": "integer"
          }
        },
        "required": [
          "case_id"
        ],
        "title": "find_similarArguments",
        "type": "object"
      },
      "outputSchema": {
        "properties": {
          "result": {
            "title": "Result",
            "type": "string"
          }
        },
        "required": [
          "result"
        ],
        "title": "find_similarOutput",
        "type": "object"
      }
    },
    {
      "name": "get_case",
      "description": "Полная (обезличенная) карточка/текст акта по корпусу. court: \"ВС\" / \"КС\" / \"Пленум\" / \"ВАС\" / \"ОбзорВС\". Содержит source_url + QR.",
      "inputSchema": {
        "properties": {
          "doc_id": {
            "title": "Doc Id",
            "type": "integer"
          },
          "court": {
            "default": "ВС",
            "title": "Court",
            "type": "string"
          }
        },
        "required": [
          "doc_id"
        ],
        "title": "get_caseArguments",
        "type": "object"
      },
      "outputSchema": {
        "properties": {
          "result": {
            "title": "Result",
            "type": "string"
          }
        },
        "required": [
          "result"
        ],
        "title": "get_caseOutput",
        "type": "object"
      }
    },
    {
      "name": "get_case_details",
      "description": "Алиас get_case: полная обезличенная карточка/текст акта по doc_id и корпусу.",
      "inputSchema": {
        "properties": {
          "doc_id": {
            "title": "Doc Id",
            "type": "integer"
          },
          "court": {
            "default": "ВС",
            "title": "Court",
            "type": "string"
          }
        },
        "required": [
          "doc_id"
        ],
        "title": "get_case_detailsArguments",
        "type": "object"
      },
      "outputSchema": {
        "properties": {
          "result": {
            "title": "Result",
            "type": "string"
          }
        },
        "required": [
          "result"
        ],
        "title": "get_case_detailsOutput",
        "type": "object"
      }
    },
    {
      "name": "locate_pinpoint",
      "description": "PRO: точная привязка цитаты к PDF акта — страница, визуальный абзац\n    (считая СВЕРХУ страницы), пункт (для Пленума/Обзора) + готовая сноска с URL и QR. Вызывать ПОСЛЕ выбора дословной цитаты из полного текста акта (get_case): передать\n    court (\"ВС\"/\"КС\"/\"Пленум\"/\"ОбзорВС\"/\"ВАС\"), doc_id из карточки и дословный фрагмент\n    quote. Если фраза найдена в PDF — вернёт page / visual_paragraph_on_page / act_point\n    для ЭТОЙ цитаты; иначе честно сообщит, что точный pinpoint не установлен (без догадок). Для Пленума/Обзора act_point (номер пункта) возвращается только при наличии PDF акта локально  — иначе честный quote_only без догадок. Доступно на тарифе PRO. ",
      "inputSchema": {
        "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"
      },
      "outputSchema": {
        "properties": {
          "result": {
            "title": "Result",
            "type": "string"
          }
        },
        "required": [
          "result"
        ],
        "title": "locate_pinpointOutput",
        "type": "object"
      }
    },
    {
      "name": "stats",
      "description": "Охват базы по корпусам (ВС/КС/Пленумы), норм-индекс, RAG. Личных данных не содержит.",
      "inputSchema": {
        "properties": {},
        "title": "statsArguments",
        "type": "object"
      },
      "outputSchema": {
        "properties": {
          "result": {
            "title": "Result",
            "type": "string"
          }
        },
        "required": [
          "result"
        ],
        "title": "statsOutput",
        "type": "object"
      }
    },
    {
      "name": "law_find",
      "description": "Найти закон/кодекс по аббревиатуре, номеру или названию («ГК», «44-ФЗ», «о защите прав потребителей»). Возвращает кандидатов с реквизитами и РАЗМЕРОМ (plain_chars/token_estimate/n_articles) — по нему\n    реши, какую часть запрашивать через law_get_text (статья/диапазон/раздел). Неоднозначное («ВК» =\n    Воздушный и Водный) вернёт несколько кандидатов — уточни следующим запросом. ",
      "inputSchema": {
        "properties": {
          "query": {
            "title": "Query",
            "type": "string"
          },
          "limit": {
            "default": 8,
            "title": "Limit",
            "type": "integer"
          }
        },
        "required": [
          "query"
        ],
        "title": "law_findArguments",
        "type": "object"
      },
      "outputSchema": {
        "properties": {
          "result": {
            "title": "Result",
            "type": "string"
          }
        },
        "required": [
          "result"
        ],
        "title": "law_findOutput",
        "type": "object"
      }
    },
    {
      "name": "law_get_text",
      "description": "Текст закона целиком или в части. Сначала вызови law_find, чтобы узнать размер и оглавление. act      — аббревиатура/номер/название («ГК», «44-ФЗ», «Воздушный кодекс»). articles — статья/диапазон/список: «333» | «1-100» | «333,395,85-1». Дотовая статья (с\n               надстрочным суффиксом в оригинале, напр. ст. 203.1) распознаётся в любой форме —\n               «203.1», «203-1», «2031»; в ответе — каноничная форма через точку. section  — фильтр по разделу/главе (подстрока из оглавления), если не заданы articles. as_of    — дата правоотношений «ГГГГ-ММ-ДД»: вернуть текст в редакции, действовавшей на эту дату. offset   — служебная пагинация для продолжения широкого запроса; бери из pagination.next_request. Шапка act отражает акт, из которого РЕАЛЬНО взяты статьи: «НК» + ст. 333.19 → в шапке часть\n    вторая (117-ФЗ) с её редакцией. Если статьи пришли из нескольких актов (частей) группы — в шапке\n    сводная карточка с multi_act=true и список acts, а реквизиты и редакция — у каждой статьи. Если ничего не задано и акт большой — вернётся оглавление с подсказкой по диапазону. ВАЖНО: текст найденной статьи возвращается целиком, без скрытой обрезки. Поэтому для больших\n    актов и крупных статей не запрашивай широкие диапазоны одним вызовом: сначала law_find, затем\n    точную статью или короткий диапазон; если нужно много статей, делай несколько отдельных вызовов. Если широкий запрос не помещается, ответ содержит truncated=true и pagination.next_request\n    с точными аргументами следующего вызова. Без pagination ответ не считается продолжимым. ",
      "inputSchema": {
        "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"
      },
      "outputSchema": {
        "properties": {
          "result": {
            "title": "Result",
            "type": "string"
          }
        },
        "required": [
          "result"
        ],
        "title": "law_get_textOutput",
        "type": "object"
      }
    },
    {
      "name": "get_norm_text",
      "description": "Дословный текст НОРМ закона РФ — для цитаты/сноски. Главный путь, когда норма упомянута в тексте. norms — ОДНА или СРАЗУ НЕСКОЛЬКО норм в одной строке через «;» или запятую, напр. \"333 ГК; 1102 Гражданский кодекс; 32 ЗоЗПП; 56 ГПК\". Закон в каждой норме можно указывать:\n      • общепринятым сокращением — ГК, ГПК, АПК, КАС, УК, УПК, КоАП, НК, ТК, ЖК, СК, ЗК, ВК, ЗоЗПП…;\n      • полным названием — «Гражданский кодекс», «о защите прав потребителей»;\n      • номером акта — «44-ФЗ», «2300-1». Дотовая статья (с надстрочным суффиксом в оригинале, напр. ст. 203.1) понимается в любой\n    форме — «203.1 ГПК», «203-1 ГПК», «2031 ГПК»; каноничная форма в ответе — через точку. Возвращает по каждой норме: ДОСЛОВНЫЙ текст статьи, ссылку на вьюер для сноски и (with_practice)\n    практику ВС/КС по норме. Неоднозначное сокращение («107 ВК» = Воздушный и Водный кодекс) вернёт текст\n    из всех подходящих актов — уточни следующим запросом. ВАЖНО: статьи возвращаются целиком, без скрытой обрезки. Если нужно проверить много норм или\n    потенциально крупные статьи (например НК), вызывай инструмент несколькими небольшими порциями;\n    для точной цитаты одной нормы лучше один вызов = одна норма. РЕДАКЦИЯ: у каждой нормы есть redaction_date и redaction_verified — true (редакция сверена с\n    ЭБПИ и действует), false (снапшот базы отстал; тогда текст по возможности заменён на текст\n    ДЕЙСТВУЮЩЕЙ редакции — см. redaction_warning) или null (сверить не удалось — не выдавай текст\n    как действующий, проверь law_history). Ссылаться на норму как на действующую можно только при\n    redaction_verified=true либо text_redaction=\"actual_ebpi\". ",
      "inputSchema": {
        "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"
      },
      "outputSchema": {
        "properties": {
          "result": {
            "title": "Result",
            "type": "string"
          }
        },
        "required": [
          "result"
        ],
        "title": "get_norm_textOutput",
        "type": "object"
      }
    },
    {
      "name": "law_search",
      "description": "Лексико-семантический поиск по тексту статей действующих кодексов/ФЗ РФ — терпимый к формулировке. query — слова/фраза по смыслу или дословно («снижение неустойки», «срок исковой давности»). act — необяз. фильтр («ГК», «ТК»). Морфология (падежи/число) учитывается; если точная\n    комбинация слов не встретилась, поиск расширяется (любое из слов) и ранжирует по близости —\n    выдача НЕ бывает молча пустой. Когда лексика слаба, подмешивается семантика (voyage-эмбеддинги)\n    и сливается через RRF — ловит синонимы/парафразы, которые FTS не берёт. match_mode: all_terms = найдены все слова; relaxed_any_terms = расширенный (точного совпадения\n    нет, ранжировано по релевантности); hybrid = семантика спасла слабую лексическую выдачу. За текстом и практикой ВС/КС по конкретной статье — get_norm_text(«<статья> <акт>»). ",
      "inputSchema": {
        "properties": {
          "query": {
            "title": "Query",
            "type": "string"
          },
          "act": {
            "default": "",
            "title": "Act",
            "type": "string"
          },
          "limit": {
            "default": 10,
            "title": "Limit",
            "type": "integer"
          }
        },
        "required": [
          "query"
        ],
        "title": "law_searchArguments",
        "type": "object"
      },
      "outputSchema": {
        "properties": {
          "result": {
            "title": "Result",
            "type": "string"
          }
        },
        "required": [
          "result"
        ],
        "title": "law_searchOutput",
        "type": "object"
      }
    },
    {
      "name": "law_history",
      "description": "История редакций акта (для запроса текста на дату X) + законы-правки, затрагивающие акт. Возвращает список редакций ЭБПИ с датами вступления (reddate) и redid — по ним law_get_text(as_of=…)\n    выдаёт текст на нужную дату. Глубина истории зависит от акта (часто консолидация с ~2022). ",
      "inputSchema": {
        "properties": {
          "act": {
            "title": "Act",
            "type": "string"
          }
        },
        "required": [
          "act"
        ],
        "title": "law_historyArguments",
        "type": "object"
      },
      "outputSchema": {
        "properties": {
          "result": {
            "title": "Result",
            "type": "string"
          }
        },
        "required": [
          "result"
        ],
        "title": "law_historyOutput",
        "type": "object"
      }
    },
    {
      "name": "law_stats",
      "description": "Охват корпуса законов: сколько актов, проиндексировано, по видам; дата снапшота.",
      "inputSchema": {
        "properties": {},
        "title": "law_statsArguments",
        "type": "object"
      },
      "outputSchema": {
        "properties": {
          "result": {
            "title": "Result",
            "type": "string"
          }
        },
        "required": [
          "result"
        ],
        "title": "law_statsOutput",
        "type": "object"
      }
    },
    {
      "name": "npa_org_find",
      "description": "Локальный справочник органов Банка B: нечеткий поиск ведомства/органа по названию или алиасу\n    (например: Минтранс, Росавиация, ФССП). Возвращает code для последующего поиска по каталогу.",
      "inputSchema": {
        "properties": {
          "query": {
            "title": "Query",
            "type": "string"
          },
          "limit": {
            "default": 10,
            "title": "Limit",
            "type": "integer"
          }
        },
        "required": [
          "query"
        ],
        "title": "npa_org_findArguments",
        "type": "object"
      },
      "outputSchema": {
        "properties": {
          "result": {
            "title": "Result",
            "type": "string"
          }
        },
        "required": [
          "result"
        ],
        "title": "npa_org_findOutput",
        "type": "object"
      }
    },
    {
      "name": "npa_kind_find",
      "description": "Локальный справочник видов актов Банка B: нечеткий поиск вида акта\n    (например: Приказ, Постановление, Распоряжение). Возвращает code для npa_catalog_search.",
      "inputSchema": {
        "properties": {
          "query": {
            "title": "Query",
            "type": "string"
          },
          "limit": {
            "default": 10,
            "title": "Limit",
            "type": "integer"
          }
        },
        "required": [
          "query"
        ],
        "title": "npa_kind_findArguments",
        "type": "object"
      },
      "outputSchema": {
        "properties": {
          "result": {
            "title": "Result",
            "type": "string"
          }
        },
        "required": [
          "result"
        ],
        "title": "npa_kind_findOutput",
        "type": "object"
      }
    },
    {
      "name": "npa_catalog_search",
      "description": "Локальный справочник карточек НПА без скачивания текста. Используй для discovery:\n    какие акты/приказы уже известны локально, поиск по названию, органу, виду, номеру. Также возвращает совпадения из локального полнотекстового корпуса скачанных оригиналов,\n    если они были проиндексированы.",
      "inputSchema": {
        "properties": {
          "query": {
            "default": "",
            "title": "Query",
            "type": "string"
          },
          "issuer": {
            "default": "",
            "title": "Issuer",
            "type": "string"
          },
          "kind": {
            "default": "",
            "title": "Kind",
            "type": "string"
          },
          "number": {
            "default": "",
            "title": "Number",
            "type": "string"
          },
          "limit": {
            "default": 20,
            "title": "Limit",
            "type": "integer"
          }
        },
        "title": "npa_catalog_searchArguments",
        "type": "object"
      },
      "outputSchema": {
        "properties": {
          "result": {
            "title": "Result",
            "type": "string"
          }
        },
        "required": [
          "result"
        ],
        "title": "npa_catalog_searchOutput",
        "type": "object"
      }
    },
    {
      "name": "npa_catalog_stats",
      "description": "Размер локального справочника НПА: сколько органов/видов актов и карточек актов проиндексировано.",
      "inputSchema": {
        "properties": {},
        "title": "npa_catalog_statsArguments",
        "type": "object"
      },
      "outputSchema": {
        "properties": {
          "result": {
            "title": "Result",
            "type": "string"
          }
        },
        "required": [
          "result"
        ],
        "title": "npa_catalog_statsOutput",
        "type": "object"
      }
    },
    {
      "name": "npa_originals_search",
      "description": "Поиск по локально скачанным оригиналам НПА с сайтов ведомств. Для полного текста найденного результата используй npa_originals_text(original_id).",
      "inputSchema": {
        "properties": {
          "query": {
            "default": "",
            "title": "Query",
            "type": "string"
          },
          "issuer": {
            "default": "",
            "title": "Issuer",
            "type": "string"
          },
          "kind": {
            "default": "",
            "title": "Kind",
            "type": "string"
          },
          "number": {
            "default": "",
            "title": "Number",
            "type": "string"
          },
          "limit": {
            "default": 20,
            "title": "Limit",
            "type": "integer"
          }
        },
        "title": "npa_originals_searchArguments",
        "type": "object"
      },
      "outputSchema": {
        "properties": {
          "result": {
            "title": "Result",
            "type": "string"
          }
        },
        "required": [
          "result"
        ],
        "title": "npa_originals_searchOutput",
        "type": "object"
      }
    },
    {
      "name": "npa_originals_text",
      "description": "Текст локально скачанного оригинала НПА по original_id из npa_originals_search/npa_catalog_search.",
      "inputSchema": {
        "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"
      },
      "outputSchema": {
        "properties": {
          "result": {
            "title": "Result",
            "type": "string"
          }
        },
        "required": [
          "result"
        ],
        "title": "npa_originals_textOutput",
        "type": "object"
      }
    },
    {
      "name": "npa_originals_stats",
      "description": "Размер локального полнотекстового корпуса скачанных оригиналов НПА.",
      "inputSchema": {
        "properties": {},
        "title": "npa_originals_statsArguments",
        "type": "object"
      },
      "outputSchema": {
        "properties": {
          "result": {
            "title": "Result",
            "type": "string"
          }
        },
        "required": [
          "result"
        ],
        "title": "npa_originals_statsOutput",
        "type": "object"
      }
    },
    {
      "name": "npa_find",
      "description": "Поиск НПА в банке «Законодательство России» (pravo.gov.ru): ведомственные приказы (ФАП,\n    СанПиН, регламенты, инструкции министерств/служб), а также иные акты, которых НЕТ в федеральном\n    корпусе law_search/get_norm_text. Зови, когда нужен приказ/акт министерства или ведомства, акт\n    по номеру+органу, либо историческая редакция. Запрос — по смыслу/реквизитам, напр. «Федеральные авиационные правила общие правила воздушных перевозок» или «приказ Минтранса 82». Возвращает список {nd, kind, date, number, title, source_url}; затем — npa_text(nd[, as_of]).",
      "inputSchema": {
        "properties": {
          "query": {
            "title": "Query",
            "type": "string"
          },
          "limit": {
            "default": 15,
            "title": "Limit",
            "type": "integer"
          }
        },
        "required": [
          "query"
        ],
        "title": "npa_findArguments",
        "type": "object"
      },
      "outputSchema": {
        "properties": {
          "result": {
            "title": "Result",
            "type": "string"
          }
        },
        "required": [
          "result"
        ],
        "title": "npa_findOutput",
        "type": "object"
      }
    },
    {
      "name": "npa_text",
      "description": "Текст НПА из банка «Законодательство России» по его nd (см. npa_find). as_of (необяз.,\n    ДД.ММ.ГГГГ) — текст редакции, ДЕЙСТВОВАВШЕЙ на дату (историческая глубина, в т.ч. до 2022, чего\n    нет в актуальном федеральном корпусе). Без as_of — действующая редакция. Возвращает реквизиты,\n    список редакций (rdk + даты правок), сам текст и ссылку-источник на вьюер pravo.gov.ru.",
      "inputSchema": {
        "properties": {
          "nd": {
            "title": "Nd",
            "type": "string"
          },
          "as_of": {
            "default": "",
            "title": "As Of",
            "type": "string"
          }
        },
        "required": [
          "nd"
        ],
        "title": "npa_textArguments",
        "type": "object"
      },
      "outputSchema": {
        "properties": {
          "result": {
            "title": "Result",
            "type": "string"
          }
        },
        "required": [
          "result"
        ],
        "title": "npa_textOutput",
        "type": "object"
      }
    },
    {
      "name": "wording_review",
      "description": "ВЫЧИТКА СЛОВОУПОТРЕБЛЕНИЯ русского юридического текста по актам ВС РФ. Зови перед тем как отдать пользователю готовую жалобу, иск, отзыв,\n    возражения или ходатайство, а также на просьбы «причесать формулировки»,\n    «написать как суд», «проверить язык документа», «убрать следы нейросети» в\n    юридическом тексте. Присылай предложения СВОЕГО документа целиком (до 40 за вызов, каждое 40–700\n    знаков), а не ключевые слова. На каждое вернутся: дословные фрагменты\n    мотивировочных и описательных частей определений ВС РФ с номером акта, датой\n    и ссылкой; частоты слов предложения по корпусу; и отдельно сочетания,\n    которых в практике НЕТ НИ РАЗУ, хотя каждое их слово употребительно, — это\n    самый полезный сигнал, обычно именно он и показывает неудачный оборот. Готовых замен инструмент НЕ возвращает и ничего не переписывает: он\n    показывает, какими словами о том же пишет сам суд, а решение принимаешь ты. Более частый вариант не обязан вытеснять уместную формулировку, а редкость\n    сама по себе не ошибка. Фрагменты — образец ЯЗЫКА: переносить из них\n    обстоятельства, требования, нормы и выводы чужого дела нельзя. sentences     — предложения вашего текста. per_sentence  — сколько фрагментов на предложение (1–8, по умолчанию 3). article       — сузить выборку до актов по норме, напр. \"203 ГПК\" или\n                    \"203 ГПК; 434 ГПК\". Пусто — весь корпус. proceeding    — вид судопроизводства: civil / administrative / economic / any. zone          — часть акта: reasoning (мотивировочная) / narrative\n                    (описательная) / пусто (обе). exclude_roles — роли фрагмента через запятую, которые не нужны: lower_court\n                    (пересказ нижестоящего суда), party_position (позиция стороны). frequencies   — считать ли частоты выражений (по умолчанию да). ",
      "inputSchema": {
        "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"
      },
      "outputSchema": {
        "properties": {
          "result": {
            "title": "Result",
            "type": "string"
          }
        },
        "required": [
          "result"
        ],
        "title": "wording_reviewOutput",
        "type": "object"
      }
    },
    {
      "name": "wording_stats",
      "description": "Границы корпуса вычитки: сколько актов и предложений, лимиты вызова, версии. Вызывай, если нужно понять, что именно покрывает wording_review и какие у\n    него ограничения по объёму запроса. ",
      "inputSchema": {
        "properties": {},
        "title": "wording_statsArguments",
        "type": "object"
      },
      "outputSchema": {
        "properties": {
          "result": {
            "title": "Result",
            "type": "string"
          }
        },
        "required": [
          "result"
        ],
        "title": "wording_statsOutput",
        "type": "object"
      }
    },
    {
      "name": "kas_stats",
      "description": "Границы и покрытие корпуса КАССАЦИИ судов общей юрисдикции: суды, годы, охват\n    полей, словарь кодов норм, допустимые значения параметров, размеры частей акта. Вызывать первым: отсюда берутся значения для остальных kas-инструментов. Отвечает мгновенно; счётчики берутся из снимка и пересчитываются в фоне.",
      "inputSchema": {
        "properties": {
          "session": {
            "default": "",
            "title": "Session",
            "type": "string"
          }
        },
        "title": "kas_statsArguments",
        "type": "object"
      },
      "outputSchema": {
        "properties": {
          "result": {
            "title": "Result",
            "type": "string"
          }
        },
        "required": [
          "result"
        ],
        "title": "kas_statsOutput",
        "type": "object"
      }
    },
    {
      "name": "kas_categories",
      "description": "Дерево категорий спора по рубрикатору ГАС «Правосудие» со счётчиками. Категорию проставил сам суд — надёжнее, чем угадывать тему словами.",
      "inputSchema": {
        "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"
      },
      "outputSchema": {
        "properties": {
          "result": {
            "title": "Result",
            "type": "string"
          }
        },
        "required": [
          "result"
        ],
        "title": "kas_categoriesOutput",
        "type": "object"
      }
    },
    {
      "name": "kas_judges",
      "description": "Справочник судей кассационных судов: фамилия → идентификатор. Судья задаётся\n    идентификатором, не строкой: формат записи в судах разный.",
      "inputSchema": {
        "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"
      },
      "outputSchema": {
        "properties": {
          "result": {
            "title": "Result",
            "type": "string"
          }
        },
        "required": [
          "result"
        ],
        "title": "kas_judgesOutput",
        "type": "object"
      }
    },
    {
      "name": "kas_parties",
      "description": "Справочник сторон: наименование или ИНН → ключ и число дел. Одно лицо записано\n    в карточках десятками способов; ИНН по названию не выводится.",
      "inputSchema": {
        "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"
      },
      "outputSchema": {
        "properties": {
          "result": {
            "title": "Result",
            "type": "string"
          }
        },
        "required": [
          "result"
        ],
        "title": "kas_partiesOutput",
        "type": "object"
      }
    },
    {
      "name": "kas_probe",
      "description": "Проверить НЕСКОЛЬКО формулировок вопроса РАЗОМ (через вертикальную черту) и\n    увидеть, сколько актов даёт каждая. Лексический поиск чувствителен к формулировке,\n    одиночная проверка обманывает. Вызывать первым, когда лексика спора неочевидна. kind — вид производства: civil (гражданские, по умолчанию), admin (административные, КАС), koap (правонарушения, КоАП), criminal, all (civil + admin + koap). Виды не смешиваются: ответ всегда называет свой вид и сколько того же лежит в других.",
      "inputSchema": {
        "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"
      },
      "outputSchema": {
        "properties": {
          "result": {
            "title": "Result",
            "type": "string"
          }
        },
        "required": [
          "result"
        ],
        "title": "kas_probeOutput",
        "type": "object"
      }
    },
    {
      "name": "kas_search",
      "description": "Поиск по практике кассационных судов общей юрисдикции ОДНОЙ формулировкой с\n    фасетами карточки. Операторы текста И НОРМ — прописной латиницей: AND, OR, NOT,\n    ADJACENT, NEAR/N, SENTENCE, PARAGRAPH (русские «И»/«ИЛИ»/«НЕ» операторами НЕ\n    считаются и отвергаются с подсказкой). Код нормы — как в индексе («ГПК», «КоАП»,\n    «Конституция», «ФЗ № 229-ФЗ»); синонимы «229-ФЗ», «ЗоЗПП», «Закон об исполнительном\n    производстве» приводятся к нему автоматически. Всегда возвращает число найденного\n    и воронку — по ней видно, какое условие обнулило выдачу. kind — вид производства: civil (гражданские, по умолчанию), admin (административные, КАС), koap (правонарушения, КоАП), criminal, all (civil + admin + koap). Виды не смешиваются: ответ всегда называет свой вид и сколько того же лежит в других.",
      "inputSchema": {
        "properties": {
          "query": {
            "default": "",
            "title": "Query",
            "type": "string"
          },
          "text": {
            "default": "",
            "title": "Text",
            "type": "string"
          },
          "phrase": {
            "default": "",
            "title": "Phrase",
            "type": "string"
          },
          "norms": {
            "default": "",
            "title": "Norms",
            "type": "string"
          },
          "norms_zone": {
            "default": "",
            "title": "Norms Zone",
            "type": "string"
          },
          "area": {
            "default": "",
            "title": "Area",
            "type": "string"
          },
          "detail": {
            "default": "subject",
            "title": "Detail",
            "type": "string"
          },
          "court": {
            "default": 0,
            "title": "Court",
            "type": "integer"
          },
          "judge_id": {
            "default": 0,
            "title": "Judge Id",
            "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"
          },
          "party": {
            "default": "",
            "title": "Party",
            "type": "string"
          },
          "party_inn": {
            "default": "",
            "title": "Party Inn",
            "type": "string"
          },
          "party_role": {
            "default": "",
            "title": "Party Role",
            "type": "string"
          },
          "first_court": {
            "default": "",
            "title": "First Court",
            "type": "string"
          },
          "year_from": {
            "default": 0,
            "title": "Year From",
            "type": "integer"
          },
          "year_to": {
            "default": 0,
            "title": "Year To",
            "type": "integer"
          },
          "limit": {
            "default": 10,
            "title": "Limit",
            "type": "integer"
          },
          "cursor": {
            "default": 0,
            "title": "Cursor",
            "type": "integer"
          },
          "act_ids": {
            "default": "",
            "title": "Act Ids",
            "type": "string"
          },
          "kind": {
            "default": "",
            "title": "Kind",
            "type": "string"
          },
          "session": {
            "default": "",
            "title": "Session",
            "type": "string"
          }
        },
        "title": "kas_searchArguments",
        "type": "object"
      },
      "outputSchema": {
        "properties": {
          "result": {
            "title": "Result",
            "type": "string"
          }
        },
        "required": [
          "result"
        ],
        "title": "kas_searchOutput",
        "type": "object"
      }
    },
    {
      "name": "kas_by_norm",
      "description": "Практика кассации по НОРМЕ — с предложением, в котором суд на неё сослался. Кодексы и федеральные законы с номером; подзаконные акты индексом не разбираются,\n    их ищут фразой. Код пишется как в индексе («ГПК», «КоАП», «Конституция»,\n    «ФЗ № 229-ФЗ»), но синонимы («229-ФЗ», «ЗоЗПП», «Закон об исполнительном\n    производстве») приводятся к нему сами — ответ называет подстановку. Для\n    процессуального ВОПРОСА рамку стадии не выключать. kind — вид производства: civil (гражданские, по умолчанию), admin (административные, КАС), koap (правонарушения, КоАП), criminal, all (civil + admin + koap). Виды не смешиваются: ответ всегда называет свой вид и сколько того же лежит в других.",
      "inputSchema": {
        "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"
      },
      "outputSchema": {
        "properties": {
          "result": {
            "title": "Result",
            "type": "string"
          }
        },
        "required": [
          "result"
        ],
        "title": "kas_by_normOutput",
        "type": "object"
      }
    },
    {
      "name": "kas_aggregate",
      "description": "Счётчики по срезу корпуса кассации. Единственный допустимый источник выводов о\n    том, как обычно решаются такие споры, и способ построить профиль судьи. Профиль —\n    для выбора аргументации; статистику по судье в текст документа не вставлять. kind — вид производства: civil (гражданские, по умолчанию), admin (административные, КАС), koap (правонарушения, КоАП), criminal, all (civil + admin + koap). Виды не смешиваются: ответ всегда называет свой вид и сколько того же лежит в других. Разрез by=kind сравнивает виды между собой.",
      "inputSchema": {
        "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"
      },
      "outputSchema": {
        "properties": {
          "result": {
            "title": "Result",
            "type": "string"
          }
        },
        "required": [
          "result"
        ],
        "title": "kas_aggregateOutput",
        "type": "object"
      }
    },
    {
      "name": "kas_acts",
      "description": "Пакетный добор: несколько отобранных дел за ОДИН вызов, каждое целой частью акта. По знакам ничего не режется; сколько дел войдёт, зависит от размера части.",
      "inputSchema": {
        "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"
      },
      "outputSchema": {
        "properties": {
          "result": {
            "title": "Result",
            "type": "string"
          }
        },
        "required": [
          "result"
        ],
        "title": "kas_actsOutput",
        "type": "object"
      }
    },
    {
      "name": "kas_case",
      "description": "Полные карточки дел кассации: стороны, движение по инстанциям, исход, реквизиты. Единственный источник реквизитов для ссылки в документе. Принимает и одно дело, и\n    список отобранных. Номер без суда ненадёжен — номера производств повторяются.",
      "inputSchema": {
        "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"
      },
      "outputSchema": {
        "properties": {
          "result": {
            "title": "Result",
            "type": "string"
          }
        },
        "required": [
          "result"
        ],
        "title": "kas_caseOutput",
        "type": "object"
      }
    },
    {
      "name": "kas_act",
      "description": "Текст ОДНОГО кассационного акта: целиком, либо названной частью, либо окном\n    вокруг подстроки. Для нескольких отобранных дел этот инструмент не нужен —\n    есть пакетный добор.",
      "inputSchema": {
        "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"
      },
      "outputSchema": {
        "properties": {
          "result": {
            "title": "Result",
            "type": "string"
          }
        },
        "required": [
          "result"
        ],
        "title": "kas_actOutput",
        "type": "object"
      }
    },
    {
      "name": "kas_verify_quote",
      "description": "Сверить, что цитата ДОСЛОВНО есть в кассационном акте. В процессуальный документ\n    переносится только подтверждённое — это защита от выдуманных формулировок.",
      "inputSchema": {
        "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"
      },
      "outputSchema": {
        "properties": {
          "result": {
            "title": "Result",
            "type": "string"
          }
        },
        "required": [
          "result"
        ],
        "title": "kas_verify_quoteOutput",
        "type": "object"
      }
    },
    {
      "name": "oblsud_courts",
      "description": "Справочник судов уровня СУБЪЕКТА (областных, краевых, республиканских,\n    окружных, городских судов Москвы и Петербурга) со счётчиками: код суда,\n    название, сайт, сколько карточек дел в индексе и сколько документов по суду\n    уже выкачано (тексты остального докачиваются по требованию, см. oblsud_act). Вызывать ПЕРВЫМ. Код суда — обязательный параметр oblsud_case и oblsud_act, и\n    взять его больше неоткуда: здесь суд обозначается не цифрой 1..9, как\n    кассационные суды в kas_*, а кодом ГАС «Правосудие» вида 50OS0000\n    (Московский областной), 78OS0000 (Санкт-Петербургский городской). Отсутствующие карточки запрашиваются с сайта. contains — часть кода или названия, чтобы не читать все 83 строки.",
      "inputSchema": {
        "properties": {
          "contains": {
            "default": "",
            "title": "Contains",
            "type": "string"
          },
          "session": {
            "default": "",
            "title": "Session",
            "type": "string"
          }
        },
        "title": "oblsud_courtsArguments",
        "type": "object"
      },
      "outputSchema": {
        "properties": {
          "result": {
            "title": "Result",
            "type": "string"
          }
        },
        "required": [
          "result"
        ],
        "title": "oblsud_courtsOutput",
        "type": "object"
      }
    },
    {
      "name": "oblsud_case",
      "description": "Карточка дела областного (краевого, республиканского, окружного, городского)\n    суда: суд, номер, дело и суд первой инстанции, стороны, судья-докладчик, даты,\n    результат, движение дела и ПЕРЕЧЕНЬ ОПУБЛИКОВАННЫХ АКТОВ с датой и видом\n    каждого. Текста акта не отдаёт — за текстом идут в oblsud_act по act_key\n    из этого перечня. ЧЕМ ОТЛИЧАЕТСЯ ОТ oblsud_act: oblsud_case отвечает на вопрос «что это за дело и\n    какие документы по нему опубликованы», oblsud_act — «что написано в конкретном\n    документе». Начинать почти всегда надо отсюда: у дела бывает несколько актов\n    (определение о назначении, апелляционное определение, определение об\n    исправлении описки), и брать текст «первого попавшегося» нельзя. СУД ОБЯЗАТЕЛЕН вместе с номером, и это не формальность. Номера производств не уникальны между судами. Если\n    court не передан, инструмент вернёт ВСЕ совпадения и потребует уточнить — сам\n    он не выбирает и никогда не выберет. ДАТЫ. Инструмент отдаёт дату ДОКУМЕНТА из карточки суда, а не дату заседания\n    и не дату поступления дела. Сохранённая карточка берётся из индекса, отсутствующая — с mos-gorsud.ru. Адресация: court + number, либо uid (для судов sudrf — case_uid из карточки,\n    для Мосгорсуда — uuid или путь /mgs/services/cases/<раздел>/details/<uuid>).",
      "inputSchema": {
        "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"
      },
      "outputSchema": {
        "properties": {
          "result": {
            "title": "Result",
            "type": "string"
          }
        },
        "required": [
          "result"
        ],
        "title": "oblsud_caseOutput",
        "type": "object"
      }
    },
    {
      "name": "oblsud_act",
      "description": "Текст одного акта по act_key/act_id либо court+number/uid (при\n    неоднозначности выберите документ через oblsud_case). date сужает дату акта. Строка part — intro/facts/motivation/resolution/args/full, число — физическая\n    часть страницы. offset/length или around задаёт окно; session связывает вызовы. Границы именованных частей — по апелляционному профилю производства, неизвестные\n    и первая инстанция явно отмечаются. Числовая адресация сохраняет докачку с сайта. JSON содержит дату, вид документа, источник и смещения. Перед цитированием —\n    oblsud_verify_quote.",
      "inputSchema": {
        "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"
      },
      "outputSchema": {
        "properties": {
          "result": {
            "title": "Result",
            "type": "string"
          }
        },
        "required": [
          "result"
        ],
        "title": "oblsud_actOutput",
        "type": "object"
      }
    },
    {
      "name": "oblsud_search",
      "description": "Поиск практики судов субъекта; JSON с охватом, разными актами и воронкой. query — обычный вопрос с морфологическими префиксами; явные AND/OR/NOT,\n    кавычки и префикс неустойк* сохраняют лексическую семантику. text — выражение\n    с морфологическими префиксами, ADJACENT, NEAR/N, SENTENCE, PARAGRAPH. phrase —\n    дословная фраза. norms — логическое выражение норм, например ГК 333 AND ГПК 330;\n    norms_zone и area — intro/facts/motivation/resolution/args/full. Проверка частей\n    ограничена 400 разными актами, неизвестные границы явно отмечаются. court — код/однозначное название; kind — вид документа, proc — civil/admin/koap/\n    criminal/all. year — год/диапазон; year_from/year_to — включительные границы;\n    date_from/date_to — даты ГГГГ-ММ-ДД. judge/judge_id, number, category, party,\n    party_inn/party_role, first_court, outcome, appellant_role, grounds сужают карточку. Неизвестные ИНН/роль/основание не выводятся догадкой. act_ids — числовые ID или\n    act_key через запятую. detail — brief/subject/facts/reasoning/resolution/full;\n    limit <=50, cursor — число уже просмотренных совпадений. session связывает вызовы. Найдено — общий счёт подтверждённых разных актов; показано — страница. При\n    частично счёт является нижней границей. sorted_by всегда сообщает порядок:\n    BM25 по лучшей части при обозримом множестве, иначе дата, новые первыми. Верхушка не показывает распределения исходов — используйте oblsud_aggregate. number проверяется по живому реестру; уже проиндексированный новый текст\n    доступен сразу, без ожидания догрузки метаданных. Новые фасетные связи могут\n    оставаться неизвестными до догрузки; это явно отмечается как частичный ответ. _снимок_* описывает время данных и предупреждает об устаревании.",
      "inputSchema": {
        "properties": {
          "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"
          },
          "number": {
            "default": "",
            "title": "Number",
            "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"
          },
          "text": {
            "default": "",
            "title": "Text",
            "type": "string"
          },
          "phrase": {
            "default": "",
            "title": "Phrase",
            "type": "string"
          },
          "norms": {
            "default": "",
            "title": "Norms",
            "type": "string"
          },
          "norms_zone": {
            "default": "",
            "title": "Norms Zone",
            "type": "string"
          },
          "area": {
            "default": "",
            "title": "Area",
            "type": "string"
          },
          "detail": {
            "default": "subject",
            "title": "Detail",
            "type": "string"
          },
          "judge_id": {
            "default": 0,
            "title": "Judge Id",
            "type": "integer"
          },
          "appellant_role": {
            "default": "",
            "title": "Appellant Role",
            "type": "string"
          },
          "grounds": {
            "default": "",
            "title": "Grounds",
            "type": "string"
          },
          "party_inn": {
            "default": "",
            "title": "Party Inn",
            "type": "string"
          },
          "party_role": {
            "default": "",
            "title": "Party Role",
            "type": "string"
          },
          "year_from": {
            "default": 0,
            "title": "Year From",
            "type": "integer"
          },
          "year_to": {
            "default": 0,
            "title": "Year To",
            "type": "integer"
          },
          "cursor": {
            "default": 0,
            "title": "Cursor",
            "type": "integer"
          },
          "act_ids": {
            "default": "",
            "title": "Act Ids",
            "type": "string"
          },
          "proc": {
            "default": "",
            "title": "Proc",
            "type": "string"
          }
        },
        "title": "oblsud_searchArguments",
        "type": "object"
      },
      "outputSchema": {
        "properties": {
          "result": {
            "title": "Result",
            "type": "string"
          }
        },
        "required": [
          "result"
        ],
        "title": "oblsud_searchOutput",
        "type": "object"
      }
    },
    {
      "name": "oblsud_by_norm",
      "description": "По норме code/article; JSON с охватом и ссылками на разные акты. Кодексы и федеральные законы канонизируются общей библиотекой (ГК, ГПК, КоАП,\n    Конституция, 229-ФЗ, ЗоЗПП). part — часть либо пункт, point — строго пункт;\n    вместе они означают часть и пункт. query ищется в той же физической части,\n    что ссылка. zone — именованная часть, with_norm — дополнительное выражение норм. include_frame=false пока возвращает явное отсутствие разметки рамки (этап 2c). court/year/kind/proc/date_from/date_to/judge/judge_id/party/category/first_court/\n    outcome/limit/session — срез и объём как у oblsud_search.",
      "inputSchema": {
        "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"
      },
      "outputSchema": {
        "properties": {
          "result": {
            "title": "Result",
            "type": "string"
          }
        },
        "required": [
          "result"
        ],
        "title": "oblsud_by_normOutput",
        "type": "object"
      }
    },
    {
      "name": "oblsud_probe",
      "description": "Сравнить до восьми формулировок variants (или queries) через |. JSON считает разные акты и показывает top результатов с detail. court, year,\n    kind (документ), proc (производство), date_from/date_to, judge/judge_id, party,\n    category, first_court, outcome, appellant_role, norms, year_from/year_to сужают\n    срез как у oblsud_search. session связывает вызовы. Частичный счёт — нижняя\n    граница, неизвестный остаток не считается нулём.",
      "inputSchema": {
        "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"
      },
      "outputSchema": {
        "properties": {
          "result": {
            "title": "Result",
            "type": "string"
          }
        },
        "required": [
          "result"
        ],
        "title": "oblsud_probeOutput",
        "type": "object"
      }
    },
    {
      "name": "oblsud_parties",
      "description": "Справочник сторон со стабильным party_id, числом дел и разных актов. name — начало слов имени или названия (например ПАО Аэрофлот), inn — явные\n    10/12 цифр источника, only_org — только организации. court/year/date_from/\n    date_to сужают наличие участия; limit <=100, session связывает вызовы. ФИО физлица маскировано штатно: первая/последняя буква, длина сохранена. Технический ключ физлица непрозрачен. Список дел лица —\n    oblsud_search(party=…).",
      "inputSchema": {
        "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"
      },
      "outputSchema": {
        "properties": {
          "result": {
            "title": "Result",
            "type": "string"
          }
        },
        "required": [
          "result"
        ],
        "title": "oblsud_partiesOutput",
        "type": "object"
      }
    },
    {
      "name": "oblsud_aggregate",
      "description": "Распределение разных актов: by=court/year/kind/proc/judge/outcome/\n    appellant/category. query, court, year, kind, proc, date_from/date_to,\n    judge/judge_id, party, category, first_court, outcome, appellant_role, grounds,\n    year_from/year_to сужают срез; limit <=100, session связывает вызовы. JSON\n    показывает охват и снимок.",
      "inputSchema": {
        "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"
      },
      "outputSchema": {
        "properties": {
          "result": {
            "title": "Result",
            "type": "string"
          }
        },
        "required": [
          "result"
        ],
        "title": "oblsud_aggregateOutput",
        "type": "object"
      }
    },
    {
      "name": "oblsud_stats",
      "description": "Охват собранного корпуса: известно документов, собрано текстов, виды\n    документов/производства и наличие полей карточек. Без параметров — весь\n    корпус; court — код или однозначная часть названия, year — год либо\n    диапазон 2019-2021. Перечень видов — это и есть список допустимых значений\n    параметра kind у oblsud_search; других источников этого перечня нет. Части документа не увеличивают процент охвата. Для поиска по нормам показывает также охват разметки, уникальные связи\n    «норма — акт», число упоминаний и ошибки разбора. Это отдельные показатели:\n    наличие текста ещё не означает, что его ссылки уже разобраны. Наличие полей и производства считается по суду/корпусу целиком; year\n    сужает охват текстов и норм. _снимок_* показывает время каждого индекса. ",
      "inputSchema": {
        "properties": {
          "court": {
            "default": "",
            "title": "Court",
            "type": "string"
          },
          "year": {
            "default": "",
            "title": "Year",
            "type": "string"
          },
          "session": {
            "default": "",
            "title": "Session",
            "type": "string"
          }
        },
        "title": "oblsud_statsArguments",
        "type": "object"
      },
      "outputSchema": {
        "properties": {
          "result": {
            "title": "Result",
            "type": "string"
          }
        },
        "required": [
          "result"
        ],
        "title": "oblsud_statsOutput",
        "type": "object"
      }
    },
    {
      "name": "oblsud_verify_quote",
      "description": "Сверить дословную цитату с хранимыми текстами акта и показать окружение. Передайте act_key из поиска/карточки либо суд ВМЕСТЕ с номером дела. Если у дела несколько документов, выберите act_key через oblsud_case. Проверяются все хранимые части; ответ указывает part и позицию с нуля. Различия только в пробелах/мягких переносах отмечаются отдельно. При\n    недоступном тексте или таймауте цитата считается НЕ ПРОВЕРЕННОЙ. quote — минимум 15 знаков. Сеть не используется, акты не докачиваются. ",
      "inputSchema": {
        "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"
      },
      "outputSchema": {
        "properties": {
          "result": {
            "title": "Result",
            "type": "string"
          }
        },
        "required": [
          "result"
        ],
        "title": "oblsud_verify_quoteOutput",
        "type": "object"
      }
    },
    {
      "name": "oblsud_acts",
      "description": "Пакетный добор целых частей выбранных актов: act_ids через запятую. part — intro/facts/reasoning/resolution/args/full; budget — знаки, по умолчанию\n    100000. Непоместившиеся целые части перечисляются; cursor продолжает список. ",
      "inputSchema": {
        "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"
      },
      "outputSchema": {
        "properties": {
          "result": {
            "title": "Result",
            "type": "string"
          }
        },
        "required": [
          "result"
        ],
        "title": "oblsud_actsOutput",
        "type": "object"
      }
    },
    {
      "name": "oblsud_categories",
      "description": "Категории споров из карточек облсудов: рубрика/корень, дела и разные акты. contains — подстрока, root — точный корень; идентификаторы и счётчики из снимка. ",
      "inputSchema": {
        "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"
      },
      "outputSchema": {
        "properties": {
          "result": {
            "title": "Result",
            "type": "string"
          }
        },
        "required": [
          "result"
        ],
        "title": "oblsud_categoriesOutput",
        "type": "object"
      }
    },
    {
      "name": "oblsud_judges",
      "description": "Судьи-докладчики облсудов: начало фамилии → стабильный judge_id для поиска. court — код или однозначное название; однофамильцев разных судов не объединяет. ",
      "inputSchema": {
        "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"
      },
      "outputSchema": {
        "properties": {
          "result": {
            "title": "Result",
            "type": "string"
          }
        },
        "required": [
          "result"
        ],
        "title": "oblsud_judgesOutput",
        "type": "object"
      }
    },
    {
      "name": "case_by_uid",
      "description": "ВСЕ производства одного дела по УИД — сквозь все суды общей юрисдикции. УИД (уникальный идентификатор дела, вида <court>-<instance>-<year>-<serial>-<check>) присваивается\n    делу в первой инстанции и идёт с ним дальше. Под одним УИД лежат:\n    * само дело в первой инстанции (районный суд, в т.ч. районные суды Москвы);\n    * МАТЕРИАЛЫ по этому делу — взыскание судебных расходов, разъяснение решения,\n      индексация, отсрочка, пересмотр по новым обстоятельствам, исполнение приговора:\n      у них свой номер (13-…, М-…, 4/17-…), но ТОТ ЖЕ УИД;\n    * апелляция (областной, краевой, республиканский суд; Московский городской суд);\n    * кассация (кассационные суды общей юрисдикции);\n    * повторные рассмотрения после возврата из вышестоящего суда — новый номер, тот же УИД. Где взять УИД: в карточке дела на сайте суда и в шапке судебных актов (с 2019 г.). Вызывать, когда нужна история дела целиком: чем кончилась апелляция, была ли\n    кассация, вернули ли дело, какие были материалы после решения. Каждое производство — суд, номер, даты, результат, вид (дело / материал / апелляция /\n    кассация), ссылка на карточку суда и каким инструментом идти за актами («далее»). Полнота: первая инстанция и кассация — по собранным карточкам; апелляция — по УИД в\n    тексте акта или по номеру дела первой инстанции.",
      "inputSchema": {
        "properties": {
          "uid": {
            "default": "",
            "title": "Uid",
            "type": "string"
          },
          "session": {
            "default": "",
            "title": "Session",
            "type": "string"
          }
        },
        "title": "case_by_uidArguments",
        "type": "object"
      },
      "outputSchema": {
        "properties": {
          "result": {
            "title": "Result",
            "type": "string"
          }
        },
        "required": [
          "result"
        ],
        "title": "case_by_uidOutput",
        "type": "object"
      }
    },
    {
      "name": "raysud_case",
      "description": "Карточка районного дела, доступные стадии и список собранных документов. court — код (37RS0019) либо однозначное название; неоднозначное название\n    возвращает кандидатов с регионом. number — основной, прежний номер или\n    номер материала с буквальным суффиксом; нормализация едина с индексом Д1. Без суда — список «суд — дело» по всем судам и просьба уточнить court:\n    показано N из M, limit<=100, cursor продолжает страницу. Повторные\n    рассмотрения и материалы по УИД сохраняются отдельными производствами. uid — УИД производства через uid_index (не UUID карточки сайта). act_id/act_ids — документы из raysud_case; act_ids перечисляются через запятую. Москва 77RS читается из mgs_district.db. Даты/состояние карточки читаются\n    по живому PK; полной таблицы движения в локальных источниках пока нет. Индекс номеров/актов догружается каждые 15 минут, изменённые старые поля\n    перечитываются циклом refresh; отметки _снимок_* показывают срез. ",
      "inputSchema": {
        "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"
      },
      "outputSchema": {
        "properties": {
          "result": {
            "title": "Result",
            "type": "string"
          }
        },
        "required": [
          "result"
        ],
        "title": "raysud_caseOutput",
        "type": "object"
      }
    },
    {
      "name": "raysud_act",
      "description": "Текст одного районного документа по act_id или act_key=raysud:<doc_id>. Те же параметры окна, что у kas_act/oblsud_act: around (подстрока), offset,\n    length (знаки исходника, максимум 100000), part=full либо номер физической части из\n    raysud_case. part=0 по умолчанию читает часть, адресованную act_id. intro/facts/reasoning/resolution/args пока возвращают явное\n    отсутствие разметки первой инстанции; не подменяются кассационным профилем. court+number или uid выбирают акт только при однозначности; date (ISO)\n    сужает дату документа. Если актов несколько — выберите act_id из списка. JSON содержит суд, номер, дату/вид документа, источник, исходные смещения\n    и продолжение. part=full читает документ окнами до 100000 знаков;\n    продолжайте по offset из ответа. Реквизиты физлиц заменяются понятными\n    масками; окно/offset/length и around остаются в координатах исходника,\n    поэтому длина выданной строки может отличаться от размера окна. Маска не является дословной цитатой. ФИО обезличивает общий публичный слой. Отсутствующий текст не скачивается в этом вызове; используйте ссылку на\n    источник. ",
      "inputSchema": {
        "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"
      },
      "outputSchema": {
        "properties": {
          "result": {
            "title": "Result",
            "type": "string"
          }
        },
        "required": [
          "result"
        ],
        "title": "raysud_actOutput",
        "type": "object"
      }
    },
    {
      "name": "raysud_courts",
      "description": "Районные/городские суды: код, название, регион, источник и число карточек. contains — код, слова названия или регион; region — часть названия региона,\n    code — код либо его префикс (37RS, 77RS); limit<=100, cursor продолжает список. Москва включается из отдельной mgs_district.db с честной пометкой охвата. Для дела выберите код и вызовите raysud_case(court=…, number=…). ",
      "inputSchema": {
        "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"
      },
      "outputSchema": {
        "properties": {
          "result": {
            "title": "Result",
            "type": "string"
          }
        },
        "required": [
          "result"
        ],
        "title": "raysud_courtsOutput",
        "type": "object"
      }
    },
    {
      "name": "fas_stats",
      "description": "Границы и покрытие корпуса решений ФАС России: сколько документов, за\n    какой период, какие ВИДЫ документов и какие ТЕРРИТОРИАЛЬНЫЕ ОРГАНЫ в нём\n    есть, сколько документов по годам. Вызывать первым: значения параметров\n    fas_search берутся отсюда — вид документа и управление задаются так, как их\n    печатает ФАС («Решение», «Предписание», «Приморское УФАС России»). ЧЕМ ЭТО ОТЛИЧАЕТСЯ ОТ СУДЕБНЫХ КОРПУСОВ. Здесь административная практика\n    антимонопольного органа, а не суд: комиссия УФАС рассматривает жалобы на\n    закупки (44-ФЗ, 223-ФЗ), дела о нарушении Закона о защите конкуренции,\n    реестр недобросовестных поставщиков, рекламу, тарифы. На решение ФАС нельзя\n    ссылаться как на позицию суда — оно само оспаривается в арбитражном суде. Судебную практику ищут в kas_* (кассация ОЮ), oblsud_* (облсуды) и\n    search_practice/find_by_norm (ВС, КС, Пленумы, ВАС). Отвечает мгновенно: счётчики берутся из снимка на диске, в обработчике\n    вызова счёта по корпусу нет вовсе.",
      "inputSchema": {
        "properties": {
          "session": {
            "default": "",
            "title": "Session",
            "type": "string"
          }
        },
        "title": "fas_statsArguments",
        "type": "object"
      },
      "outputSchema": {
        "properties": {
          "result": {
            "title": "Result",
            "type": "string"
          }
        },
        "required": [
          "result"
        ],
        "title": "fas_statsOutput",
        "type": "object"
      }
    },
    {
      "name": "fas_search",
      "description": "Поиск по ТЕКСТУ решений ФАС России с фасетами карточки. query   — набор слов (соединяются по AND). Операторы — прописной латиницей:\n              AND, OR, NOT, NEAR/N; русские «И»/«ИЛИ»/«НЕ» операторами не\n              считаются и отвергаются с подсказкой. phrase  — ТОЧНАЯ фраза: «уклонился от заключения контракта». Считается от\n              редчайшего слова фразы и сверяется с текстом дословно, поэтому\n              ловит и типографику (разрядку, переносы), которую индекс не видит. number  — номер дела или документа («<case-number>-2025», «<case-number>»): поле\n              «Дело» ФАС почти нигде не заполняет, номер лежит в заголовке, и\n              этот параметр ищет именно там. kind    — вид документа («Решение», «Предписание», «Постановление»,\n              «Предупреждение», «Решения по тарифам»); значения — fas_stats(). division — территориальный орган («Санкт-Петербургское УФАС России») или\n              центральный аппарат («Управление контроля размещения\n              государственного заказа»). Принимается однозначная часть названия. year_from/year_to или date_from/date_to (дд.мм.гггг) — период регистрации. detail  — brief | card (по умолчанию, с фрагментом вокруг совпадения) | full. order   — date (новые первыми, по умолчанию) | relevance. Всегда возвращает число найденного и ВОРОНКУ по шагам: по ней видно, какое\n    условие обнулило выдачу — слова, вид документа, управление или период. ЭТО НЕ СУДЕБНАЯ ПРАКТИКА: решение комиссии УФАС не позиция суда, ссылаться\n    на него как на практику нельзя. Оно показывает, что антимонопольный орган\n    считает нарушением и какими словами это описывает.",
      "inputSchema": {
        "properties": {
          "query": {
            "default": "",
            "title": "Query",
            "type": "string"
          },
          "phrase": {
            "default": "",
            "title": "Phrase",
            "type": "string"
          },
          "number": {
            "default": "",
            "title": "Number",
            "type": "string"
          },
          "kind": {
            "default": "",
            "title": "Kind",
            "type": "string"
          },
          "division": {
            "default": "",
            "title": "Division",
            "type": "string"
          },
          "year_from": {
            "default": 0,
            "title": "Year From",
            "type": "integer"
          },
          "year_to": {
            "default": 0,
            "title": "Year To",
            "type": "integer"
          },
          "date_from": {
            "default": "",
            "title": "Date From",
            "type": "string"
          },
          "date_to": {
            "default": "",
            "title": "Date To",
            "type": "string"
          },
          "limit": {
            "default": 10,
            "title": "Limit",
            "type": "integer"
          },
          "cursor": {
            "default": 0,
            "title": "Cursor",
            "type": "integer"
          },
          "detail": {
            "default": "card",
            "title": "Detail",
            "type": "string"
          },
          "order": {
            "default": "date",
            "title": "Order",
            "type": "string"
          },
          "session": {
            "default": "",
            "title": "Session",
            "type": "string"
          }
        },
        "title": "fas_searchArguments",
        "type": "object"
      },
      "outputSchema": {
        "properties": {
          "result": {
            "title": "Result",
            "type": "string"
          }
        },
        "required": [
          "result"
        ],
        "title": "fas_searchOutput",
        "type": "object"
      }
    },
    {
      "name": "fas_doc",
      "description": "Текст документа ФАС: целиком, окном или вокруг подстроки. Принимает uuid,\n    адрес страницы (/to/…/<uuid>/) или did из выдачи fas_search; можно НЕСКОЛЬКО\n    через запятую — тогда документы отдаются подряд, пока хватает бюджета\n    ответа, а не поместившиеся называются поимённо, а не отбрасываются молча. around — показать окно вокруг подстроки (удобно, когда нужен один абзац из\n    решения на 200 тыс. знаков). offset/length — окно по смещению; продолжение\n    ответ подсказывает сам. Вместе с документом отдаётся карточка ДЕЛА, если документ на неё ссылается:\n    у ФАС дело и документ — разные страницы, и стадия со сроками стоят в деле.",
      "inputSchema": {
        "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"
      },
      "outputSchema": {
        "properties": {
          "result": {
            "title": "Result",
            "type": "string"
          }
        },
        "required": [
          "result"
        ],
        "title": "fas_docOutput",
        "type": "object"
      }
    },
    {
      "name": "fas_verify_quote",
      "description": "Сверить, что цитата ДОСЛОВНО есть в документе ФАС. В процессуальный\n    документ и в переписку с антимонопольным органом переносится только\n    подтверждённое — это защита от выдуманных формулировок. Сверка идёт по исходному тексту, но допускает разрядку и мягкие переносы:\n    ловится выдуманное, а не типографика. Цитата принимается и в ОБЕЗЛИЧЕННОМ\n    виде, как её видит вызывающий: серия «*» сверяется как ровно такое же число\n    букв (маска сохраняет длину слова), поэтому подмена слова другой длины\n    подтверждения не получит.",
      "inputSchema": {
        "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"
      },
      "outputSchema": {
        "properties": {
          "result": {
            "title": "Result",
            "type": "string"
          }
        },
        "required": [
          "result"
        ],
        "title": "fas_verify_quoteOutput",
        "type": "object"
      }
    }
  ]
}
