Nichts0v0/dsh-mcp-manager ↗★ 3

dsh-mcp-manager

MCP server manager for DeepSeek Harness: manage MCP servers from the Web settings page, stored globally in $DSH_HOME/mcp-servers.json, connected/disconnected at runtime. 适合需要动态启停、编辑和管理多个MCP服务器的开发者。

Package
dsh-mcp-manager
Compatibility
Unverified
Version
0.6.0
License
MIT
Last updated
Aug 21, 2026

Other repositories with this package name

Install

This plugin has no verified bundle, or compatibility checks failed. Read the repository notes first. Read the full README ↗

Usage

Open Settings → MCP Server Manager:

  • Server cards show the name, transport, status badge, endpoint and OAuth tags; disabled cards are dimmed.
  • Enable/disable switch — disabling disconnects immediately and unloads the server's tools.
  • Reconnect — waits for the connection result and refreshes automatically (configurable wait, default 15 s).
  • Edit — change transport / URL / command / headers / OAuth settings (serverName is immutable); saving hot-reconfigures the live connection.
  • OAuth authorization — for streamable-http servers requiring authentication, choose OAuth 2.0, click Authorize (OAuth) to log in via browser popup, and manage token revocation.
  • Delete — lives at the top of the edit page, behind a two-step confirm (3 s window).
  • Add — streamable-http (URL + optional headers or OAuth 2.0) or stdio (command + args), with a configurable connection-wait timeout.

Statuses

StatusMeaning
Connected (n tools)tools are registered
Connectinghandshake / reconnecting in progress
Offlinewas connected, but the server process is unreachable (probed)
Errorinitial connect failed (reason shown) or 30 s connect timeout
Disabledswitched off — not connected, no tools

Configuration file

$DSH_HOME/mcp-servers.json — shared by every profile and session:

{
  "version": 1,
  "servers": [
    {
      "serverName": "my-http-server",
      "transport": "streamable-http",
      "url": "http://127.0.0.1:8080/mcp",
      "enabled": true
    },
    {
      "serverName": "my-oauth-server",
      "transport": "streamable-http",
      "url": "https://api.example.com/mcp",
      "authType": "oauth",
      "enabled": true,
      "oauth": {
        "clientId": "client-id-123",
        "scopes": ["read", "write"],
        "tokens": {
          "accessToken": "secret_access_token",
          "refreshToken": "secret_refresh_token",
          "expiresAt": 1787304425000
        }
      }
    }
  ]
}

The file is watched live: manual edits (add / remove / change / enable) take effect within ~1 s; POST /mcp-manager/api/reload triggers it on demand.

HTTP API

MethodPathPurpose
GET/mcp-manager/api/healthliveness + version + store path
GET/mcp-manager/api/serverslist with live (probed) status
GET/mcp-manager/api/servers/single server
POST/mcp-manager/api/serversadd & connect
POST/mcp-manager/api/servers//updateupdate config & hot-reconnect (serverName immutable)
POST/mcp-manager/api/servers//toggleenable / disable (`{"enabled": true
POST/mcp-manager/api/servers//reconnectdisconnect & reconnect
DELETE/mcp-manager/api/servers/disconnect & delete
POST/mcp-manager/api/reloadre-read the config file from disk
POST/mcp-manager/api/oauth/discoverprobe RFC 9728 OAuth metadata for an MCP URL
POST/mcp-manager/api/oauth/startgenerate PKCE authorization URL for browser login
GET/mcp-manager/api/oauth/callbackOAuth redirect callback & token exchange
POST/mcp-manager/api/oauth/revokeclear saved OAuth credentials and disconnect

Configuration file

$DSH_HOME/mcp-servers.json — shared by every profile and session:

{
  "version": 1,
  "servers": [
    {
      "serverName": "my-http-server",
      "transport": "streamable-http",
      "url": "http://127.0.0.1:8080/mcp",
      "enabled": true
    },
    {
      "serverName": "my-oauth-server",
      "transport": "streamable-http",
      "url": "https://api.example.com/mcp",
      "authType": "oauth",
      "enabled": true,
      "oauth": {
        "clientId": "client-id-123",
        "scopes": ["read", "write"],
        "tokens": {
          "accessToken": "secret_access_token",
          "refreshToken": "secret_refresh_token",
          "expiresAt": 1787304425000
        }
      }
    }
  ]
}

The file is watched live: manual edits (add / remove / change / enable) take effect within ~1 s; POST /mcp-manager/api/reload triggers it on demand.