Skip to main content
Glama

dsh-cordis-mcp

Предоставляет динамический набор инструментов Cordis из DeepSeek Harness для Claude Code через MCP (Streamable HTTP): Claude Code может в реальном времени загружать, определять, запускать, обновлять, останавливать, удалять динамические плагины DSH — ровно тот же набор возможностей и тот же агент времени выполнения, что и в сеансе DSH через cordis_define / cordis_run / cordis_stop / cordis_undefine / cordis_inspect_*.

┌─────────────┐   MCP (Streamable HTTP, loopback)   ┌───────────────────────────┐
│ Claude Code │ ────── http://127.0.0.1:8090/mcp ──▶ │ DSH host (本插件)           │
│  (claude)   │ ────── JSON-RPC 2.0 ───────────────▶ │  dynamicCordisRunner      │
└─────────────┘                                       │  cordisInspect            │
                                                      │  agents (会话解析)         │
                                                      └───────────────────────────┘

Плагин подключается к существующему веб-порту, не открывая новый порт и не публикуя сервис; конечная точка MCP требует Bearer-аутентификацию, токен настраивается на странице Настройки DSH → dsh-cordis-mcp (генерируется автоматически при первом запуске, можно задать свой/перегенерировать).

Возможности (10 инструментов)

Инструмент MCP

Соответствующий инструмент DSH

Назначение

dsh_status

—

Состояние моста: разбор сеансов, список активных сеансов, число плагинов

dsh_sessions

—

Список активных сеансов DSH, которыми можно управлять (плагины привязаны к сеансам)

dsh_plugins_list

cordis_inspect_self (без аргументов)

Список всех динамических плагинов целевого сеанса и их статус

dsh_plugin_inspect

cordis_inspect_self (с аргументами)

Сведения о плагине/пакете; с packageId возвращает исходный код

dsh_inspect_providers

cordis_inspect_list

Каталог inspect-провайдеров (host + client)

dsh_inspect_query

cordis_inspect_query

Выполнить один read-only inspect-запрос (каталог служб/событий/встроенных/слотов/тем/инструментов)

dsh_plugin_define

cordis_define

Определить неизменяемый Package (новый плагин или дополнительная версия)

dsh_plugin_run

cordis_run

Активировать Package (run / update), может вернуть awaiting-approval

dsh_plugin_stop

cordis_stop

Остановить выполнение, отменить ожидающее одобрение, сохранив определение и версии

dsh_plugin_undefine

cordis_undefine

Навсегда удалить плагин (включая все Package, авторизации, указатели версий)

Пакеты с client-частью при первом запуске по-прежнему проходят процедуру одобрения DSH: dsh_plugin_run возвращает awaiting-approval, после нажатия «Разрешить» на карточке Run в веб-GUI DSH выполнение завершается асинхронно — так же, как в сеансе DSH.

Related MCP server: engine

Установка в один шаг

curl -fsSL https://raw.githubusercontent.com/GeekRicardo/dsh-cordis-mcp/main/install.sh | bash

Что делает скрипт (можно предварительно посмотреть через --dry-run):

  1. Записывает зависимость "dsh-cordis-mcp": "github:GeekRicardo/dsh-cordis-mcp" в ~/.dsh/profiles/web/package.json;

  2. Добавляет dsh-cordis-mcp в dsh.profile.bundles;

  3. cd ~/.dsh/profiles/web && pnpm install;

  4. Проверяет, что bundles зарегистрированы, и предлагает перезапустить.

После перезапуска DSH и жёсткого обновления страницы конечная точка MCP готова вместе с веб-сервисом:

pm2 restart dsh-web   # 若用 pm2 托管;否则用你的启动方式重启

Подключение к Claude Code

# 端口换成你 DSH web 的实际端口(启动日志会打印完整地址)
claude mcp add dsh --transport http http://127.0.0.1:8090/mcp
claude mcp list          # 确认 connected

Аутентификация (обязательна, прямое подключение невозможно)

