dsh-mcp-manager
dsh-mcp-manager

Надежный менеджер MCP-серверов для DeepSeek Harness (DSH) — плагин-загрузчик композиции (не динамический сессионный плагин), поэтому он переживает перезапуски и обновления DSH.
Разработан в соответствии со стандартом разработки плагинов DSH (см. официальную документацию: 第一个插件, 开发一个工具):
плагин Cordis в объектной форме (
export default { name, inject, apply })обязательные сервисы объявляются в
inject— фреймворк гарантирует, что они готовы до выполненияapply, и перезагружает плагин, если один из них исчезает (именно это обеспечивает работу плагина после обновлений DSH)возможности, предоставляемые агенту, реализованы как зарегистрированные инструменты модели с помощью
ctx.tools.register(defineTool(...)):mcp_manager_list,mcp_manager_set_enabled,mcp_manager_restart,mcp_manager_addвозможности пользовательского интерфейса реализованы через точный маршрут
webServer(POST /dsh-mcp-manager/api), используемый клиентской частью
Возможности:
Страница Настройки → MCP управление (добавляется клиентской частью)
Хост-часть управляет строками
@deepseek-ai/dsh-mcp-clientв реальных файлах патчей:Уровень проекта →
~/.dsh/profiles/<profile>/cordis.patch.ymlГлобальный →
~/.dsh/cordis.patch.ymlдобавление / редактирование / включение / отключение / перезапуск / удаление, живая проверка количества инструментов, экспорт/импорт JSON, блокировка записи для каждого файла
Как это работает
Компонент | Файл | Роль |
Исходный код плагина-хоста |
| Исходный код TypeScript (документированная форма плагина); сборка с помощью |
Скомпилированный плагин-хост |
| Плагин Cordis в объектной форме: CRUD для файлов патчей + 4 инструмента модели + точный маршрут |
Клиентский бандл |
| Модуль браузера: регистрирует страницу настроек; вызывает хост через |
Строка загрузчика | добавляется в | включает точку входа хоста; сервис клиентских модулей сканирует включенные записи и обслуживает клиентский бандл |
Запись загрузчика является единой точкой композиции для обеих частей — никаких изменений в распространяемых пакетах DSH. Сам пакет является платформонезависимым (чистый JS; разделители путей определяются во время выполнения), поэтому работает на Windows, macOS и Linux. Сборка (npm run build) требует devDependencies (typescript, @deepseek-ai/cordis, @deepseek-ai/dsh-tools, @types/node); установленному пакету они не нужны.
Related MCP server: mcp-serverman
Установка (любая платформа)
Самый быстрый способ — одной командой, через npm (требуется Node.js >= 18):
# Option A — one-shot with npx, nothing to install
npx -y @xxxyz/dsh-mcp-manager
# Option B — global npm install, then run the command any time
npm i -g @xxxyz/dsh-mcp-manager
dsh-mcp-manager # install the plugin
dsh-mcp-manager-uninstall # uninstall the plugin
npm i -g @xxxyz/dsh-mcp-manager@latest # upgradeВсе флаги передаются в обоих вариантах: npx -y @xxxyz/dsh-mcp-manager --dsh-home /path/.dsh --profile web --repair --port 3080.
Имя пакета npm:
@xxxyz/dsh-mcp-manager(имяdsh-mcp-managerбез префикса занято в npm другим пакетом). Имя развернутого плагина по-прежнемуdsh-mcp-manager— npm/npx является только каналом доставки; установщик копирует файлы в те же фиксированные расположения, указанные ниже.
Альтернатива без npm — напрямую с GitHub:
npx -y github:xxxyz/DeepSeekHarness-MCP-ManagerАльтернатива — запустить скрипты установщика из исходного репозитория (все установщики используют один общий кроссплатформенный файл логики, install.mjs). Шаги установки:
скопировать пакет в
<dshHome>/local-packages/dsh-mcp-manager(оригинальный источник, хранящийся внеnode_modules, чтобы обновления DSH никогда его не затрагивали)скопировать его в
<dshHome>/profiles/node_modules/dsh-mcp-manager(обычная копия намеренно — символическая ссылка заставила бы Node ESM разрешать реальный путь плагина, где@deepseek-ai/dsh-toolsне может быть найден)добавить строку загрузчика в
profiles/<profile>/cordis.patch.yml(идемпотентно; сохраняет патч как корректный массив верхнего уровня)
Windows (PowerShell):
.\dsh-mcp-manager\install.ps1 # default: ~/.dsh, web profile
# or: .\install.ps1 -DshHome D:\path\.dsh -Profile webmacOS / Linux:
./dsh-mcp-manager/install.sh # default: ~/.dsh, web profile
# or: ./install.sh --dsh-home /path/.dsh --profile webЛюбая платформа (напрямую):
node dsh-mcp-manager/install.mjs [--dsh-home <path>] [--profile <name>] [--port <n>] [--repair] [--skip-patch]Затем перезапустите DSH и откройте Настройки → MCP управление. Четыре инструмента mcp_manager_* станут доступны модели после этого перезапуска.
Удаление (любой метод):
dsh-mcp-manager-uninstall # if installed via npm -g
# or: .\dsh-mcp-manager\uninstall.ps1 | ./uninstall.sh | node uninstall.mjs [--dsh-home <path>] [--profile <name>]затем перезапустите DSH. Удаление удаляет развернутую копию, оригинальный источник в local-packages и строку загрузчика.
После обновления DSH: --repair
Обновление DSH (или нарушенное состояние HMR) может привести к тому, что хост-часть плагина будет выгружена, хотя файлы остаются на месте. Одна команда исправляет это — заново копирует пакет из источника записи, увеличивает config.version в строке загрузчика, чтобы принудительно переприменить HMR, затем опрашивает API, пока не получит ответ:
node dsh-mcp-manager/install.mjs --repair # default ~/.dsh, web, port 3080
node dsh-mcp-manager/install.mjs --repair --port 3080
# PowerShell: .\install.ps1 -Repair -Port 3080 bash: ./install.sh --repair --port 3080--repair возвращает успех только тогда, когда POST /dsh-mcp-manager/api снова отвечает {ok:true}. Если API все еще не отвечает через 30 секунд, перезапустите DSH один раз (загрузчик всегда переимпортирует свежие данные при загрузке).
Справочник API
Все операции — POST /dsh-mcp-manager/api с {"op": "<op>", "args": {...}}, с того же источника.
op | args | результат | |
|
|
| |
| `{serverName, transport, url | command, args?, headers?, env?, level, enabled?}` |
|
|
|
| |
|
|
| |
|
|
| |
|
|
| |
|
|
| |
|
|
|
Инструменты модели
Зарегистрированы на хосте с помощью ctx.tools.register(defineTool(...)) (стандартные @deepseek-ai/dsh-tools):
инструмент | описание | ||
| вывести список всех настроенных MCP-серверов (уровень, состояние включения, статус загрузчика, количество инструментов) | ||
| включить / отключить один сервер (id, level, enabled) | ||
| перезапустить один сервер (id, level) | ||
| добавить сервер (serverName, transport, url | command, …, level) |
Примечания / ограничения
HTTP-маршрут не аутентифицирован на локальном веб-сервере — это нормально для локального однопользовательского компьютера; не открывайте веб-порт DSH публично.
Управляемые строки имеют маркеры
# dsh-mcp-manager:server:<id>; строка загрузчика — это блокinsert, добавляющийid: mcp-manager, name: dsh-mcp-manager— диалект патчей DSH рассматривает простую строку- id:как переопределение существующей записи (молча пропускается, если отсутствует), поэтому добавление плагина требует формыinsert.Если запущенная веб-страница предшествует установке, для клиентского модуля требуется обновление страницы или перезапуск DSH (граф загрузки строится при загрузке страницы).
This server cannot be deployed
Maintenance
Related MCP Connectors
MCP registry & directory: search, find & install 31k+ MCP servers & tools. Catalog and marketplace.
MCP server for AI dialogue using various LLM models via AceDataCloud
A MCP server built for developers enabling Git based project management with project and personal…
Cloud-hosted MCP server for durable AI memory
Related MCP Servers
- FlicenseAqualityCmaintenanceA robust MCP server with tools to search, install, configure, repair, and uninstall MCP servers, automating setup and maintenance across multiple AI and developer tools.417-
- AlicenseNot gradedqualityCmaintenanceEnables LLMs to manage MCP server configurations, including listing, enabling, disabling, and version control.10MIT
- 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.67 npm20MIT
- AlicenseNot gradedqualityBmaintenanceMCP management panel for DeepSeek Harness, enabling connection status monitoring, one-click upgrades, and server addition via a settings UI.1MIT