Skip to main content
Glama

dsh-mcp-admin

Stellt die Skill- und Agent-Preset-Verwaltung von DeepSeek Harness als MCP-Server-Zwei-Seiten-Plugin bereit: Remote-Agents ändern über das MCP-Protokoll direkt die Skill-/Preset-Konfiguration auf dem Server, ohne SSH; die Host-Hälfte protokolliert Audit-Logs, die Browser-Hälfte bietet auf der Settings-Seite ein „MCP-Verwaltung“-Dashboard zur Anzeige der letzten Änderungen.

Typischer Anwendungsfall: dsh web auf einem Remote-Server ausführen, der lokale Agent verbindet sich mit http://<服务器>:3080/mcp, wodurch ein Kreislauf aus „Produktion → Review → Änderung → erneute Produktion“ entsteht.

Architektur

本地 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 轮询)
  • Skill-Schreiben: Schreibt direkt $DSH_HOME/skills/<name>/SKILL.md (Verzeichnis-Bundle; vorhandene flache <name>.md werden an Ort und Stelle überschrieben und behalten ihre Form). Der skill-filesystem-Provider des Harness überwacht dieses Verzeichnis; nach dem Schreiben wird es im nächsten Agent-Schritt wirksam.

  • Preset-Schreiben: Schreibt $DSH_HOME/.agent-presets/<id>/agent.cordis.yml. Um ein Preset mit System-Trust zu überschreiben, muss zuerst base übergeben werden, um es in die User-Root zu kopieren (verhindert, dass integrierte Presets versehentlich von Grund auf überschattet werden). Der Dateizeitstempel-Mechanismus des Standing Mounts lässt Änderungen automatisch für neue Sessions wirksam werden, ohne Neustart; laufende Sessions sind nicht betroffen.

  • Audit: Jedes Schreiben/Löschen hängt eine JSONL-Zeile an (Zeit, Tool, Ziel, Aktion, Byteanzahl, Zusammenfassung der ersten 200 Zeichen des Inhalts), gekürzt nach auditLimit.

Related MCP server: Omni Skills

Installation

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

Dann den Token in ~/.dsh/profiles/web/cordis.patch.yml des Profils konfigurieren (erforderlich, sonst verweigert das Plugin den Start):

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

Konfiguration

Feld

Typ

Standard

Beschreibung

token

string

(erforderlich)

Bearer-Token des /mcp-Endpunkts, die einzige Verteidigungslinie, unbedingt lang und zufällig

auditLimit

number

200

Anzahl der im Audit-Log aufbewahrten Einträge

publicUrl

string

leer

Anfangswert der öffentlichen/LAN-Zugriffsadresse dieser Bereitstellung (z. B. http://1.2.3.4:3080). Normalerweise nicht hier konfigurieren – direkt auf der Settings-Seite „MCP-Verwaltung“ bearbeiten (in settings.yaml persistiert, hot wirksam). NAT-Maschinen (Tencent Cloud usw.) kennen ihre öffentliche IP selbst nicht; bei Tunnel-Zugriff auf die Web-UI ist dies erforderlich

MCP-Client-Konfiguration

Einfachster Weg: Die Seite „MCP-Verwaltung“ in den Settings öffnen, zuerst unter „Öffentliche Zugriffsadresse“ die öffentliche/LAN-Adresse dieser Bereitstellung eintragen (z. B. http://1.2.3.4:3080, bei NAT-Maschinen erforderlich; leer lassen folgt der Adresse, mit der diese Seite geöffnet wurde), speichern und dann „MCP-Konfigurationsanleitung kopieren“ klicken – eine vollständige Konfigurationsanleitung (mit URL und Token) wird kopiert, direkt dem zu konfigurierenden Agent einfügen, der sich dann nach der Anleitung selbst konfiguriert. Beachten: Auf http://-Seiten verbietet der Browser das automatische Kopieren; der Button degradiert dann zu einem Textfeld zur manuellen Kopie.

Format der manuellen Konfiguration (Streamable-HTTP-Typ):

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

Tool-Übersicht

Tool

Beschreibung

skill_list

Listet Skills unter der User-Root auf (Name, Beschreibung, Form, Pfad)

skill_read

Liest den vollständigen SKILL.md-Text + Bundle-Ressourcendateiliste

skill_upsert

Erstellt/überschreibt Skill (validiert Kebab-Case-Namen und name/description im Frontmatter)

skill_delete

Löscht Skill unter der User-Root

preset_list

Listet alle Presets auf (mit Trust- und Broken-Markierungen)

preset_read

Liest den vollständigen agent.cordis.yml-Text des Presets

preset_upsert

Erstellt/überschreibt Preset-Kombination; base kopiert von vorhandenem Preset; optional displayName/displayDescription in preset.yml schreiben; nach dem Schreiben mit Standing Mount validieren, bei Ladefehler als Warning zurückgeben

preset_delete

Löscht Preset mit User-Trust (System nicht löschbar)

Sicherheitshinweise

  • Der Harness-Webserver selbst hat kein TLS, keine Authentifizierung; /mcp liegt außerhalb des /api-Vertrauenszauns, token ist die einzige Verteidigungslinie. Token-Leck = der andere kann deine Skills und Presets neu schreiben (indirekte Remote-Codeausführung).

  • Es wird empfohlen, nur hinter einem Reverse-Proxy mit TLS-Terminierung zu exponieren oder die trusted-host-Mechanik des Harness zur Quellenbeschränkung zu nutzen.

  • Alle Schreiboperationen sind auf die User-Root beschränkt (~/.dsh/skills, ~/.dsh/.agent-presets), integrierte Presets und Projektverzeichnisse werden nicht berührt.

  • Der Dashboard-RPC-Kanal (/mcp-admin) läuft über den trusted-host-Zaun der Connection; Audit-Einträge enthalten keine Secrets.

  • Der Button „MCP-Konfigurationsanleitung kopieren“ gibt den Token über den setup-info-Endpoint an die Seite zurück: Jeder, der die Web-UI öffnen kann, erhält den Token. Das entspricht dem bestehenden Sicherheitsmodell des Harness (wer die Web-UI öffnen kann, kann bereits über session.prompt Agents auf dem Server ausführen), bedeutet aber, dass die Angriffsfläche der Web-UI = die Angriffsfläche des Tokens ist.

Entwicklung

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

Die Typauflösung der Client-Hälfte hängt vom lokalen Harness-Quellbaum ab (dsh-client-* ist nicht vollständig auf npm veröffentlicht); die paths in tsconfig*.json zeigen hartkodiert auf den Harness-Checkout; beim Umzug auf andere Maschinen müssen diese Pfade geändert werden.

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