Skip to main content
Glama

dsh-mcp-admin

Expone la gestión de skills y presets de agente de DeepSeek Harness como un plugin de doble cara de servidor MCP: los agentes remotos modifican directamente la configuración de skills/presets del servidor mediante el protocolo MCP, sin necesidad de SSH; la mitad host registra registros de auditoría, y la mitad del navegador ofrece un panel «gestión de MCP» en la página Settings que muestra los cambios recientes.

Uso típico: ejecuta dsh web en un servidor remoto, y el Agent local se conecta a http://<服务器>:3080/mcp, formando un ciclo cerrado de «producción → revisión → modificación → reproducción».

Arquitectura

本地 Agent (MCP client)
   │  POST /mcp  (Authorization: Bearer <token>)
   ▼
dsh web (host 半区)
   ├── Streamable HTTP MCP server(stateless,每请求一个实例)
   │     ├── skill_list / skill_read / skill_upsert / skill_delete
   │     └── preset_list / preset_read / preset_upsert / preset_delete
   ├── 审计 JSONL:$DSH_HOME/mcp-admin/audit.jsonl
   └── RPC 通道 /mcp-admin(audit.list,trusted-host 围栏)
        ▲
浏览器 Settings「MCP 管理」看板(client 半区,5s 轮询)
  • Escritura de skill: escribe directamente en $DSH_HOME/skills/<name>/SKILL.md (bundle de directorio; si ya existe un <name>.md plano, se sobrescribe en el lugar conservando la forma). El provider skill-filesystem de harness observa ese directorio; el cambio se aplica en el siguiente paso del agente.

  • Escritura de preset: escribe en $DSH_HOME/.agent-presets/<id>/agent.cordis.yml. Para sobrescribir un preset de confianza del sistema, primero hay que pasar base para copiarlo a la raíz de usuario (evitando así ocultar sin querer el preset integrado desde cero). El mecanismo de marcas de tiempo de archivo de standing mount hace que los cambios se apliquen automáticamente a las nuevas sesiones, sin necesidad de reiniciar; las sesiones en curso no se ven afectadas.

  • Auditoría: cada escritura/eliminación añade una línea JSONL (hora, herramienta, objetivo, acción, número de bytes, resumen de los primeros 200 caracteres del contenido), truncada según auditLimit.

Related MCP server: Omni Skills

Instalación

dsh plugin --profile web add /path/to/dsh-mcp-admin

Luego configura el token en ~/.dsh/profiles/web/cordis.patch.yml del perfil (obligatorio; de lo contrario el plugin se niega a arrancar):

- id: mcp-admin
  config:
    token: <openssl rand -hex 32 的输出>
    auditLimit: 200

Configuración

Campo

Tipo

Predeterminado

Descripción

token

string

(obligatorio)

token bearer del endpoint /mcp; es la única línea de defensa, debe ser largo y aleatorio

auditLimit

number

200

número de entradas que se conservan en el registro de auditoría

publicUrl

string

vacío

