Skip to main content
Glama
xxxyz

dsh-mcp-manager

by xxxyz

dsh-mcp-manager

English · 中文

dsh-mcp-manager MCP Manager settings page

Надежный менеджер 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, блокировка записи для каждого файла

Как это работает

Компонент

Файл

Роль

Исходный код плагина-хоста

src/index.ts

Исходный код TypeScript (документированная форма плагина); сборка с помощью npm run build (tsc)

Скомпилированный плагин-хост

lib/index.js (main)

Плагин Cordis в объектной форме: CRUD для файлов патчей + 4 инструмента модели + точный маршрут webServer /dsh-mcp-manager/api (JSON {op, args} → {ok, ...})

Клиентский бандл

lib/client.js (exports["./client"] + dsh.client)

Модуль браузера: регистрирует страницу настроек; вызывает хост через fetch('/dsh-mcp-manager/api')

Строка загрузчика

добавляется в cordis.patch.yml профиля

включает точку входа хоста; сервис клиентских модулей сканирует включенные записи и обслуживает клиентский бандл

Запись загрузчика является единой точкой композиции для обеих частей — никаких изменений в распространяемых пакетах 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). Шаги установки:

  1. скопировать пакет в <dshHome>/local-packages/dsh-mcp-manager (оригинальный источник, хранящийся вне node_modules, чтобы обновления DSH никогда его не затрагивали)

  2. скопировать его в <dshHome>/profiles/node_modules/dsh-mcp-manager (обычная копия намеренно — символическая ссылка заставила бы Node ESM разрешать реальный путь плагина, где @deepseek-ai/dsh-tools не может быть найден)

  3. добавить строку загрузчика в profiles/<profile>/cordis.patch.yml (идемпотентно; сохраняет патч как корректный массив верхнего уровня)

Windows (PowerShell):

.\dsh-mcp-manager\install.ps1                     # default: ~/.dsh, web profile
# or: .\install.ps1 -DshHome D:\path\.dsh -Profile web

macOS / 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

результат

mcpm-list

{}

{ok, rows[], paths, errors[]}

mcpm-add

`{serverName, transport, url

command, args?, headers?, env?, level, enabled?}`

{ok, row}

mcpm-edit

{id, level, ...fields}

{ok}

mcpm-set-enabled

{id, level, enabled}

{ok}

mcpm-restart

{id, level}

{ok}

mcpm-remove

{id, level}

{ok}

mcpm-export

{}

{ok, json, savedTo}

mcpm-import

{json}

{ok, added[], skipped[]}

Инструменты модели

Зарегистрированы на хосте с помощью ctx.tools.register(defineTool(...)) (стандартные @deepseek-ai/dsh-tools):

инструмент

описание

mcp_manager_list

вывести список всех настроенных MCP-серверов (уровень, состояние включения, статус загрузчика, количество инструментов)

mcp_manager_set_enabled

включить / отключить один сервер (id, level, enabled)

mcp_manager_restart

перезапустить один сервер (id, level)

mcp_manager_add

добавить сервер (serverName, transport, url

command, …, level)

Примечания / ограничения

  • HTTP-маршрут не аутентифицирован на локальном веб-сервере — это нормально для локального однопользовательского компьютера; не открывайте веб-порт DSH публично.

  • Управляемые строки имеют маркеры # dsh-mcp-manager:server:<id>; строка загрузчика — это блок insert, добавляющий id: mcp-manager, name: dsh-mcp-manager — диалект патчей DSH рассматривает простую строку - id: как переопределение существующей записи (молча пропускается, если отсутствует), поэтому добавление плагина требует формы insert.

  • Если запущенная веб-страница предшествует установке, для клиентского модуля требуется обновление страницы или перезапуск DSH (граф загрузки строится при загрузке страницы).

Related MCP Connectors

Related MCP Servers

  • F
    license
    A
    quality
    C
    maintenance
    A robust MCP server with tools to search, install, configure, repair, and uninstall MCP servers, automating setup and maintenance across multiple AI and developer tools.
    4
    17
    -
  • A
    license
    Not graded
    quality
    B
    maintenance
    MCP management panel for DeepSeek Harness, enabling connection status monitoring, one-click upgrades, and server addition via a settings UI.
    1
    MIT