garant-mcp
This MCP server connects Claude to the Russian legal database Garant: search legal documents, retrieve texts and articles with verifiable provenance, explore document structure and revisions, and find high-court practice.
garant_search — keyword/requisite search over Garant documents with paging, result-type distribution, and optional cache bypass.
garant_toc — get the table of contents of a document (sections and articles with IDs).
garant_document — fetch the full text of a document by doc_id, with provenance (edition, effective date, amending act, text hash) and normalization warnings.
garant_article — retrieve the verbatim text of a specific article/point, with full provenance and warnings about possible incomplete or extra text.
garant_revisions — list all editions of an act, their validity periods, and the acts that introduced them.
garant_revision_on_date — determine which edition was in force on a given date (returns edition metadata, not the norm text).
garant_kinds — browse Garant's information-type tree to get exact kind names for practice filtering.
garant_practice — search judicial practice of the RF Constitutional Court and Supreme Court, with optional kind, court, date, and limit filters; responses warn that the result set is intentionally incomplete.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@garant-mcp найди в Гаранте статью 108 УПК РФ"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
garant-mcp
Ассистент, который цитирует закон по базе «Гарант», а не по памяти. garant-mcp создан для одной задачи: чтобы Claude или Codex при подготовке юридических документов работали с действующим текстом нормы, нужной редакцией и реальной практикой — и каждую ссылку отдавали с реквизитами, по которым её можно сверить.
Для чего он создан
Языковая модель, отвечающая по памяти, ошибается в праве не грубо, а правдоподобно, и именно поэтому опасно. Искажения типовые:
сдвиг квантора — частный случай выдаётся за общее правило и наоборот: «никогда не вправе» там, где закон говорит «в случаях, предусмотренных…»;
смешение полномочий субъектов — права следователя, дознавателя, органа дознания и оперативного сотрудника сливаются в одно «правоохранительный орган может»;
потеря ограничительной оговорки — норма приводится без условия, которое делает её применимой;
устаревшая или несуществующая редакция — статья цитируется в том виде, в каком её запомнила модель, а не в том, какой действовал на дату события;
правдоподобные реквизиты — номер, дата и название акта выглядят верно и не существуют.
В исковом заявлении, жалобе или заключении каждое такое искажение — не погрешность стиля, а довод, который отклонят суд и противная сторона, и повод усомниться во всём документе.
garant-mcp убирает причину: ассистент перестаёт отвечать по памяти. Норма, редакция и практика извлекаются из базы «Гарант» в момент запроса, и ответ строится на извлечённом тексте. Модель рассуждает — база отвечает за факт.
Пример. На вопрос о полномочиях оперативного сотрудника при проведении оперативно-розыскных мероприятий ассистент без базы уверенно ответил, что назначать исследования и экспертизы он не вправе, — сдвиг квантора: общий запрет там, где закон разграничивает процессуальную экспертизу и исследование в рамках оперативно-розыскной деятельности. С подключённым garant-mcp тот же вопрос привёл ассистента к тексту Федерального закона «Об оперативно-розыскной деятельности» и УПК РФ в действующих редакциях, и ответ был построен на нормах — со статьями, редакцией и изменяющими актами. В практике автора после подключения базы ошибки такого рода в подготовке процессуальных документов перестали возникать.
Related MCP server: laws
Как меняется работа
Раньше: открыть «Гарант», найти документ, пролистать до статьи, проверить редакцию, скопировать, вставить, сверить — и так с каждой ссылкой. Теперь один вопрос ассистенту своими словами: он сам находит документ, открывает нужную статью, определяет, какая редакция действовала на дату события, поднимает практику Верховного и Конституционного судов — и текст с редакцией, датой начала её действия и изменяющим актом уже стоит в вашем документе.
Так готовятся иск, жалоба, заключение, претензия, договор; так же — смета с обоснованием по нормативам, закупочная документация, кадровый приказ, ответ контролирующему органу. Везде, где нужна точная ссылка на норму, ассистент делает её сам и показывает, откуда взял. Сверка цитаты перед подачей занимает минуту: реквизиты и отпечаток текста приходят вместе с ответом.
Что умеет
Восемь инструментов, которыми пользуется ассистент:
инструмент | что делает |
| поиск по всей базе — акты, судебные решения, комментарии, формы |
| текст документа; у длинных актов — первые страницы, о чём ответ предупреждает сам |
| дословный текст конкретной статьи или пункта |
| оглавление документа |
| все редакции акта: периоды действия, изменяющие акты |
| какая редакция действовала на нужную дату |
| судебная практика высших судов с фильтрами по виду и периоду |
| дерево видов информации базы |
Текст статьи в нужной редакции берётся по её id_редакции из
garant_revision_on_date или garant_revisions — ассистент делает это сам,
когда речь идёт о событии в прошлом.
Почему этому можно доверять
К тексту статьи прикладывается блок provenance: редакция, дата начала её
действия, изменяющий акт, дата проверки и отпечаток ровно того текста, который
отдан. Цитату с таким блоком сверяют, а не принимают на веру — это главное
отличие от «спросить у ИИ про закон». Там, где выдача неполна или требует
сверки, инструмент сообщает об этом сам — в полях _предупреждение
и _нормализация.
ключ | что означает |
| идентификатор, по которому взят текст: документа или его редакции |
| в какой редакции взят текст и с какой даты она действует |
| каким актом введена |
| откуда и когда получено |
| отпечаток отданного текста и версия правила его вычисления |
| появляется только когда есть повод уточнить редакцию — и называет его |
Доступ — ваша подписка
Работает через вашу собственную подписку «Гаранта»: вы один раз входите в своём браузере, сессия живёт в профиле браузера на вашем компьютере и продлевается автоматически. Репозиторий не содержит базы, не хранит и не передаёт учётные данные, ничего не проксирует. Без действующей подписки сервер работать не будет.
Что нужно
Действующая подписка «Гаранта» — логин и пароль от
internet.garant.ru.Один из клиентов: Claude Desktop, Claude Code или Codex (агент OpenAI по подписке ChatGPT). Чат ChatGPT локальные MCP-серверы не запускает — для подписки ChatGPT нужен Codex, см. ниже.
git — пакет ставится из репозитория. Windows:
winget install --id Git.Git -e; macOS:brew install git; Debian/Ubuntu:sudo apt install git. После установки откройте новое окно консоли.
Python ставить не нужно — установщик поставит сам. Права администратора не требуются; единственное исключение — включение длинных путей на Windows, см. «Если не работает».
Установка: три шага
1. Одна команда
Windows — Win, набрать «PowerShell», открыть, вставить строку целиком:
powershell -NoProfile -ExecutionPolicy Bypass -Command "& ([scriptblock]::Create((irm https://raw.githubusercontent.com/semenboss95-design/garant-mcp/main/install.ps1).TrimStart([char]0xFEFF)))"macOS и Linux — в Терминале:
curl -LsSf https://raw.githubusercontent.com/semenboss95-design/garant-mcp/main/install.sh -o install.sh && sh install.shУстановщик ставит менеджер пакетов uv, сам пакет и браузер Chromium,
прописывает сервер в Claude Desktop и Claude Code, открывает окно входа
и заканчивает диагностикой. Каждый шаг печатает результат; в конце — сводка.
Повторный запуск безопасен: ничего не дублируется, вход не сбрасывается.
2. Вход в подписку
В открывшемся окне браузера введите логин и пароль «Гаранта», дождитесь личного кабинета и закройте окно. Если окно закрыли раньше или оно не открылось — вход делается отдельно:
garant loginПроверка, что подписка отвечает:
garant doctor --живой3. Перезапуск клиента
Claude и Codex читают список серверов при старте. Закройте клиент полностью (на macOS — Cmd+Q) и откройте снова. Спросите: «найди в Гаранте статью 108 УПК РФ» — при первом обращении клиент попросит разрешение на инструмент, разрешите.
Codex (подписка ChatGPT)
Codex — агент OpenAI (приложение, командная строка и расширение для редактора), доступный по подписке ChatGPT. В отличие от чата ChatGPT он запускает локальные MCP-серверы. Регистрация — одной командой после установки:
garant register --codexКоманда дописывает в ~/.codex/config.toml таблицу [mcp_servers.garant]
с полным путём к серверу и таймаутом запуска, не трогая остальные настройки
(если файл уже был, рядом остаётся его копия .bak). Каталог настроек
переопределяется переменной CODEX_HOME. После регистрации перезапустите
Codex. Снять запись — garant unregister --codex. Сервер проверен в живом
Codex 09.09.2026 по записи такого вида, вписанной руками.
Другие MCP-клиенты, умеющие запускать локальную программу, работают с записью
вида {"command": "garant-mcp"} — её вписывают в конфигурацию клиента руками;
если клиент не видит каталог команд uv, вместо имени ставится полный путь
к garant-mcp.
Управление: команда garant
Одна команда на всех системах:
garant doctor диагностика; --живой добавляет запрос к «Гаранту»
garant status коротко: демон, сессия, версия, каталог состояния
garant login войти в подписку
garant setup повторить установочные шаги
garant start | stop | restart
garant logs [N] последние N строк журнала демона
garant register прописать сервер у Claude Desktop и Claude Code;
--codex — у Codex; --project ПУТЬ — в .mcp.json проекта
garant unregister снять запись
garant autostart on поднимать демона при входе в систему
garant update обновить пакет и перезапустить демона — вход сохраняется
garant uninstall снять регистрации, автозапуск и демона; профиль подписки —
только с --purge; сам пакет — uv tool uninstall garant-mcp
garant migrate ПУТЬ перенести профиль из прежней установкиgarant без аргументов печатает полный список. Каждый красный пункт
garant doctor сопровождается командой, которой он чинится.
Если не работает
garant не находится как команда. Откройте новое окно консоли. Если
не помогло — uv tool update-shell, затем снова новое окно.
Claude или Codex не видят инструменты. garant register (для Codex —
garant register --codex), затем garant doctor и полный перезапуск клиента.
«Сессия подписки недействительна» (сервер ответил 401 или 403). Вход
истёк: garant login.
Windows: установка пакета упала с «WinError 206» или установка Chromium — с ошибкой Python. Выключены длинные пути. В PowerShell от администратора один раз:
New-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\FileSystem' -Name LongPathsEnabled -Value 1 -PropertyType DWord -ForceЗатем повторите установку в обычном окне.
Ключи установщика
Для проверки установки без подписки и без записи в конфигурации клиентов установщик запускается из файла с ключами:
irm https://raw.githubusercontent.com/semenboss95-design/garant-mcp/main/install.ps1 -OutFile install.ps1
powershell -NoProfile -ExecutionPolicy Bypass -File .\install.ps1 -БезРегистрации -БезВходаcurl -LsSf https://raw.githubusercontent.com/semenboss95-design/garant-mcp/main/install.sh -o install.sh
sh install.sh --no-register --no-loginключ | Windows | macOS и Linux |
ставить из своего каталога или адреса |
|
|
не открывать окно входа |
|
|
не трогать конфигурации клиентов |
|
|
сверить, что автозапуск не появился |
|
|
справка |
|
|
--source принимает git-адрес, имя пакета, файл .whl или корень
распакованного репозитория. С --no-register шаг garant setup пропускается
целиком: пакет ставится, но Chromium, регистрация и вход выполняются потом
командами garant setup и garant login.
Границы
Текст статьи — нормализованный HTML страницы «Гаранта», поэтому редакционные
врезки («Статья … дополнена … с … г.») могут оказаться внутри цитаты; каждый
ответ с текстом несёт оговорку _нормализация, и перед подачей документа
цитату сверяют с окном подписки. Судебная практика отдаётся первой страницей
отфильтрованного списка — фильтры «Гаранта» по виду и периоду серверные,
остальные страницы не запрашиваются; уточнение по конкретному суду
делается по заголовку и объявляется в _предупреждение; акты кассационных
судов общей юрисдикции лежат в другой базе «Гаранта» и через подписку
недоступны. У garant_toc, garant_kinds, garant_revisions
и garant_revision_on_date блока provenance нет: они возвращают структуру
и сведения о редакциях, а не текст нормы. Клиент построен по записанному
трафику «Гаранта», публичного API у сервиса нет; при изменении API сервиса
ответы инструментов проверяются и карта эндпоинтов обновляется.
Как устроено
Claude / Codex → garant-mcp → HTTP на 127.0.0.1 → garant-daemon → браузер → «Гарант»Демон — единственный владелец профиля браузера; он продлевает сессию
по таймеру независимо от того, открыт ли клиент, слушает только 127.0.0.1
и поднимается автоматически при первом вызове инструмента. Отпечаток браузера
(User-Agent, локаль и часовой пояс вашей машины плюс фиксированный размер
окна) снимается при первом входе и сохраняется — к нему привязана сессия.
Карта эндпоинтов лежит
в src/garant_mcp/endpoints.json отдельно от кода.
Устройство — docs/ARCHITECTURE.md; журнал решений
с обоснованиями — docs/DECISIONS.md.
Разработчикам
Первым делом в свежем клоне включите защиту от утечки секретов:
git config core.hooksPath hookshooks/pre-commit проверяет содержимое индекса и не пропустит живую сессию,
токен или путь машины. Что именно проверяется — hooks/README.md.
Протокол работы — docs/TEAM.md, живая приёмка —
docs/ACCEPTANCE.md. CI прогоняет ruff, тесты,
сборку пакета и дымовой тест MCP по stdio на Windows и Linux.
Лицензия
Apache License 2.0; обязательные уведомления — в NOTICE,
при распространении и в форках сохраняются. Лицензия не даёт прав на товарный
знак «Гарант» и описывает права на этот код; допустимость автоматизированного
обращения к сервису определяется его правилами и вашей подпиской.
About tools/ (English)
tools/ is a small, service-agnostic pipeline for building an API client for
a web application that has no public API:
record_api.py → record the XHR/fetch traffic of a live session with Playwright (analytics noise filtered out)
build_endpoints.py → derive an endpoint map from those recordingsThe result is a JSON map — request steps, placeholders, extraction paths — that
a thin client reads at runtime instead of hardcoding URLs. src/garant_mcp/
is the reference consumer of such a map (src/garant_mcp/endpoints.json).
Recordings are truncated on capture and never committed: they contain a live
authenticated session.
Available Tools
8 toolsgarant_articleA
Дословный текст конкретной статьи или пункта.
article — номер статьи или пункта: "97", "109", "5". Собирается цепочкой: оглавление → определение страницы → текст страниц → вырезка от заголовка статьи до следующего (отдельного эндпоинта «статья» у Гаранта нет).
Основной инструмент сверки цитат перед подачей документа; обрывать цитату
на середине запрещено. Два ключа ответа читать обязательно:
_предупреждение — конец фрагмента не подтверждён, и риск бывает ДВУХ
родов: текст неполный (конец не поместился в загруженные страницы) либо
ИЗБЫТОЧНЫЙ — в вырезку попал чужой текст, начало соседней статьи. Какой
именно риск остался, сказано в самом предупреждении; избыточность опаснее
тем, что цитата выглядит целой;
_нормализация — присутствует ВСЕГДА: текст получен нормализацией HTML
страницы «Гаранта», и редакционные врезки («Статья … дополнена … с … г.»)
могли попасть в вырезку неотмеченными. Сверяйте с окном подписки.
Дословного сличения с оригиналом инструмент не обещает и обещать не может:
оригинал в машинном виде ему не отдают, есть только нормализованный HTML.
Что именно нормализация ставит в тексте и что в нём меняет, перечислено
в самом ключе _нормализация каждого ответа; второго его написания
здесь нет намеренно: оно разошлось бы с первым молча — и разошлось бы
там, где читатель переносит цитату в подаваемый документ.
Inputs: doc_id (required), article (required). Returns: result
garant_documentA
Полный текст документа по doc_id + provenance (редакция, дата актуальности, hash).
Использовать, когда нужен весь акт. Для одной статьи/пункта — garant_article (дешевле и точнее).
Полноту проверяют сравнением: страниц — сколько загружено,
страниц_в_документе — сколько их всего (null, если «Гарант» числа
не назвал). Расходятся — ответ несёт _предупреждение, и в нём названа
причина: упёрлись в max_pages (повтор с бо́льшим значением помогает) или
«Гарант» не отдал пакет страниц (не помогает, смотрите логи).
max_pages — сколько страниц загружать. Параметр выставлен наружу потому,
что на длинном акте ответ несёт _предупреждение с советом увеличить
max_pages: совет, которому нельзя последовать, хуже отсутствия совета.
Не указан — берётся умолчание клиента; второго его написания здесь нет
намеренно, оно разошлось бы с первым молча.
_нормализация — присутствует ВСЕГДА, как и у garant_article: текст
получен нормализацией HTML страницы «Гаранта», а не выгрузкой оригинала,
и редакционные врезки могли попасть в него неотмеченными. Обещание
«полный текст» относится к охвату страниц, а не к дословности разметки.
Что именно нормализация ставит в тексте и что в нём меняет, перечислено
в самом ключе _нормализация каждого ответа; второго его написания
здесь нет намеренно: оно разошлось бы с первым молча — и разошлось бы
там, где читатель переносит цитату в подаваемый документ.
Inputs: doc_id (required), max_pages. Returns: result
garant_kindsA
Дерево видов информации ГАРАНТа: «Акты органов власти», «Высшие суды» и т.д.
Нужно, чтобы узнать ТОЧНОЕ название вида для garant_practice(kind=...). node_id=0 — верхний уровень (21 узел); подставьте id узла, чтобы раскрыть ветку.
Частый случай: выяснить, в каком виде лежат акты кассационных судов общей юрисдикции — в выдаче «Высшие суды» их нет, там только КС РФ и ВС РФ.
Inputs: node_id. Returns: result
garant_practiceA
Поиск судебной практики: КС РФ, ВС РФ, кассационные суды.
Вид информации и период применяются НА СЕРВЕРЕ Гаранта: /list/kind → /list/filter → /list/page. Уточнение по суду (court) — ЕДИНСТВЕННОЕ исключение: серверного фильтра по суду в этой цепочке нет, поэтому оно делается отбором по подстроке заголовка на клиенте, уже внутри отфильтрованного сервером вида. Значит, выдача по court заведомо неполна: акт нужного суда, чей заголовок назван иначе, в неё не попадёт.
Акты кассационных судов общей юрисдикции в подписке недоступны: вид «Судебная практика» пуст (0 документов), тексты КСОЮ лежат в отдельной базе d.garant.ru, к которой доступа нет. Искать их здесь бессмысленно — рабочий канал один: вид «Высшие суды» (КС РФ и ВС РФ).
kind — вид информации; по умолчанию «Высшие суды» (КС РФ и ВС РФ). Полный перечень видов — garant_kinds. court — уточнение внутри выбранного вида; отбор по заголовку на клиенте (см. исключение выше), а не серверный фильтр. date_from / date_to — "ДД.ММ.ГГГГ".
ВЫДАЧА ЗАВЕДОМО НЕПОЛНАЯ, и ответ говорит об этом ключом
_предупреждение: берётся только первая страница отфильтрованного списка,
список режется по limit, а court отбирается по заголовку на клиенте.
Вывод «у этого суда практики нет» из такого ответа не следует.
Поле номер_в_заголовке — то, что стоит после «№» в заголовке. Номером
ДЕЛА оно является не всегда: там же стоят номера постановлений Пленума
и обзоров практики. Прежнее поле статуса с «✓» удалено: оно называло
подтверждённым то, что никто не подтверждал.
Приоритет источников практики: КС РФ и ВС РФ выше кассационных судов общей
юрисдикции.
Inputs: query (required), kind, court, limit, +2 more. Returns: result
garant_revision_on_dateA
КАКАЯ редакция действовала на дату. Текста нормы НЕ возвращает.
on_date — «ДД.ММ.ГГГГ». Ответ — запись о редакции: её название, статус,
период действия, изменяющий акт и id_редакции. Ни текста статьи, ни блока
provenance в нём нет.
действует_с и действует_по в ответе — границы ТОГО периода, которым
покрыта запрошенная дата (периодов у редакции бывает несколько; чем это
вызвано, карта эндпоинтов не объясняет); он же отдельным ключом
_период_на_дату. Полный перечень периодов — в ключе периоды
и в garant_revisions.
В день СТЫКА редакций под дату подходят обе: границу периода МЫ читаем
включительно с обеих сторон, а как её трактует сам «Гарант», не проверено.
Тогда в ответе стоит ключ _предупреждение: он называет всех кандидатов
и говорит, что отданная выбрана порядком списка, а не доказана. Тот же
ключ появляется, среди прочего, когда карта эндпоинтов не описывает список
периодов, когда периодов у записи больше одного и когда сама дата
в действует_с не разобралась как дата. Перечень здесь неполный
намеренно: ветвей у ключа больше, чем описание способно перечислить
не устаревая, — полон только сам ключ, и читать надо его.
Применять, когда норма цитируется применительно к прошлому событию: в жалобе на акт годичной давности норма приводится в редакции, действовавшей на дату того акта, а не в сегодняшней. Ссылка на редакцию, которой на тот момент не существовало, — самостоятельный повод отклонить довод.
ЧЕМ ВЗЯТЬ ТЕКСТ ТОЙ РЕДАКЦИИ. Прямого способа нет: garant_article и garant_document параметра редакции не принимают и собирают provenance по ДЕЙСТВУЮЩЕЙ редакции. Поэтому текст, взятый ими, относится к сегодняшнему дню, даже если этот инструмент вернул другую редакцию, — и ставить их рядом как цитату на прошлую дату нельзя.
Есть непроверенная возможность: id_редакции — это documentId самой
редакции, и он МОЖЕТ приниматься как doc_id в garant_article. Проверить это
без живой подписки невозможно, поэтому до проверки считать, что способа нет,
и говорить пользователю прямо: редакция установлена, дословный текст в ней —
нет.
Inputs: doc_id (required), on_date (required). Returns: result
garant_revisionsA
Список редакций документа и изменяющих актов. Кэш не используется.
Для каждой редакции: статус (действующая / утратила силу), период действия,
изменяющий акт, id_редакции. Периодов бывает больше одного — тогда все
они перечислены в ключе периоды, а действует_с/действует_по называют
лишь первый из них. Смежность периодов СЧИТАЕТСЯ по датам: разбиение
непрерывного срока на записи перерывом не называется. Но держится она
не всегда на одной арифметике: период, начинающийся на следующий день
после конца предыдущего, смежен лишь потому, что границу МЫ читаем
включительно, а как её трактует сам «Гарант», на живой базе НЕ проверено.
Там, где запись называет периоды смежными, на чём эта смежность стоит,
сказано в её ключе _предупреждение. Там, где посчитан разрыв, запись
об этом молчит: непрерывность там не утверждается вовсе, а действует_с
ошибается в сторону поздней даты. ЧЕМ вызван посчитанный разрыв,
мы не знаем: карта эндпоинтов этого не объясняет.
Наше прочтение — ЕСЛИ акт приостанавливали и возвращали в силу — на живой
базе НЕ проверено, и выводить из перерыва между периодами, что норма
не действовала, инструмент оснований не даёт.
периоды равно null означает, что карта эндпоинтов их не описывает.
Сказанное едет не только здесь, но и ключом _предупреждение у самой
записи, и ветвей у ключа больше, чем названо выше: там же говорится,
например, когда сама дата в действует_с не разобралась как дата.
Перечислить их здесь не устаревая описание не может — полон только сам
ключ, и читать надо его: описание инструмента остаётся у инструмента,
а запись уходит дальше — в пересказ, в черновик, в следующий шаг.
Основа мониторинга: если действующая редакция новее той, в которой норма была процитирована раньше, цитату надо пересверить — сама по себе она не устаревает заметно.
Inputs: doc_id (required). Returns: result
garant_searchA
Поиск документов в базе ГАРАНТ по реквизитам или контексту.
query — 3–5 КЛЮЧЕВЫХ СЛОВ, а не фраза-тезис. Гарант трактует запрос как конъюнкцию всех слов: длинная формулировка даёт одно-два случайных попадания или ноль. «продление домашнего ареста мотивированность» — рабочий запрос; «суд обязан привести конкретные фактические обстоятельства» — нет. Возвращает {total, страница, всего_страниц, items[...], kinds[]}, где kinds — распределение находок по видам (акты власти, высшие суды, комментарии). doc_id использовать дальше в garant_document / garant_article / garant_revisions.
Перечень находок кэшируется (тексты норм — никогда). Ответ из кэша несёт
в provenance из_кэша, дата_записи, возраст_часов и
срок_годности_часов: документ,
появившийся в базе после записи, в таком ответе не появится.
use_cache=False — потребовать свежего похода в «Гарант»; применять, когда
важна именно сегодняшняя полнота выдачи.
Inputs: query (required), page, limit, use_cache. Returns: result
garant_tocA
Оглавление документа: разделы и статьи с идентификаторами элементов.
Полезно, когда garant_article не нашёл статью — посмотреть, как она названа в акте.
Inputs: doc_id (required). Returns: result
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 8 tools
Each tool maps to a distinct resource or action: general search, table of contents, full document, single article, revision list, revision-on-date, practice search, and information-type tree. The only potentially overlapping pair (garant_document vs garant_article) is explicitly differentiated by scope and cost, while garant_search vs garant_practice is clearly separated by normative documents vs court practice.
All tools share a consistent garant_ prefix and snake_case style, and most names are resource nouns such as document, article, revisions, kinds, toc, and practice. Minor deviations are garant_search as a verb, garant_toc as an abbreviation, and garant_revision_on_date as a noun phrase rather than a verb_noun pattern, so the scheme is predictable but not perfectly uniform.
Eight tools is well-scoped for a specialized legal-research server: there are no redundant tools, and the set covers search, retrieval, navigation, revision history, and court-practice search without bloat. Each tool has a clear role, and the count matches the stated purpose.
The set covers the core workflow: search, TOC navigation, full-document retrieval, article-level citation, revision history, and revision-on-date lookup. The main gap is that no tool can return the verbatim text of a historical revision, which the description explicitly calls out, and practice search is deliberately limited to first-page results with client-side court filtering. These are documented limitations but can be worked around for most monitoring and citation tasks.
Maintenance
Related MCP Connectors
Current law as data for AI: search, read and verify statutes and citations. CIS countries first.
Russian law for AI: statutes with edition dates, Supreme Court guidance and court practice.
Russian docs for AI agents: invoices/acts PDF, document parsing, INN checks, medical ad checks
Resolve, search and verify legal citations against the official sources, with provenance.
Related MCP Servers
- AlicenseAqualityDmaintenanceEnables searching and retrieving Russian legal cases, court documents, participant information, judge statistics, and hearing schedules from Casebook/Pravo.ru.88 npmMIT
- AlicenseNot gradedqualityCmaintenanceProvides local, offline semantic search across 24 Russian Federation legal codes using natural-language queries, with tools to retrieve full articles by identifier and list available codes.BSD 2-Clause "Simplified"
- AlicenseAqualityBmaintenanceEnables Claude Desktop users to search and read consolidated Spanish legislation, Constitutional Court rulings, BORME company announcements, and Basque BOPV regulations, and to verify legal citations against official open-data sources.221AGPL 3.0
- AlicenseAqualityBmaintenanceEnables AI agents to search Russian legislation, extract verbatim article texts, verify the current status of norms (including repealed and upcoming amendments), and track State Duma bills against official sources. Anchor responses to the current system date, flag future effective editions, and return verifiable ConsultantPlus, Garant, pravo.gov.ru, and SOZD links to prevent hallucinations.4MIT