CasusLegal CasusLegal Корпус практики высших судов ← На главную

Подключение к DeepSeek Harness

Четыре шага для тех, кто работает в терминале. DeepSeek Harness (команда dsh) — это открытая агентная среда DeepSeek, где всё устроено плагинами. MCP-серверы она подключает как клиент, записью в файле профиля. Окна входа здесь нет, доступ передаётся персональным токеном.

Инструкция проверена на версии dsh 0.1.0-rc.7, скриншоты сняты в её веб-интерфейсе.

⚠️ Среда без гарантии. Гарантированно поддерживаются Claude, ChatGPT, Grok и Hermes — в них коннектор протестирован. DeepSeek Harness открыт в августе 2026 и быстро меняется. Названия полей в новых версиях могут разойтись с инструкцией, тогда сверяйтесь с документацией плагина @deepseek-ai/dsh-mcp-client.
Доступ к базе. Приветственные бесплатные запросы в веб-чате и Telegram-боте на коннектор не распространяются. Перед подключением включите в личном кабинете бесплатный пробный период на три дня или оформите подписку на нужную базу.

Что понадобится

Со стороны CasusLegal
Действующий доступ и токен

Подписка или пробный период на нужную базу и персональный токен вида vasrf_conn_… из кабинета.

Со стороны DeepSeek
Установленный dsh и профиль

Установка одной командой: npm i -g @deepseek-ai/dsh. Профиль web создаётся сам при первом запуске dsh web.

Ключ модели DeepSeek нужен только для ответов агента, сам коннектор подключается независимо от него.

1
Выпустите токен и положите его в переменную окружения

Откройте личный кабинет, вкладку «Коннекторы», блок «Другие среды» и нажмите «Выпустить токен». Токен показывается один раз.

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

export CASUSLEGAL_TOKEN=vasrf_conn_ваш_токен

Токен действует, пока активна подписка, и открывает все оплаченные базы. Уже настроенные Claude и ChatGPT он не ломает.

2
Добавьте сервер в патч-слой профиля

Пользовательские правки профиля живут в файле cordis.patch.yml в каталоге профиля. Для веб-профиля это ~/.dsh/profiles/web/cordis.patch.yml. Соседний cordis.yml — это корень профиля, его не редактируют, о чём написано и в самом файле.

Новая запись добавляется через insert. Это главная тонкость. Патч без insert считается правкой существующей записи, и dsh молча пропустит его с предупреждением patch: entry … not found.

~/.dsh/profiles/web/cordis.patch.yml

- insert: - id: mcp-casuslegal name: '@deepseek-ai/dsh-mcp-client' config: serverName: casuslegal transport: streamable-http url: https://mcp.casus.legal/mcp headers: Authorization: !!js '`Bearer ${process.env.CASUSLEGAL_TOKEN}`' # один поиск идёт ~30 секунд: значения по умолчанию (60 000 мс) не хватает toolCallTimeoutMs: 180000

