Introduction¶
When developing agents with DSH (DeepSeek Harness), managing multiple MCP (Model Context Protocol) services can become cumbersome. Manually maintaining configuration files, handling service mounting and unmounting, and viewing tool contracts without exposing sensitive information are common pain points.
What Is This¶
@sduwall/dsh-wall-mcp-manager is a DSH plugin maintained by developer sduwall. Its core purpose is to centrally manage MCP service configurations and display the tools, invocation parameters, and return contracts provided by each service. It does not implement the MCP protocol directly; instead, it uses a “reconciliation” mechanism to converge the configuration manifest into runtime MCP instances.
Core Features¶
This plugin provides the following capabilities:
1. Centralized Management: All MCP service configurations are managed uniformly under the dsh-wall-mcp-manager namespace.
2. Automatic Reconciliation: Mounting, updating, or unmounting operations are automatically performed based on the configuration manifest. Changes take effect without restarting DSH, and consecutive save operations are serialized.
3. Contract Display: The settings interface displays each service’s tool list, parameter definitions, and return structure.
4. Secure Credentials: Supports credential masking for environment variables and request headers. Credential values and key names never leave the host; the interface only displays “Configured / Not Configured”.
Installation and Dependencies¶
This plugin is built on Cordis Bundle and is part of the DSH ecosystem.
- Dependency Environment:
- DSH >= 0.1.2-alpha (recommend >= 0.1.2-alpha.2)
- Node.js >= 20 (DSH built-in Node.js version >= 22)
- Hard Dependency Services: loader, tools
- Optional Services: settings (for hot-applied configuration), webServer (for the settings interface)
Typical Usage¶
Define services under the dsh-wall-mcp-manager namespace in a configuration file (usually settings.yaml):
dsh-wall-mcp-manager:
servers:
filesystem:
enabled: true
transport: stdio
description: 本地文件访问
command: npx
args:
- -y
- '@modelcontextprotocol/server-filesystem'
- D:/workspace
env:
LANG: zh_CN
secretEnv: # 凭据类环境变量,永不出网
API_TOKEN: xxx
toolCallTimeoutMs: 60000
weather:
transport: streamable-http
url: https://mcp.example.com/mcp
headers:
X-Trace: 'on'
secretHeaders: # 凭据类请求头
Authorization: Bearer xxx
Key Conventions:
- Tool Naming: The public tool name inside DSH is mcp__<serverName>__<originalToolName>.
- Renaming Changes the Service: Modifying serverName resets all tools for that service, so renaming is equivalent to replacing the service.
- Credential Fields: secretEnv and secretHeaders must be explicitly configured (do not write {}); leaving them blank means no modification.
Interface and Limitations¶
- Local Loopback Validation: The settings interface depends on DSH’s Web service and only allows access via
127.0.0.1or::1. When accessing the GUI through a remote address, configuration cannot be read or written. - No Credential Echo: The interface only shows whether credentials are configured; it does not display the actual values. Leaving a field blank during write operations means no modification.
- Partial State Protection: Configuration validation failures (such as a missing command or invalid name) will only skip the applicable entry and will not cause the entire plugin to be uninstalled.
Use Cases and Security¶
- Use Cases: Developers who need to frequently add, delete, or modify MCP services; who want to dynamically adjust service states without restarting DSH; and who need to intuitively view tool contracts through the interface.
- Permissions and Security Boundaries:
- Command Execution: Can spawn local child processes (executed with DSH’s process identity); ensure the source is trusted.
- Network Access: Connects only through configured remote URLs; the configuration bridge only listens on the local loopback, avoiding permission leakage.
- File Access: Does not read or write the user file system; it only reads and writes configuration in memory.
Conclusion¶
By using centralized configuration and hot-applied changes, this plugin reduces the management cost of MCP services and ensures security through strict credential masking. For more details, see the official catalog or the source repository.