Skip to main content
Glama

dsh-cordis-mcp

Expone el conjunto de herramientas dinámicas de Cordis de DeepSeek Harness a Claude Code mediante MCP (Streamable HTTP): Claude Code puede cargar, definir, ejecutar, actualizar, detener y eliminar los plugins dinámicos de DSH en tiempo real, con exactamente las mismas capacidades que en una sesión de DSH usando cordis_define / cordis_run / cordis_stop / cordis_undefine / cordis_inspect_*, y el mismo agente de ejecución.

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

Los plugins se montan en el puerto web existente, sin abrir puertos nuevos ni publicar servicios; el endpoint MCP exige autenticación Bearer y el token se configura en la página Configuración de DSH → dsh-cordis-mcp (se genera automáticamente la primera vez; se puede personalizar o regenerar).

Capacidades (10 herramientas)

Herramienta MCP

Herramienta DSH correspondiente

Función

dsh_status

Estado del puente: resolución de sesión, lista de sesiones activas, número de plugins

dsh_sessions

Lista las sesiones DSH activas gestionables (los plugins se asignan por sesión)

dsh_plugins_list

cordis_inspect_self (sin argumentos)

Lista todos los plugins dinámicos y su estado en la sesión objetivo

dsh_plugin_inspect

cordis_inspect_self (con argumentos)

Detalles del plugin/paquete; con packageId devuelve el código fuente

dsh_inspect_providers

cordis_inspect_list

Directorio de inspect providers (host + client)

dsh_inspect_query

cordis_inspect_query

Ejecuta una consulta de inspección de solo lectura (servicios/eventos/internos/slots/temas/directorio de herramientas)

dsh_plugin_define

cordis_define

Define un Package inmutable (crea un plugin nuevo o añade una versión)

dsh_plugin_run

cordis_run

Activa un Package (run / update); puede devolver awaiting-approval

dsh_plugin_stop

cordis_stop

Detiene la ejecución, cancela aprobaciones pendientes; conserva la definición y las versiones

dsh_plugin_undefine

cordis_undefine

Elimina permanentemente el plugin (incluidos todos los Packages, autorizaciones y punteros de versión)

Los paquetes con parte Client siguen pasando por el flujo de aprobación de DSH en su primera ejecución: dsh_plugin_run devuelve awaiting-approval y se completa de forma asíncrona tras hacer clic en Permitir en la tarjeta Run de la GUI web de DSH, igual que en una sesión de DSH.

Related MCP server: cc-plugin-mcp

Instalación con un clic

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

Lo que hace el script (puedes previsualizarlo con --dry-run):

  1. Escribe la dependencia "dsh-cordis-mcp": "github:GeekRicardo/dsh-cordis-mcp" en ~/.dsh/profiles/web/package.json;

  2. Añade dsh-cordis-mcp a dsh.profile.bundles;

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

  4. Verifica que los bundles están registrados y sugiere reiniciar.

Tras reiniciar DSH y hacer un refresco forzado de la página, el endpoint MCP queda listo junto con el servicio web:

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

Conexión con Claude Code

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

Autenticación (obligatoria, no se puede conectar directamente)

El endpoint MCP exige autenticación Bearer; cualquier petición sin token recibe 401 (503 si no hay token configurado). El token se configura en la página Configuración de DSH → dsh-cordis-mcp: se genera y persiste automáticamente en el primer uso; la página permite verlo/copiarlo/personalizarlo/regenerarlo. Introduce el token en la cabecera de .mcp.json:

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

Prioridad de resolución del token: configuración de la página de ajustes > variable de entorno DSH_MCP_TOKEN > generación automática. Cambiar el token surte efecto de inmediato (sin reiniciar); al regenerarlo, el token antiguo queda invalidado al instante y hay que actualizar la configuración de Claude Code.

Semántica de sesión (importante)