Адрес в примере — база «Высшие суды». Подставляйте адрес той базы, которую вы оплатили (СИП — https://sip.casus.legal/mcp, КАС — https://kas.casus.legal/mcp, КУД — https://kud.casus.legal/mcp): с чужим адресом подключение пройдёт, но коннектор ответит, что подписка неактивна или истекла. Полная таблица — ниже, под шагами.

В serverName допустимы латиница, цифры, дефис и подчёркивание, до 32 символов, и значение должно быть уникальным среди подключённых серверов. Из него собираются имена инструментов mcp__casuslegal__….

Если нужны несколько баз, добавьте в тот же список по блоку на каждую, меняя id, serverName и адрес из таблицы ниже. Токен во всех блоках один.

3
Проверьте, что запись попала в дерево профиля

Собранную конфигурацию профиля печатает отдельная команда. Среду она при этом не запускает:

dsh --profile web --dump-config | tail -20

В конце вывода должна появиться ваша запись с пометкой источника # == ~/.dsh/profiles/web/cordis.patch.yml. Если вместо неё напечаталось предупреждение patch: entry … not found, значит потерян insert из шага 2.

4
Запустите dsh и убедитесь, что плагин поднялся

Запустите среду: dsh web — она поднимет локальный веб-интерфейс и напечатает его адрес.

Главный экран веб-интерфейса DeepSeek Harness: слева список сессий и кнопка Settings, в центре поле ввода.
Главный экран DeepSeek Harness. Кнопка Settings — внизу слева.

Откройте Settings → Plugins: на этой странице собраны плагины установленной сборки.

Раздел Plugins в настройках DeepSeek Harness с вкладками Plugin configuration и Plugin list.
Раздел Plugins: вкладка Plugin configuration — настройки, Plugin list — полный перечень.

Перейдите на вкладку Plugin list и введите в поиск mcp. Запись mcp-client в состоянии Enabled означает, что клиент смонтирован и подключается к нашему серверу.

Вкладка Plugin list с фильтром mcp: найдена одна запись mcp-client со статусом Enabled.
Фильтр по слову mcp: mcp-client — Enabled. Так выглядит смонтированный коннектор.

Дальше задайте агенту содержательный вопрос, например: «Найди практику ВС РФ по снижению неустойки по статье 333 ГК РФ». Инструменты коннектора придут к модели под именами mcp__casuslegal__….

Адреса четырёх баз

БазаserverNameАдрес (url)
Высшие суды: КС · ВС · ВАСcasuslegalhttps://mcp.casus.legal/mcp
Суд по интеллектуальным правам (СИП)casuslegal_siphttps://sip.casus.legal/mcp
Административные дела (КАС · СКАД ВС РФ)casuslegal_kashttps://kas.casus.legal/mcp
Уголовные дела (КУД · СКУД ВС РФ)casuslegal_kudhttps://kud.casus.legal/mcp

Полезные поля плагина

ПолеЗачем
toolCallTimeoutMsТаймаут одного вызова инструмента. По умолчанию 60 000 мс, для поиска по корпусу ставьте 180 000.
failOnStartupErrorПри значении true сборка не поднимется, если коннектор недоступен. Удобно, чтобы не работать «без практики» незаметно для себя.
reconnect.enabledАвтоматическое переподключение после обрыва связи. Включено по умолчанию.

Типичные ошибки

При старте предупреждение «patch: entry … not found»

В патче потерян insert. Без него запись считается правкой уже существующего плагина с таким id, и dsh её пропускает. Коннектор при этом просто не появляется, без явной ошибки.

Сверьтесь с блоком из шага 2 и повторите dsh --profile web --dump-config.

Плагин Enabled, но инструментов у модели нет

Клиент активируется даже при неудачном подключении, так задумано: сборка не должна падать из-за недоступного сервера. Проверьте, что переменная CASUSLEGAL_TOKEN видна процессу, то есть экспортирована в той же оболочке, из которой запускается dsh.

Чтобы такие случаи были заметны сразу, поставьте в конфигурации failOnStartupError: true.

Транспорт: streamable-http или sse?

Только streamable-http. Наш адрес работает по Streamable HTTP; со значением sse или stdio подключение не устанавливается.

Вызов инструмента обрывается по таймауту

Один поиск по корпусу идёт около 30 секунд, а тяжёлый вопрос вызывает несколько поисков подряд. Стандартных 60 000 мс для этого мало, поставьте toolCallTimeoutMs: 180000.

Коннектор отвечает отказом по подписке

Откройте вкладку «Коннекторы» в личном кабинете и проверьте срок подписки на нужную базу. Каждый корпус оплачивается отдельно, «Высшие суды» входят в любой комплект.

Токен потерян

Повторно он не показывается. Выпустите в кабинете новый и замените значение переменной окружения, прежние подключения при этом не отвалятся.