Конечная точка MCP требует Bearer-аутентификацию; без токена всегда возвращается 401 (если токен не настроен — 503). Токен настраивается на странице Настройки DSH → dsh-cordis-mcp: при первом использовании генерируется автоматически и сохраняется; на странице его можно просмотреть/скопировать/задать свой/перегенерировать. Впишите токен в заголовок запроса в .mcp.json:

{
  "mcpServers": {
    "dsh": {
      "type": "http",
      "url": "http://127.0.0.1:8090/mcp",
      "headers": { "Authorization": "Bearer <设置页里的 token>" }
    }
  }
}

Приоритет разрешения токена: конфигурация на странице настроек > переменная окружения DSH_MCP_TOKEN > автоматическая генерация. Изменение токена вступает в силу немедленно (без перезапуска); после перегенерации старый токен сразу перестаёт действовать — нужно синхронно обновить конфигурацию Claude Code.

Принцип работы

Файл

Назначение

lib/mcp-protocol.js

Чистый слой MCP JSON-RPC (initialize / ping / tools/list / tools/call), ноль зависимостей от DSH

lib/tools.js

Проверка входных данных 10 инструментов + разрешение сеансов, обёртка над dynamicCordisRunner / cordisInspect

lib/token.js

Чистый разбор/генерация токена (настройки > env > автогенерация)

lib/http.js

HTTP-слой маршрута MCP: обязательная аутентификация, чтение body, защита loopback/межсайтовых запросов

lib/index.js

Плагин Cordis: внедряет 5 хост-сервисов, пространство имён настроек, два маршрута /mcp + /dsh-cordis-mcp/settings

lib/client.js

UI страницы настроек: просмотр/копирование/свой токен/перегенерация + адрес конечной точки

Удаление

# 1. 从 ~/.dsh/profiles/web/package.json 的 dsh.profile.bundles 移除 "dsh-cordis-mcp"
# 2. 移除 dependencies 里的 "dsh-cordis-mcp"
# 3. cd ~/.dsh/profiles/web && pnpm install
# 4. 重启 DSH;claude mcp remove dsh

Предварительные требования

  • Веб-профиль DeepSeek Harness инициализирован (~/.dsh/profiles/web существует), и текущий сеанс работает на пресете с набором инструментов Cordis (на стороне хоста присутствует служба dynamicCordisRunner, по умолчанию есть);

  • На машине установлен CLI Claude Code и выполнен вход;

  • Node.js ≥ 20, доступен pnpm.

Troubleshooting

Симптом

Причина и решение

claude mcp list показывает disconnected

DSH не перезапущен / неверный порт. После перезапуска найдите в журнале запуска DSH строку [dsh-cordis-mcp] MCP endpoint ready и используйте выведенный адрес

dsh_plugin_run возвращает awaiting-approval

Пакету с client-частью нужно ваше разрешение на карточке Run в веб-GUI DSH; после авторизации повторите dsh_plugin_run

Ошибка multiple live DSH sessions

Активных сеансов несколько: сначала dsh_sessions для получения id, затем передайте sessionId в вызове

Ошибка no live DSH session

В веб-GUI DSH не открыт ни один сеанс; откройте и повторите

401 / missing or invalid bearer token

Токен в .mcp.json устарел или неверен — скопируйте текущий токен со страницы настроек и обновите

503 / auth-not-configured

Хост не инициализировал токен (аномальное состояние) — сохраните любой токен на странице настроек или перезапустите DSH

Плагины исчезают после перезапуска

Динамические плагины существуют в памяти процесса — это ожидаемо; мост управляет только работающим процессом DSH

Лицензия

MIT

Related MCP Connectors

Related MCP Servers

  • A
    license
    B
    quality
    D
    maintenance
    Exposes self-owned AI agent plugins as tools to Claude Code via a stdio MCP server, allowing Claude to call system info, calculator, or scribe transcriber directly.
    3
    MIT