Quatre étapes pour les personnes qui travaillent dans un terminal. DeepSeek Harness (la commande dsh) est l’environnement agentique ouvert de DeepSeek, entièrement organisé autour de plugins. Il connecte les serveurs MCP en tant que client client, avec une entrée dans le fichier de profil. Il n’y a pas de fenêtre de connexion ici ; l’accès est transmis au moyen d’un jeton personnel.
L’instruction a été vérifiée sur la version dsh 0.1.0-rc.7, les captures d’écran ayant été réalisées dans son interface web.
| Élément requis | Adresse (URL) |
|---|---|
| Toutes les bases payées, y compris les districts | https://mcp.casus.legal/one/mcp |
Un abonnement ou une période d’essai pour la base souhaitée, ainsi qu’un token personnel du type vasrf_conn_… depuis l’espace personnel.
Installation en une seule commande : npm i -g @deepseek-ai/dsh. Le profil web est créé automatiquement lors du premier lancement dsh web.
La clé du modèle DeepSeek est nécessaire uniquement pour les réponses de l’agent ; le connecteur lui-même se connecte indépendamment de celle-ci.
Ouvrez espace personnel, l’onglet « Connecteurs », le bloc « Autres environnements » et cliquez sur « Générer un token ». Le jeton s’affiche une seule fois.
Conservez-le dans la variable d’environnement plutôt que dans le texte de configuration, car les fichiers de profil se retrouvent facilement dans des sauvegardes et des dépôts.
Le token reste valide tant que l’abonnement est actif et ouvre l’accès à toutes les bases payées. Il ne perturbe pas les connexions Claude et ChatGPT il ne le casse pas.
Les modifications personnalisées du profil se trouvent dans le fichier cordis.patch.yml dans le répertoire du profil. Pour le profil web il s’agit de ~/.dsh/profiles/web/cordis.patch.yml. Celui d’à côté cordis.yml — c’est la racine du profil, elle ne doit pas être modifiée, comme cela est également indiqué dans le fichier lui-même.
Une nouvelle entrée est ajoutée via insert. C’est le point essentiel. Un correctif sans insert est considéré comme une modification d’une entrée existante, et dsh il l’ignorera silencieusement avec un avertissement patch: entry … not found.
~/.dsh/profiles/web/cordis.patch.yml
L’adresse de connexion est — https://mcp.casus.legal/one/mcp. Il s’agit de l’adresse unique: elle donne accès à toutes les bases auxquelles vous êtes abonné, et le réseau neuronal sélectionne lui-même celle qui convient au sujet de la question. Si vous avez besoin d’un connecteur pour une seule base, il existe également des adresses distinctes (IP Court — https://sip.casus.legal/mcp, KAS — https://kas.casus.legal/mcp, KUD — https://kud.casus.legal/mcp), mais l’adresse doit alors correspondre à la base souscrite, faute de quoi le serveur répondra « abonnement inactif ou expiré ». Il n’est pas nécessaire de conserver simultanément l’adresse unique et les adresses distinctes : le réseau neuronal verra deux ensembles d’outils identiques et effectuera la recherche deux fois. Le tableau complet des adresses se trouve ci-dessous, sous les étapes.
Dans serverName les lettres latines, les chiffres, le trait d’union et le caractère de soulignement sont autorisés, jusqu’à 32 caractères, et la valeur doit être unique parmi les serveurs connectés. Les noms des outils sont générés à partir de celle-ci mcp__casuslegal__….
Si plusieurs bases sont nécessaires, ajoutez dans la même liste un bloc pour chacune, en modifiant id, serverName et l’adresse du tableau ci-dessous. Le jeton est le même dans tous les blocs.
La configuration assemblée du profil est affichée par une commande distincte. Celle-ci ne lance toutefois pas l’environnement :
À la fin de la sortie, votre entrée doit apparaître avec l’indication de sa source # == ~/.dsh/profiles/web/cordis.patch.yml. Si un avertissement s’est affiché à la place patch: entry … not found, cela signifie que insert de l’étape 2 a été perdu.
Lancez l’environnement : dsh web — il ouvrira une interface web locale et en affichera l’adresse.