Los plugins dinámicos se asignan por sesión y viven en memoria del proceso (se borran al reiniciar DSH). Orden de resolución de sesión del puente:

  1. sessionId en los argumentos de la llamada (se puede consultar con dsh_sessions);

  2. Variable de entorno DSH_MCP_DEFAULT_SESSION;

  3. La única sesión activa actual;

  4. Varias sesiones activas sin especificar → error con la lista de opciones, pidiendo que se pase sessionId.

Otras variables de entorno

Variable

Valor por defecto

Descripción

DSH_MCP_PATH

/mcp

Ruta del endpoint MCP (montado en el webServer)

DSH_MCP_TOKEN

ninguno

Fuente de respaldo del token de autenticación (se usa si la página de ajustes no está configurada)

DSH_MCP_DEFAULT_SESSION

ninguno

Sesión objetivo cuando no se pasa sessionId explícitamente

Límites de seguridad

  • Autenticación Bearer obligatoria: sin token, siempre 401 / 503; el endpoint nunca se puede conectar directamente;

  • Solo acepta Host de loopback (127.* / localhost / ::1); rechaza todo acceso externo;

  • Rechaza peticiones de navegador con sec-fetch-site: cross-site y nunca devuelve cabeceras CORS — las páginas web no pueden leer la respuesta;

  • La ruta de la página de ajustes /dsh-cordis-mcp/settings solo permite loopback del mismo origen (sin token MCP, pero solo modifica la configuración del token en sí);

  • Este endpoint puede definir/ejecutar/eliminar plugins, equivalente a permisos de shell; no expongas el puerto fuera de la máquina local.

Cómo funciona

Archivo

Responsabilidad

lib/mcp-protocol.js

Capa MCP JSON-RPC pura (initialize / ping / tools/list / tools/call), cero dependencias de DSH

lib/tools.js

Validación de entrada de las 10 herramientas + resolución de sesión; envuelve dynamicCordisRunner / cordisInspect

lib/token.js

Resolución/generación pura de token (ajustes > env > generación automática)

lib/http.js

Capa HTTP de la ruta MCP: autenticación obligatoria, lectura del body, protección loopback/entre sitios

lib/index.js

Plugin de Cordis: inyecta 5 servicios host, el namespace de ajustes y las dos rutas /mcp + /dsh-cordis-mcp/settings

lib/client.js

UI de la página de ajustes: ver/copiar/personalizar/regenerar token + dirección del endpoint

Desinstalación

# 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

Requisitos previos

  • DeepSeek Harness tiene el perfil web inicializado (existe ~/.dsh/profiles/web) y la sesión actual se ejecuta en un preset con el conjunto de herramientas de Cordis (el servicio dynamicCordisRunner del lado host existe; está presente por defecto);

  • Claude Code CLI instalado en la máquina e iniciado sesión;

  • Node.js ≥ 20 y pnpm disponibles.

Solución de problemas

Síntoma

Causa y solución

claude mcp list muestra disconnected

DSH no se ha reiniciado / puerto incorrecto. Tras reiniciar, busca la línea [dsh-cordis-mcp] MCP endpoint ready en el log de arranque de DSH y usa la dirección impresa

dsh_plugin_run devuelve awaiting-approval

Los paquetes con parte Client requieren que permitas la ejecución en la tarjeta Run de la GUI web de DSH; tras la autorización, vuelve a ejecutar dsh_plugin_run

Error multiple live DSH sessions

Hay varias sesiones activas; primero consulta el id con dsh_sessions y luego pasa sessionId en la llamada

Error no live DSH session

La GUI web de DSH no tiene ninguna sesión abierta; ábrela e inténtalo de nuevo

401 / missing or invalid bearer token

El token en .mcp.json ha caducado o es incorrecto: copia el token actual desde la página de ajustes y actualízalo

503 / auth-not-configured

El host no tiene el token inicializado (estado anómalo): guarda cualquier token en la página de ajustes o reinicia DSH

Los plugins desaparecen tras reiniciar

Los plugins dinámicos viven en memoria del proceso; es lo esperado. Este puente solo gestiona el proceso DSH en ejecución

Licencia

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