mcp-sudact

io.github.atomno-mcp由 GitHub 帳號 atomno-mcp 發布v0.2.0更新於 Nov 7, 2026

Court practice and FAS case cards via hosted API. Coverage depends on the connected service.

概覽

AI 產生的概覽

透過託管的 ATOMNO API 檢索俄羅斯法院判例與 FAS 案件卡片的輕量 MCP 用戶端,需使用服務金鑰。

可以做什麼
  • 依文字、案號、法院類型、法條與日期檢索案件,並保留來源與警告資訊
  • 依機關、法律、文書類型與日期檢索 FAS 決定卡片
  • 查詢已連線伺服器支援的區段、篩選條件與分頁能力
  • 在有限樣本中解析法院名稱候選,並標示歧義
  • 依 URL 或案件 ID 取得文書或卡片正文,可選擇匿名化
適用情境
當助理需要查詢俄羅斯法院判例或 FAS 案件卡片,且你已開通 ATOMNO 服務時適用。它只是輕量用戶端而非完整語料庫,適合定向查詢而非窮盡式法律檢索。
執行需求
本機 Python 套件(需 Python 3.11 以上),通常以 uvx 或 pip 執行。需要金鑰 MCP_SUDACT_TOKEN;API 位址由 MCP_SUDACT_API_BASE 設定(預設指向 ATOMNO 端點),逾時由 MCP_SUDACT_TIMEOUT 設定。需要能連線至託管 API 的網路。
安裝前請注意
MCP_SUDACT_TOKEN 中的金鑰不應提交到程式碼儲存庫。存取權限、配額與計費由服務合約決定,取得金鑰並不自動開通所有來源。每次呼叫只嘗試一次,即使逾時也可能被計入,且不會自動重試。涵蓋範圍、全文與匿名化均有限,由後端決定。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 mcp-sudact,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

atomno-mcp-sudact

MCP-клиент для поиска судебной практики и карточек дел ФАС через подключённый API ATOMNO. Это тонкий клиент, а не собственная полная база судебных решений. Python >=3.11.

Установка и подключение

sh
pip install atomno-mcp-sudactatomno-mcp-sudact --helpatomno-mcp-sudact --version

Для подключения используйте ключ и адрес активированной услуги из кабинета/инструкции. Ключ задаётся переменной MCP_SUDACT_TOKEN, адрес — MCP_SUDACT_API_BASE. По умолчанию адрес https://api.atomno-mcp.ru/sudact; конкретный доступ и подключённые источники определяет услуга. MCP_SUDACT_TIMEOUT задаёт HTTP-таймаут в секундах (по умолчанию 60).

json
{"mcpServers":{"sudact":{"command":"atomno-mcp-sudact","env":{"MCP_SUDACT_TOKEN":"YOUR_API_KEY","MCP_SUDACT_API_BASE":"https://api.atomno-mcp.ru/sudact"}}}}

Не сохраняйте настоящий ключ в репозитории. Получение ключа не означает автоматическое подключение всех источников.

Инструменты

  • search_cases: текст от 3 символов или отдельный case_number, court_type=any|vs|arbitr|soyu|fas, статьи norms, даты YYYY-MM-DD, limit=1..50. Исходные поля, предупреждения, provenance и сведения о лимитах сохраняются.
  • get_search_capabilities: возможности подключённого сервера, разделы, фильтры и доступность пагинации. Требует действующий ключ и не запускает поиск.
  • resolve_court_name: кандидаты названий судов из ограниченной выдачи одного раздела. Возвращает карточки, точное совпадение, неоднозначность и границы выборки. Это один обычный учитываемый поиск; возвращённые карточки учитываются как в search_cases.
  • search_fas_decisions: карточки ФАС; текст, орган body, закон law (44-ФЗ/223-ФЗ/135-ФЗ/38-ФЗ), вид акта act_type, даты, лимит. Передаётся /v1/search с court_type=fas. Карточка не обязательно содержит полный текст решения.
  • get_citation: url или case_id из выдачи, include_full_text, anonymize_level=none|physical_persons|all_persons. Наличие полного текста и результат анонимизации определяет backend.

У search_cases есть соответствующие поля fas_body, fas_law, fas_act_type, допустимые только для any/fas. Виды актов: решение, предписание, постановление, постановление о штрафе, определение, предупреждение, жалоба, уведомление.

Структурированные фильтры требуют один раздел. Они передаются в отдельные поля формы Sudact и проверяются по текущей форме перед поиском. Если источник убрал поле или значение неоднозначно, сервер возвращает ошибку. Фильтры не снимаются при сбое: такой запрос не переключается на другой источник и не дополняется индексами RAS/ФАС.

РазделОтдельные поляregioninstance
arbitrcase_number, court, judgeсудебный округany
soyucase_number, court, judgeсубъект РФany, first, appeal, cassation, supervision
vscase_number, judgeне поддерживаетсяany

region принимает точное имя или код из формы выбранного раздела. Один числовой код может означать разные значения в разных разделах; общего справочника кодов нет. court принимает точное имя суда. Наличие поля поиска не означает полный справочник судов.

Пример поиска по реквизитам: search_cases(court_type="arbitr", case_number="А40-12345/2024") — query можно опустить. Номер отправляется отдельным фильтром, не заменяется текстовым запросом.