Valor inicial de la dirección de acceso público/LAN de este despliegue (p. ej. http://1.2.3.4:3080). Normalmente no hace falta configurarlo aquí: edítalo directamente en la página «gestión de MCP» de Settings (se persiste en settings.yaml y se aplica en caliente). En máquinas NAT (腾讯云, etc.) que no conocen su propia IP pública, es obligatorio si se abre la Web UI a través de un túnel.

Configuración del cliente MCP

La forma más sencilla: abre la página «gestión de MCP» de Settings, primero rellena «dirección de acceso público» con la dirección pública/LAN de este despliegue (p. ej. http://1.2.3.4:3080; obligatorio en máquinas NAT; si se deja vacío, se usará la dirección desde la que abriste esta página), guarda y pulsa «copiar instrucciones de configuración de MCP»: se copiará un conjunto completo de instrucciones (con URL y token) que puedes pegar directamente al Agent que quieras configurar; él mismo se configurará siguiendo las instrucciones. Ten en cuenta que en páginas http:// el navegador bloquea el copiado automático; el botón se degrada a mostrar un cuadro de texto para copiar manualmente.

Formato de configuración manual (tipo Streamable HTTP):

{
  "mcpServers": {
    "dsh-admin": {
      "type": "http",
      "url": "http://<服务器>:3080/mcp",
      "headers": { "Authorization": "Bearer <token>" }
    }
  }
}

Lista de herramientas

Herramienta

Descripción

skill_list

Lista los skills bajo la raíz de usuario (nombre, descripción, forma, ruta).

skill_read

Lee el SKILL.md completo + el inventario de archivos de recursos del bundle.

skill_upsert

Crea/sobrescribe un skill (valida el nombre kebab-case y el name/description del frontmatter).

skill_delete

Elimina un skill bajo la raíz de usuario.

preset_list

Lista todos los presets (incluye marcas de trust y broken).

preset_read

Lee el agent.cordis.yml completo del preset.

preset_upsert

Crea/sobrescribe una combinación de preset; base copia desde un preset existente; opcionalmente displayName/displayDescription escriben preset.yml; tras escribir valida con standing-mount y, si la carga falla, lo devuelve como warning.

preset_delete

Elimina un preset de confianza de usuario (los de system no se pueden eliminar).

Notas de seguridad

  • El servidor web de harness no tiene TLS ni autenticación; /mcp queda fuera de la valla de confianza de /api; token es la única línea de defensa. Si el token se filtra, la otra parte puede reescribir tus skills y presets (ejecución remota de código indirecta).

  • Se recomienda exponerlo solo tras terminar TLS en un proxy inverso, o combinarlo con el mecanismo trusted-host de harness para restringir el origen.

  • Todas las operaciones de escritura se limitan a la raíz de usuario (~/.dsh/skills, ~/.dsh/.agent-presets); no tocan los presets integrados ni los directorios del proyecto.

  • El canal RPC del panel (/mcp-admin) pasa por la valla trusted-host de la conexión; los registros de auditoría no contienen secretos.

  • El botón «copiar instrucciones de configuración de MCP» devuelve el token a la página a través del endpoint setup-info: cualquiera que pueda abrir la Web UI puede obtener el token. Esto es coherente con el modelo de seguridad actual de harness (quien puede abrir la Web UI ya puede ejecutar agentes en el servidor mediante session.prompt), pero implica que la superficie de exposición de la Web UI equivale a la superficie de exposición del token.

Desarrollo

pnpm install
pnpm run build        # host: tsc → lib/;client: tsdown → lib/client.js
pnpm run typecheck

La resolución de tipos de la mitad cliente depende del árbol de fuentes local de harness (dsh-client-* no está publicado completo en npm); los paths en tsconfig*.json apuntan de forma fija al checkout de harness; al migrar de máquina hay que cambiar esas rutas.

F
license - not found
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
    A
    quality
    C
    maintenance
    Converts AI Skills (following Claude Skills format) into MCP server resources, enabling LLM applications to discover, access, and utilize self-contained skill directories through the Model Context Protocol. Provides tools to list available skills, retrieve skill details and content, and read supporting files with security protections.
    3
    27
    Apache 2.0
  • A
    license
    Not graded
    quality
    B
    maintenance
    A git-backed MCP server that centrally manages AI agent skills, tools, and knowledge with role-based access, change requests, and a remote OAuth 2.1 endpoint.
    75
    Apache 2.0

View all related MCP servers

Related MCP Connectors

  • MCP server for AI agents to plan, verify, and deploy Cloudflare-native apps.

  • MCP server for secureFlows: token-free URL builders and integration-linting tools for AI agents.

  • MCP server exposing the Backtest360 engine API as tools for AI agents.

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/EnZzzzzz/dsh-mcp-admin'

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