Skip to main content
Glama

dsh-cordis-mcp

Das dynamische Cordis-Werkzeugset von DeepSeek Harness wird über MCP (Streamable HTTP) für Claude Code freigegeben: Claude Code kann DSH-dynamische Plugins in Echtzeit laden, definieren, ausführen, aktualisieren, stoppen, löschen – genau dieselben Fähigkeiten und derselbe Laufzeit-Agent, wie wenn du in einer DSH-Session cordis_define / cordis_run / cordis_stop / cordis_undefine / cordis_inspect_* verwendest.

┌─────────────┐   MCP (Streamable HTTP, loopback)   ┌───────────────────────────┐
│ Claude Code │ ────── http://127.0.0.1:8090/mcp ──▶ │ DSH host (本插件)           │
│  (claude)   │ ────── JSON-RPC 2.0 ───────────────▶ │  dynamicCordisRunner      │
└─────────────┘                                       │  cordisInspect            │
                                                      │  agents (会话解析)         │
                                                      └───────────────────────────┘

Das Plugin hängt am vorhandenen Web-Port, öffnet keinen neuen Port und veröffentlicht keinen Dienst; der MCP-Endpunkt erzwingt die Bearer-Authentifizierung. Das Token wird auf der Seite DSH-Einstellungen → dsh-cordis-mcp konfiguriert (beim ersten Mal automatisch generiert, kann angepasst/neu generiert werden).

Fähigkeiten (10 Tools)

MCP-Tool

Entsprechendes DSH-Tool

Funktion

dsh_status

Brückenstatus: Session-Auflösung, Liste aktiver Sessions, Plugin-Anzahl

dsh_sessions

Listet verwaltbare aktive DSH-Sessions (Plugins sind Sessions zugeordnet)

dsh_plugins_list

cordis_inspect_self (ohne Argumente)

Listet alle dynamischen Plugins der Ziel-Session und deren Status

dsh_plugin_inspect

cordis_inspect_self (mit Argumenten)

Plugin-/Paketdetails; mit packageId wird der Quellcode zurückgegeben

dsh_inspect_providers

cordis_inspect_list

Inspect-Provider-Verzeichnis (Host + Client)

dsh_inspect_query

cordis_inspect_query

Führt eine schreibgeschützte Inspect-Abfrage aus (Dienste/Ereignisse/Built-ins/Slots/Themen/Tool-Verzeichnis)

dsh_plugin_define

cordis_define

Definiert ein unveränderliches Package (neues Plugin oder zusätzliche Version)

dsh_plugin_run

cordis_run

Aktiviert ein Package (run / update), kann awaiting-approval zurückgeben

dsh_plugin_stop

cordis_stop

Stoppt die Ausführung, bricht ausstehende Genehmigungen ab, behält Definition und Versionen

dsh_plugin_undefine

cordis_undefine

Löscht das Plugin dauerhaft (einschließlich aller Packages, Autorisierungen und Versionszeiger)

Pakete mit Client-Hälfte durchlaufen beim ersten Start weiterhin den Genehmigungsprozess von DSH: dsh_plugin_run gibt awaiting-approval zurück. Nachdem du auf der Run-Karte im DSH-Web-GUI „Erlauben“ geklickt hast, wird asynchron abgeschlossen – genau wie in einer DSH-Session.

Related MCP server: cc-plugin-mcp

Ein-Klick-Installation

curl -fsSL https://raw.githubusercontent.com/GeekRicardo/dsh-cordis-mcp/main/install.sh | bash

Was das Skript tut (mit --dry-run vorab anzusehen):

  1. Schreibt die Abhängigkeit "dsh-cordis-mcp": "github:GeekRicardo/dsh-cordis-mcp" in ~/.dsh/profiles/web/package.json;

  2. Fügt dsh-cordis-mcp zu dsh.profile.bundles hinzu;

  3. cd ~/.dsh/profiles/web && pnpm install;

  4. Prüft, dass die Bundles registriert sind, und weist auf einen Neustart hin.

