Skip to main content
Glama

dsh-mcp-admin

Представляет управление навыками и пресетами агентов DeepSeek Harness как двусторонний плагин MCP server: удалённые агенты напрямую изменяют конфигурацию навыков/пресетов на сервере через протокол MCP, без SSH; host-половина ведёт журнал аудита, браузерная половина на странице Settings предоставляет панель «Управление MCP» для отображения последних изменений.

Типичное использование: запустите dsh web на удалённом сервере, локальный агент подключается к http://<сервер>:3080/mcp, образуя цикл «производство → рецензирование → изменение → повторное производство».

Архитектура

本地 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 轮询)
  • Запись навыка: напрямую записывает $DSH_HOME/skills/<name>/SKILL.md (каталог bundle; если уже есть плоский <name>.md, перезаписывает на месте, сохраняя форму). Провайдер skill-filesystem harness'а следит за этим каталогом, изменения вступают в силу на следующем шаге агента.

  • Запись пресета: записывает $DSH_HOME/.agent-presets/<id>/agent.cordis.yml. Чтобы переопределить пресет, доверенный системой, необходимо сначала передать base, чтобы скопировать его в корень пользователя (предотвращая случайное затенение встроенного пресета с нуля). Механизм временных меток standing mount автоматически применяет изменения к новым сессиям без перезапуска; текущие сессии не затрагиваются.

  • Аудит: каждая запись/удаление добавляет строку JSONL (время, инструмент, цель, действие, количество байт, сводка первых 200 символов содержимого), обрезается по auditLimit.

Related MCP server: Omni Skills

Установка

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

Затем настройте токен в ~/.dsh/profiles/web/cordis.patch.yml профиля (обязательно, иначе плагин откажется запускаться):

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

Конфигурация

Поле

Тип

По умолчанию

Описание

token

string

(обязательно)

Bearer-токен для конечной точки /mcp, единственная линия защиты, обязательно длинный и случайный

auditLimit

number

200

Количество записей журнала аудита для хранения

publicUrl

string

пусто

Начальное значение публичного/локального адреса доступа этого развёртывания (например, http://1.2.3.4:3080). Обычно не нужно настраивать здесь — редактируйте прямо на странице «Управление MCP» в Settings (сохраняется в settings.yaml, применяется на лету). Для NAT-машин (Tencent Cloud и т.п.), которые не знают свой публичный IP, обязательно при открытии Web UI через туннель

Конфигурация MCP-клиента

Самый простой способ: откройте страницу «Управление MCP» в Settings, сначала в поле «Публичный адрес доступа» укажите публичный/локальный адрес этого развёртывания (например, http://1.2.3.4:3080, обязательно для NAT-машин; если оставить пустым, будет использоваться адрес, с которого вы открыли эту страницу), сохраните, затем нажмите «Скопировать инструкцию по настройке MCP» — будет скопирована полная инструкция (включая URL и токен), которую можно вставить агенту для настройки. Обратите внимание: на страницах http:// браузер запрещает автоматическое копирование, кнопка деградирует до отображения текстового поля для ручного копирования.

Формат ручной настройки (тип Streamable HTTP):

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

Список инструментов

Инструмент

Описание

skill_list

Перечисляет навыки в корне пользователя (имя, описание, форма, путь)

skill_read

Читает полный текст SKILL.md + список файлов ресурсов bundle

skill_upsert

Создаёт/перезаписывает навык (проверяет имя в kebab-case и name/description во frontmatter)

skill_delete

Удаляет навык из корня пользователя

preset_list

Перечисляет все пресеты (включая метки trust и broken)

preset_read

Читает полный текст agent.cordis.yml пресета

preset_upsert

Создаёт/перезаписывает комбинацию пресетов; base копирует из существующего пресета; опционально displayName/displayDescription записываются в preset.yml; после записи проверяется через standing-mount, при ошибке загрузки возвращается предупреждение

preset_delete

Удаляет пресет, доверенный пользователем (системные удалить нельзя)

Замечания по безопасности

  • Веб-сервер harness'а сам по себе не имеет TLS и аутентификации; /mcp находится за пределами доверенного периметра /api, token — единственная линия защиты. Утечка токена означает, что злоумышленник может перезаписать ваши навыки и пресеты (косвенное удалённое выполнение кода).

  • Рекомендуется раскрывать только после завершения TLS на обратном прокси, или использовать механизм trusted-host harness'а для ограничения источников.

  • Все операции записи ограничены корнем пользователя (~/.dsh/skills, ~/.dsh/.agent-presets), не затрагивают встроенные пресеты и каталоги проектов.

  • RPC-канал панели (/mcp-admin) проходит через периметр trusted-host соединения; записи аудита не содержат секретов.

  • Кнопка «Скопировать инструкцию по настройке MCP» передаёт токен на страницу через endpoint setup-info: любой, кто может открыть Web UI, может получить токен. Это согласуется с существующей моделью безопасности harness'а (открыв Web UI, уже можно запускать агента на сервере через session.prompt), но означает, что поверхность Web UI = поверхность токена.

Разработка

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

Разрешение типов в client-половине зависит от локального дерева исходников harness'а (dsh-client-* не полностью опубликован в npm), paths в tsconfig*.json жёстко указывают на checkout harness'а; при переносе на другую машину эти пути нужно изменить.

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