dsh-mcp-admin
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-filesystemharness'а следит за этим каталогом, изменения вступают в силу на следующем шаге агента.Запись пресета: записывает
$DSH_HOME/.agent-presets/<id>/agent.cordis.yml. Чтобы переопределить пресет, доверенный системой, необходимо сначала передатьbase, чтобы скопировать его в корень пользователя (предотвращая случайное затенение встроенного пресета с нуля). Механизм временных меток standing mount автоматически применяет изменения к новым сессиям без перезапуска; текущие сессии не затрагиваются.Аудит: каждая запись/удаление добавляет строку JSONL (время, инструмент, цель, действие, количество байт, сводка первых 200 символов содержимого), обрезается по
auditLimit.
Related MCP server: dsh-trio
Установка
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Конфигурация
Поле | Тип | По умолчанию | Описание |
| string | (обязательно) | Bearer-токен для конечной точки |
| number | 200 | Количество записей журнала аудита для хранения |
| string | пусто | Начальное значение публичного/локального адреса доступа этого развёртывания (например, |
Конфигурация 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.md + список файлов ресурсов bundle |
| Создаёт/перезаписывает навык (проверяет имя в kebab-case и |
| Удаляет навык из корня пользователя |
| Перечисляет все пресеты (включая метки trust и broken) |
| Читает полный текст |
| Создаёт/перезаписывает комбинацию пресетов; |
| Удаляет пресет, доверенный пользователем (системные удалить нельзя) |
Замечания по безопасности
Веб-сервер harness'а сам по себе не имеет TLS и аутентификации;
/mcpнаходится за пределами доверенного периметра/api,token— единственная линия защиты. Утечка токена означает, что злоумышленник может перезаписать ваши навыки и пресеты (косвенное удалённое выполнение кода).Рекомендуется раскрывать только после завершения TLS на обратном прокси, или использовать механизм
trusted-hostharness'а для ограничения источников.Все операции записи ограничены корнем пользователя (
~/.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'а; при переносе на другую машину эти пути нужно изменить.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
This server cannot be deployed
Maintenance
Related MCP Connectors
Hosted MCP server and Agent Skills for specs, engineering threads, and project memory.
Governed AI agent skills — one library, distributed to devs and exposed to remote agents over MCP.
Host any HTTP API as a standard MCP server; auto-distribute to 12+ mainstream agent platforms.
Nifty's MCP server — exposes tasks, projects, messages, and files as tools for AI agents.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceExposes DeepSeek Harness agent capabilities as an MCP server, letting any MCP client drive Harness to execute real coding tasks with structured results, context isolation, and parallel execution.80 npm15MIT
- AlicenseNot gradedqualityCmaintenanceTurns DeepSeek Harness into an MCP server with tools for session management, agent execution, resources, and OAuth, plus browser automation and GitHub/GitLab integration.30 npm20MIT
- AlicenseNot gradedqualityBmaintenanceEnables external MCP clients to drive DeepSeek Harness agents for real coding tasks, providing tools for task execution and queueing, session management, sandboxed file access, preset switching, and usage statistics.397 npm7GPL 3.0
- AlicenseNot gradedqualityBmaintenanceEnables centralized, versioned management and distribution of AI agent skills through a horizontally scalable MCP server, allowing agents to dynamically discover, search, and retrieve skills over HTTP/SSE.MIT