Nach einem Neustart von DSH und einem Hard-Refresh der Seite ist der MCP-Endpunkt zusammen mit dem Web-Dienst bereit:

pm2 restart dsh-web   # 若用 pm2 托管;否则用你的启动方式重启

Anbindung an Claude Code

# 端口换成你 DSH web 的实际端口(启动日志会打印完整地址)
claude mcp add dsh --transport http http://127.0.0.1:8090/mcp
claude mcp list          # 确认 connected

Authentifizierung (erzwungen, keine direkte Verbindung)

Der MCP-Endpunkt erzwingt die Bearer-Authentifizierung: Ohne Token wird immer 401 zurückgegeben (falls kein Token konfiguriert ist: 503). Das Token wird auf der Seite DSH-Einstellungen → dsh-cordis-mcp konfiguriert: Beim ersten Gebrauch automatisch generiert und persistent gespeichert; die Seite ermöglicht das Anzeigen/Kopieren/Anpassen/Neugenerieren. Trage das Token in den Request-Header von .mcp.json ein:

{
  "mcpServers": {
    "dsh": {
      "type": "http",
      "url": "http://127.0.0.1:8090/mcp",
      "headers": { "Authorization": "Bearer <设置页里的 token>" }
    }
  }
}

Token-Auflösungspriorität: Konfiguration der Einstellungsseite > DSH_MCP_TOKEN-Umgebungsvariable > automatisch generiert. Ein geändertes Token wird sofort wirksam (kein Neustart nötig); nach der Neugenerierung verliert das alte Token sofort seine Gültigkeit und die Claude-Code-Konfiguration muss entsprechend aktualisiert werden.

Session-Semantik (wichtig)

Dynamische Plugins sind Sessions zugeordnet und liegen im Prozessspeicher (werden beim DSH-Neustart geleert). Die Session-Auflösung der Brücke erfolgt in dieser Reihenfolge:

  1. sessionId aus den Aufrufparametern (über dsh_sessions abfragbar);

  2. festgelegt durch die Umgebungsvariable DSH_MCP_DEFAULT_SESSION;

  3. die aktuell einzige aktive Session;

  4. mehrere aktive Sessions ohne Angabe → Fehler mit Auflistung der Optionen; das Übergeben von sessionId ist erforderlich.

Weitere Umgebungsvariablen

Variable

Standard

Beschreibung

DSH_MCP_PATH

/mcp

MCP-Endpunktpfad (am webServer aufgehängt)

DSH_MCP_TOKEN

Keine

Fallback-Quelle für das Authentifizierungs-Token (wird verwendet, wenn auf der Einstellungsseite nicht konfiguriert)

DSH_MCP_DEFAULT_SESSION

Keine

Ziel-Session, wenn sessionId nicht explizit übergeben wird

Sicherheitsgrenzen

  • Erzwungene Bearer-Authentifizierung: Ohne Token immer 401 bzw. 503, wenn kein Token konfiguriert ist; der Endpunkt kann nie direkt verbunden werden;

  • akzeptiert nur Loopback-Hosts (127.* / localhost / ::1) und lehnt jeglichen externen Zugriff ab;

  • lehnt Browseranfragen mit sec-fetch-site: cross-site ab und gibt niemals CORS-Header zurück – Webseiten können die Antwort nicht lesen;

  • die Route der Einstellungsseite /dsh-cordis-mcp/settings erlaubt nur Same-Origin-Loopback (ohne MCP-Token; geändert wird nur die Token-Konfiguration selbst);

  • der Endpunkt kann Plugins definieren/ausführen/löschen – entspricht Shell-Berechtigungen. Setze den Port nicht für andere als lokale Geräte frei.

Funktionsweise

Datei

Aufgabe

lib/mcp-protocol.js