Для помощника укажите name, один court_type=arbitr|soyu|vs и, по возможности, query или case_number, задающие полезную выборку. Без них текстом поиска становится name. exact означает точное совпадение среди полученных имён; unique_candidate — один частичный кандидат, требующий выбора; ambiguous — несколько; not_found_in_sample — имени нет в этой выборке. Только exact заполняет resolved_name. Ни один статус не доказывает полноту справочника. Доступно не более 50 карточек и пяти поисков страниц источника.

page=1..5 допустим только для одного раздела vs/arbitr/soyu, без фильтров ФАС, при page*limit<=50. Такой запрос не смешивает корпуса и fallback. Обёртка проверки норм на конкретной услуге может отклонить page с 422 — в этом случае запросите без page. Клиент не отключает серверную проверку норм.

source и collegium не являются подтверждёнными фильтрами действующего REST-контракта и не экспортируются. Поле source в ответе — происхождение записи. Выбор раздела или ФАС и установленный клиент не гарантируют права на все источники, полный корпус или свежесть всех данных. Новый MCP-клиент не предлагает неподтверждённый раздел ks. Старые REST-запросы с этим значением получают явный типизированный отказ до обращения к источнику.

Ошибки и учёт

Пустая успешная выдача отличается от ошибки источника. 401/403/429/5xx сохраняются как backend_error со статусом; таймаут/сетевая ошибка — unavailable. Ошибочный/необъектный JSON не становится пустым результатом. Отсутствующий ключ — missing_token, неправильный ключ не называется отсутствующим.

Каждый вызов выполняет одну попытку POST. Автоматического повтора при timeout, 429 или 502–504 нет: повтор может быть новым учитываемым запросом. Таймаут не доказывает, что сервер не учёл обращение; клиент не обещает возврат квоты. Права и учёт определяет действующая услуга.

get_search_capabilities выполняет одну попытку GET. resolve_court_name выполняет одну попытку POST. При недоступности добавочного индекса основной ответ сохраняется, а search_meta.partial_errors и warnings явно отмечают неполную выдачу источников. Ошибка основного источника, CAPTCHA, незавершённый поиск и повреждённая страница не выдаются за отсутствие дел.

Перед каждым поиском с новыми структурированными фильтрами и перед resolve_court_name клиент проверяет контракт сервера одним GET capabilities. Если старый сервер, откат или повреждённый ответ не подтверждает возможности, поисковый POST не отправляется (unsupported_backend). Положительный ответ не кэшируется между вызовами. Обычные текстовые запросы обходятся одним POST и работают с прежним сервером. Выкладка сервера должна атомарно сохранять заявленный контракт во время обработки запроса.

Запуск

По умолчанию — stdio. Поддерживаются --transport/-t stdio|http|sse|streamable-http, --host, --port, --log-level/-l DEBUG|INFO|WARNING|ERROR|CRITICAL, --version/-V. Для HTTP-транспортов по умолчанию используются 127.0.0.1:8000; публичное размещение требует отдельной настройки доступа. Уровень CLI имеет приоритет над MCP_SUDACT_LOG_LEVEL; неправильный уровень — ошибка запуска. Баннер не попадает в stdio.

Разработка

sh
pip install -e ".[dev,release]"ruff check .pytest --cov=atomno_mcp_sudact --cov-fail-under=85python -m buildpython -m twine check dist/*

Тесты используют изолированные HTTP-ответы, а не доказывают работу production или платного клиентского доступа. MIT распространяется на клиентский код; условия источников и услуги определяются отдельно.

Документация · Ошибки · Изменения

來源:README.md,提交 7380e2d

工具

5

search_cases

Поиск подключённых источников с исходными provenance/предупреждениями. Доступ к soyu определяется услугой; ks не подтверждён и отклоняется. Полный корпус не гарантируется. source/collegium не поддерживаются как фильтры API. Даты/лимиты/метаданные не переписываются.

輸入參數pagecourtjudgelimitnormsqueryregiondate_tofas_lawfas_bodyinstancedate_from另有 3 個

get_search_capabilities

Текущие разделы, поддержка фильтров и доступность page на подключённом сервере.

無需輸入參數。

resolve_court_name

Кандидаты судов из ограниченной выборки карточек, с явной неоднозначностью. Если query и case_number не заданы, name становится текстовым запросом. Это не полный справочник. Один поиск, обычный учёт вызова и возвращённых карточек.

輸入參數name必填limitquerycourt_type必填case_number

search_fas_decisions

Карточки базы решений ФАС через /v1/search court_type=fas. Не обещает полный текст решения. Источник, дата сведений и предупреждения сохраняются. Текст карточки можно запросить через get_citation.

輸入參數lawbodylimitquery必填date_toact_typedate_from

get_citation

Текст акта или карточки; полный текст доступен не для каждой записи. Нужен url/case_id. Анонимизация и её ограничения определяются backend.

輸入參數urlcase_idanonymize_levelinclude_full_text

版本歷史

3
  1. v0.2.0最新Nov 4, 2026
  2. v0.1.10Nov 3, 2026
  3. v0.1.8Sep 16, 2026

評分

已滿足適用檢查項的 90%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分
  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具必需15 分
  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分