Skip to main content
Glama

safe-agent-mcp

A secure multi-agent MCP gateway based on DeepSeek Harness: it wraps DSH's agent execution capabilities into standard MCP tools, so any MCP client (Claude Desktop, Cursor, etc.) can call them.

What this project solves

  • DSH is a multi-agent framework, but its capabilities can only be used in its own interface;

  • MCP is a standard protocol that any client can connect to, but it has no agent capabilities of its own;

  • safe-agent-mcp is the bridge between the two: an MCP server that provides standard tools externally and drives DSH's agents internally (including sub-agents and the sandbox).

Related MCP server: dsh-harness-mcp-server

Features

Keyword

Implementation

MCP

Standard MCP server (@modelcontextprotocol/sdk), plug-and-play with any MCP client

Multi-Agent

(Planned in v1.1) Drive DSH sub-agent task execution via dsh --profile headless

Sandbox/Security

(Planned in v1.2) Dangerous command interception, secret redaction, audit logs, timeout and concurrency limits

Quick Start

npm install
npm run smoke     # 自动化冒烟测试(协议握手 + 工具调用)
npm run inspect   # 打开 MCP Inspector 可视化调试

Currently implemented tools:

  • run_command: executes a shell command in the sandbox and returns stdout / stderr / exit code (the GBK encoding issue of cmd is handled on Windows).

Directory Structure

src/index.ts        # MCP 服务器入口
tests/smoke.mjs     # 冒烟测试
docs/DEVELOPMENT.md # 开发文档(架构、里程碑、开发日志)

Milestones

  • v1.0: MCP server + run_command tool (smoke tests all green)

  • v1.1: run_agent_task multi-agent integration (headless bridge)

  • v1.2: Security shell (dangerous command interception + secret redaction + audit logs)

  • v1.3: Web dashboard (bonus)

See docs/DEVELOPMENT.md for details.

License

MIT

Available Tools

1 tool
run_commandA

在沙箱中执行一条 shell 命令,返回 stdout、stderr 和退出码。注意:command 只填命令本身(如 echo hello),不要传 JSON 包装。

Inputs: command (required), timeout_ms.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A4.4/5.0

    Scored across 1 tool

    Disambiguation5/5

    With only one tool, there is no possibility of confusion between tools. The name 'run_command' clearly describes its function, eliminating any ambiguity.

    Naming Consistency5/5

    The single tool follows a consistent verb_noun pattern ('run_command'). There are no other tools to create inconsistency, so the naming is perfectly consistent.

    Tool Count3/5

    The server has only one tool, which feels thin for a typical tool set. While it may cover the core purpose of safe command execution, the surface is minimal and could benefit from additional related tools.

    Completeness5/5

    The server's stated purpose is to execute shell commands in a sandbox, and 'run_command' fully covers this operation by returning stdout, stderr, and exit code. No obvious gaps exist for the intended scope.

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      Not graded
      quality
      D
      maintenance
      Enables LLM clients to execute shell commands safely through the MCP protocol, with features like session management, safe mode, and process control.
      8 PyPI
      1
      Apache 2.0
    • A
      license
      Not graded
      quality
      C
      maintenance
      Exposes DeepSeek Harness agent capabilities as an MCP server, letting any MCP client drive Harness to execute real coding tasks with structured results, context isolation, and parallel execution.
      94 npm
      13
      MIT
    • A
      license
      Not graded
      quality
      B
      maintenance
      Exposes opencode's coding agent and shell as MCP tools, enabling MCP-only AI clients to execute shell commands, manage files, and run agent sessions with async job handling.
      23 npm
      MIT