Reine MCP-JSON-RPC-Schicht (initialize / ping / tools/list / tools/call), null DSH-Abhängigkeiten

lib/tools.js

Eingabevalidierung der 10 Tools + Session-Auflösung; kapselt dynamicCordisRunner / cordisInspect

lib/token.js

Reine Token-Auflösung/-Generierung (Einstellungen > env > automatisch generiert)

lib/http.js

HTTP-Schicht der MCP-Route: erzwungene Authentifizierung, Body-Lesen, Loopback-/Cross-Site-Schutz

lib/index.js

Cordis-Plugin: injiziert 5 Host-Dienste, Settings-Namespace, die Routen /mcp + /dsh-cordis-mcp/settings

lib/client.js

UI der Einstellungsseite: Token anzeigen/kopieren/anpassen/neu generieren + Endpunktadresse

Deinstallation

# 1. 从 ~/.dsh/profiles/web/package.json 的 dsh.profile.bundles 移除 "dsh-cordis-mcp"
# 2. 移除 dependencies 里的 "dsh-cordis-mcp"
# 3. cd ~/.dsh/profiles/web && pnpm install
# 4. 重启 DSH;claude mcp remove dsh

Voraussetzungen

  • DeepSeek Harness hat ein Web-Profil initialisiert (~/.dsh/profiles/web existiert), und die aktuelle Session läuft auf einem Preset mit dem Cordis-Toolset (der Host-Dienst dynamicCordisRunner existiert; standardmäßig vorhanden);

  • die Claude-Code-CLI ist auf diesem Rechner installiert und angemeldet;

  • Node.js ≥ 20 und pnpm sind verfügbar.

Fehlerbehebung

Symptom

Ursache und Behandlung

claude mcp list zeigt disconnected

DSH nicht neu gestartet / Port falsch. Suche nach dem Neustart im DSH-Startprotokoll nach der Zeile [dsh-cordis-mcp] MCP endpoint ready und verwende die ausgegebene Adresse.

dsh_plugin_run gibt awaiting-approval zurück

Pakete mit Client-Hälfte benötigen deine Freigabe auf der Run-Karte im DSH-Web-GUI; führe nach der Autorisierung dsh_plugin_run erneut aus.

Meldung multiple live DSH sessions

Es gibt mehrere aktive Sessions; frage zuerst mit dsh_sessions die ID ab und übergib dann sessionId im Aufruf.

Meldung no live DSH session

Im DSH-Web-GUI ist keine Session geöffnet; öffne eine und versuche es erneut.

401 / missing or invalid bearer token

Das Token in .mcp.json ist abgelaufen oder falsch – kopiere das aktuelle Token von der Einstellungsseite und aktualisiere es.

503 / auth-not-configured

Der Host hat kein Token initialisiert (anormaler Zustand) – speichere auf der Einstellungsseite ein beliebiges Token oder starte DSH neu.

Plugin nach Neustart verschwunden

Dynamische Plugins liegen im Prozessspeicher, das ist erwartet; diese Brücke verwaltet nur den laufenden DSH-Prozess.

Lizenz

MIT

A
license - permissive license
Not graded
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables MCP clients to spawn and control Codex CLI and Claude Code sessions on the host machine, with session management and filesystem access.
    4
    MIT
  • A
    license
    B
    quality
    C
    maintenance
    Exposes self-owned AI agent plugins as tools to Claude Code via a stdio MCP server, allowing Claude to call system info, calculator, or scribe transcriber directly.
    3
    MIT

View all related MCP servers

Related MCP Connectors

  • Generate AI music via the Lacuna Music API from MCP clients like Claude Desktop & Code.

  • Augments MCP Server - A comprehensive framework documentation provider for Claude Code

  • Manage SRG+ hubs, channels, content, assets, users, and workspaces from any MCP-aware AI agent.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/GeekRicardo/dsh-cordis-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server