Ouvrez Settings → Plugins: cette page répertorie les plug-ins de l’assemblage installé.

Accédez à l’onglet Plugin list et saisissez dans la recherche mcp. L’entrée mcp-client à l’état Enabled signifie que le client est monté et se connecte à notre serveur.

Posez ensuite à l’agent une question substantielle, par exemple : « Trouve la jurisprudence de la Cour suprême de la Fédération de Russie concernant la réduction de la clause pénale au titre de l’article 333 du Code civil de la Fédération de Russie ». Les outils du connecteur seront transmis au modèle sous les noms mcp__casuslegal__….
| Base | serverName | Adresse (url) |
|---|---|---|
| Toutes les bases souscrites immédiatement | casuslegal | https://mcp.casus.legal/one/mcp |
| Districts de cassation (tous) | casuslegal_okruga | https://mcp.casus.legal/okrug/mcp |
| Hautes juridictions : Cour constitutionnelle · Cour suprême · Cour suprême d’arbitrage (arbitrazh) | casuslegal | https://mcp.casus.legal/mcp |
| Cour des droits de propriété intellectuelle (IP Court) | casuslegal_sip | https://sip.casus.legal/mcp |
| Affaires administratives (KAS · Collège judiciaire des affaires administratives de la Cour suprême de la Fédération de Russie) | casuslegal_kas | https://kas.casus.legal/mcp |
| Affaires pénales (KUD · Collège judiciaire des affaires pénales de la Cour suprême de la Fédération de Russie) | casuslegal_kud | https://kud.casus.legal/mcp |
| Champ | Objet |
|---|---|
| toolCallTimeoutMs | Délai d’expiration d’un appel d’outil. Par défaut, 60 000 ms ; pour une recherche dans le corpus, définissez 180 000. |
| failOnStartupError | Avec la valeur true l’assemblage ne démarrera pas si le connecteur est indisponible. Pratique pour éviter de travailler « sans jurisprudence » sans s’en apercevoir. |
| reconnect.enabled | Reconnexion automatique après une coupure. Activée par défaut. |
Le correctif ne contient pas insert. Sans celui-ci, l’entrée est considérée comme une modification d’un plug-in existant portant ce id, et dsh elle est ignorée. Le connecteur n’apparaît alors tout simplement pas, sans erreur explicite.
Comparez avec le bloc de l’étape 2 et recommencez dsh --profile web --dump-config.
Le client s’active même si la connexion échoue, c’est prévu ainsi : l’assemblage ne doit pas s’arrêter en raison d’un serveur indisponible. Vérifiez que la variable CASUSLEGAL_TOKEN est visible par le processus, c’est-à-dire exportée dans le même shell que celui depuis lequel dsh.
Pour que ces cas soient immédiatement visibles, définissez dans la configuration failOnStartupError: true.
Uniquement streamable-http. Notre adresse fonctionne avec Streamable HTTP ; avec la valeur sse ou stdio la connexion ne s’établit pas.
Une recherche dans le corpus prend environ 30 secondes, et une question complexe déclenche plusieurs recherches successives. Les 60 000 ms standard ne suffisent pas ; définissez toolCallTimeoutMs: 180000.
Ouvrez l’onglet « Connecteurs » dans votre espace personnel et vérifiez la durée de validité de l’abonnement à la base souhaitée. Chaque corpus est facturé séparément ; « Hautes juridictions » est inclus dans tout forfait.
Il ne s’affiche pas une deuxième fois. Générez-en un nouveau dans votre espace personnel et remplacez la valeur de la variable d’environnement ; les connexions existantes ne seront pas interrompues pour autant.