Четыре шага для тех, кто работает в терминале. DeepSeek Harness (команда dsh) — это открытая агентная среда DeepSeek, где всё устроено плагинами. MCP-серверы она подключает как клиент, записью в файле профиля. Окна входа здесь нет, доступ передаётся персональным токеном.
Инструкция проверена на версии dsh 0.1.0-rc.7, скриншоты сняты в её веб-интерфейсе.
Подписка или пробный период на нужную базу и персональный токен вида vasrf_conn_… из кабинета.
Установка одной командой: npm i -g @deepseek-ai/dsh. Профиль web создаётся сам при первом запуске dsh web.
Ключ модели DeepSeek нужен только для ответов агента, сам коннектор подключается независимо от него.
Откройте личный кабинет, вкладку «Коннекторы», блок «Другие среды» и нажмите «Выпустить токен». Токен показывается один раз.
Держите его в переменной окружения, а не в тексте конфигурации, потому что файлы профиля легко попадают в резервные копии и репозитории.
Токен действует, пока активна подписка, и открывает все оплаченные базы. Уже настроенные Claude и ChatGPT он не ломает.
Пользовательские правки профиля живут в файле cordis.patch.yml в каталоге профиля. Для веб-профиля это ~/.dsh/profiles/web/cordis.patch.yml. Соседний cordis.yml — это корень профиля, его не редактируют, о чём написано и в самом файле.
Новая запись добавляется через insert. Это главная тонкость. Патч без insert считается правкой существующей записи, и dsh молча пропустит его с предупреждением patch: entry … not found.
~/.dsh/profiles/web/cordis.patch.yml
Адрес в примере — база «Высшие суды». Подставляйте адрес той базы, которую вы оплатили (СИП — https://sip.casus.legal/mcp, КАС — https://kas.casus.legal/mcp, КУД — https://kud.casus.legal/mcp): с чужим адресом подключение пройдёт, но коннектор ответит, что подписка неактивна или истекла. Полная таблица — ниже, под шагами.
В serverName допустимы латиница, цифры, дефис и подчёркивание, до 32 символов, и значение должно быть уникальным среди подключённых серверов. Из него собираются имена инструментов mcp__casuslegal__….
Если нужны несколько баз, добавьте в тот же список по блоку на каждую, меняя id, serverName и адрес из таблицы ниже. Токен во всех блоках один.
Собранную конфигурацию профиля печатает отдельная команда. Среду она при этом не запускает:
В конце вывода должна появиться ваша запись с пометкой источника # == ~/.dsh/profiles/web/cordis.patch.yml. Если вместо неё напечаталось предупреждение patch: entry … not found, значит потерян insert из шага 2.
Запустите среду: dsh web — она поднимет локальный веб-интерфейс и напечатает его адрес.

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

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

Дальше задайте агенту содержательный вопрос, например: «Найди практику ВС РФ по снижению неустойки по статье 333 ГК РФ». Инструменты коннектора придут к модели под именами mcp__casuslegal__….
| База | serverName | Адрес (url) |
|---|---|---|
| Высшие суды: КС · ВС · ВАС | casuslegal | https://mcp.casus.legal/mcp |
| Суд по интеллектуальным правам (СИП) | casuslegal_sip | https://sip.casus.legal/mcp |
| Административные дела (КАС · СКАД ВС РФ) | casuslegal_kas | https://kas.casus.legal/mcp |
| Уголовные дела (КУД · СКУД ВС РФ) | casuslegal_kud | https://kud.casus.legal/mcp |
| Поле | Зачем |
|---|---|
| toolCallTimeoutMs | Таймаут одного вызова инструмента. По умолчанию 60 000 мс, для поиска по корпусу ставьте 180 000. |
| failOnStartupError | При значении true сборка не поднимется, если коннектор недоступен. Удобно, чтобы не работать «без практики» незаметно для себя. |
| reconnect.enabled | Автоматическое переподключение после обрыва связи. Включено по умолчанию. |
В патче потерян insert. Без него запись считается правкой уже существующего плагина с таким id, и dsh её пропускает. Коннектор при этом просто не появляется, без явной ошибки.
Сверьтесь с блоком из шага 2 и повторите dsh --profile web --dump-config.
Клиент активируется даже при неудачном подключении, так задумано: сборка не должна падать из-за недоступного сервера. Проверьте, что переменная CASUSLEGAL_TOKEN видна процессу, то есть экспортирована в той же оболочке, из которой запускается dsh.
Чтобы такие случаи были заметны сразу, поставьте в конфигурации failOnStartupError: true.
Только streamable-http. Наш адрес работает по Streamable HTTP; со значением sse или stdio подключение не устанавливается.
Один поиск по корпусу идёт около 30 секунд, а тяжёлый вопрос вызывает несколько поисков подряд. Стандартных 60 000 мс для этого мало, поставьте toolCallTimeoutMs: 180000.
Откройте вкладку «Коннекторы» в личном кабинете и проверьте срок подписки на нужную базу. Каждый корпус оплачивается отдельно, «Высшие суды» входят в любой комплект.
Повторно он не показывается. Выпустите в кабинете новый и замените значение переменной окружения, прежние подключения при этом не отвалятся.