hermes-dsh-bridge
hermes-dsh-bridge
Hermes ↔ DeepSeek Harness を専門に橋渡しする MCP プラグイン:Harness の内部に MCP server を起動し、外部の MCP クライアント(Hermes など)から Harness の Agent を駆動して、実際のコーディングタスクを実行させます。
Hermes は頭脳であり、Harness は両手です。
なぜ存在するのか
Harness には強力な Agent ランタイム(ツール、LLM、Agent、セッション)が備わっていますが、それは Cordis アプリであり、他の Agent からは駆動できません。このプラグインは Harness を裏返しにします:Harness 内部で本物の MCP server(StreamableHTTP)を起動し、Harness のコアサービス(ctx.agents / ctx.agentPresets / ctx.tools)を橋渡しして、外部の「頭脳」に実際の作業を Harness の「両手」へ任せられるようにします。
Hermes (MCP client, 大脑)
│ agent_run / task_inbox / fs_read / session_stats ... (HTTP)
▼
harness-mcp-server (MCP server, :8090)
│ ctx.agents.create → mount 'standard' preset
▼
Harness agent — 完整工具集: bash, fs, todo, web…Related MCP server: dsh-harness-mcp-server
ツール(19 個)
タスク
ツール | 向き | 用途 |
| → Harness | タスクを同期的に実行;構造化された結果+今回の |
| → Harness | 構造化タスク(タスク+記憶コンテキスト+cwd)を非同期キューへプッシュ |
| ← Harness | キュー内タスクの構造化された結果を取り出す |
| ← Harness | 非同期タスクキューのスナップショット(id/status/createdAt/error) |
セッション
ツール | 向き | 説明 |
| ← | セッションを一覧表示(live +永続化を統合)、行ごとに token/LLM の所要時間サマリー |
| ← | セッションのイベントログを読む(reasoning は除去済み)、tail N 件、タイプ別にフィルタ |
| ← | セッション統計:フィールド順 rounds/steps/llmTime/toolTime/ttft/tokensPerSec/cacheHitRate/inputTokens/outputTokens |
| ← | セッション名の変更(アーカイブ時の区別に便利) |
| ← | セッションをワークスペースへグループ化 |
ファイル(path jail の制約あり)
ツール | 向き | 説明 |
| ← | テキストファイルを読む(行番号付きページング;パス jail + 機微名ブラックリスト) |
| ← | ディレクトリを一覧(再帰 depth 階層、機微項目は自動的に非表示) |
| ← | ファイル / ディレクトリのメタデータ |
| → | ファイルの書き込み(overwrite/append/create-new)——オプトイン( |
ステータスと設定
ツール | 向き | 説明 |
| ← | バージョン / uptime / provider / model / preset / live agents / キュー深さ |
| ← | ランタイム設定のサマリー(authToken は |
プリセット
ツール | 向き | 説明 |
| ← | 利用可能な agent preset + デフォルトを一覧表示 |
| ← | セッションで実際に適用される preset(またはデフォルト)を照会 |
| → | デフォルト preset( |
メタ
ツール | 向き | 説明 |
| − | MCP 接続を検証する |
| − | Harness 内部に登録されているツール名を列挙 |
構造化された結果と統計
agent_run を呼ぶたびに構造化された結果が返り、このラウンドの使用量統計が添付されます:
{
"sessionId": "...",
"assistantText": "最终回答",
"toolCalls": [{ "name": "bash", "args": "..." }],
"toolResults": ["命令输出"],
"changes": "改了什么",
"verification": "怎么验证的",
"leftovers": "遗留问题",
"stats": {
"rounds": 1, "steps": 3,
"llmTime": 13.9, "toolTime": 0.04,
"ttft": 3349, "tokensPerSec": 40.7,
"cacheHitRate": 1, "inputTokens": 8831, "outputTokens": 157
}
}クローズドループ:クライアントはメモリを context として各タスクに渡し、結果(changes/verification/leftovers)を再びクライアント側のメモリに格納して、次のラウンドで使用します。
インストール
方法A — npm から Harness profile にインストール
# 在 Harness profile 的 node_modules 下
cd ~/.dsh/profiles/<你的profile>/node_modules
npm install hermes-dsh-bridge方法B — ソースコードからビルド
git clone https://github.com/Emilia-awa/hermes-dsh-bridge.git
cd hermes-dsh-bridge
npm install && npm run build # 产出 lib/index.js
# 把构建产物放进 Harness profile:
# ~/.dsh/profiles/<你的profile>/node_modules/hermes-dsh-bridge⚠️ dual-package hazard(必読):Harness は グローバルツリーから
@deepseek-ai/*を解決する一方、プラグイン自身の node_modules には平行するコピーが存在し得ます——つまり 2 つのモジュールインスタンス ⇒Symbolの不一致が起き、Agent は静かに全てのツールを失います(症状としてはagent_runが<tool_calls>テキストだけを返し、toolCallsが常に空配列になります)。修正方法:プラグインの@deepseek-ai/*依存関係を Harness のグローバルツリーに symlinkする:PROFILE=~/.dsh/profiles/<你的profile>/node_modules GLOBAL=$(npm root -g)/@deepseek-ai/dsh/node_modules/@deepseek-ai for pkg in cordis cosmokit dsh-agent dsh-llm dsh-session dsh-tools dsh-scope \ dsh-agent-presets dsh-code-runtime dsh-system-prompt dsh-typert-protocol \ dsh-attachment dsh-brand dsh-invariants dsh-timeout dsh-settings \ dsh-home-paths dsh-atomic-write dsh-user-approval \ cordis-plugin-include cordis-plugin-loader; do rm -rf "$PROFILE/@deepseek-ai/$pkg" && ln -sfn "$GLOBAL/$pkg" "$PROFILE/@deepseek-ai/$pkg" done(
인을plugin-include/loader` は npm registry に公開されておらず、Harness のグローバルツリーにしか存在しないため、symlink が必須。)
Patch 設定
あなたの Harness profile の cordis.patch.yml(または同等の patch ファイル)の末尾に追記します:
- insert:
- id: hermes-dsh-bridge
name: 'hermes-dsh-bridge'
config:
http: true
port: 8090
host: 127.0.0.1 # 默认仅本机; 暴露前必须加认证
# authToken: '你的随机长token' # 可选: Bearer token 认证
# workspaceRoots: ['/workspace'] # 可选: cwd 白名单
# enableFsWrite: true # 可选: 开启 fs_write(默认关)
# ⚠️ 必须显式声明 provider/model, 否则 agent 组装会因空 {{model}} 崩溃:
provider: opencode-go
model: deepseek-v4-flash再起動して検証
systemctl restart dsh.service # 或你管理 Harness 的方式
# 验证 19 个工具全在线:
python3 examples/hermes_dsh_mcp.py list
python3 examples/hermes_dsh_mcp.py call status_get '{}'🤖 AI 向けワンクリックインストールガイド(AI Agent のためのインストール手順)
次に挙げる手順は 別の AI Agent に向けたものです:あなたが AI agent で、管理している Harness 環境にこのプラグインをインストールする場合は、以下に番号付き手順を厳密に実行し、各ステップを終えたら必ず出力を確認してから次に進んでください。
事前チェック(先にこの 3 ステップを実行)
Node が ≥ 22.18 であることを確認:
node --version(22.18 未満だと zstd/stripTypeScriptTypes不足のエラーが発生するため、先に Node をアップグレードしてください)。対象の Harness profile が存在することを確認:
ls ~/.dsh/profiles/(予定の profile 名を探し、以下<PROFILE>と表記します)。Harness のグローバルツリーが存在することを確認:
npm root -g(以下$GLOBAL_TREEはnpm root -gを意味します)。
インストール手順(コピーして実行するだけ)
# ① 安装插件到 profile
cd ~/.dsh/profiles/<PROFILE>/node_modules
npm install hermes-dsh-bridge # 未发布到 npm 前用方式 B(源码)
# ② 修复 dual-package hazard: 把所有 @deepseek-ai/* 和 cordis-plugin-* symlink 到全局树
GLOBAL_TREE=$(npm root -g)/@deepseek-ai/dsh/node_modules/@deepseek-ai
for pkg in cordis cosmokit dsh-agent dsh-llm dsh-session dsh-tools dsh-scope \
dsh-agent-presets dsh-code-runtime dsh-system-prompt dsh-typert-protocol \
dsh-attachment dsh-brand dsh-invariants dsh-timeout dsh-settings \
dsh-home-paths dsh-atomic-write dsh-user-approval \
cordis-plugin-include cordis-plugin-loader; do
rm -rf "@deepseek-ai/$pkg" 2>/dev/null
ln -sfn "$GLOBAL_TREE/$pkg" "@deepseek-ai/$pkg"
done
# ③ 在 profile 的 cordis patch 文件(cordis.patch.yml)末尾追加配置
cat >> ~/.dsh/profiles/<PROFILE>/cordis.patch.yml <<'EOF'
- insert:
- id: hermes-dsh-bridge
name: 'hermes-dsh-bridge'
config:
http: true
port: 8090
host: 127.0.0.1
provider: opencode-go # ← 换成你自己的 provider id
model: deepseek-v4-flash # ← 换成你自己的 model id
EOF
# ④ 重启 Harness(注意: 若你正跑在 Harness 里, 用 systemd-run 脱离进程树重启)
systemctl restart dsh.service
# ⑤ 验证: 等 8 秒后检查 MCP server 起来 + 工具列表
sleep 8
curl -s -X POST http://127.0.0.1:8090/mcp \
-H 'Content-Type: application/json' -H 'Accept: application/json, text/event-stream' \
-d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"ai-setup","version":"1.0"}}}' \
| tail -1 | head -c 300
python3 examples/hermes_dsh_mcp.py list | grep -cE "agent_run|session_stats|preset_set" # 期望 ≥ 3受け入れ基準
dsh_mcp.py listの出力が 19 個以上のツールであり、その中に必ずagent_run、session_stats、preset_set、fs_readが含まれていること。保留子
status_getが返すversionが0.3.0であり、provider/modelが自分の設定値であること。スモークタスクとして
dsh_mcp.py run '回复:安装成功'を実行し、戻り値にstatsフィールドが含まれること。
(日本語メモ: 上記のスモークタスク例は、実際には python3 examples/hermes_dsh_mcp.py run '回复:安装成功' と実行してください。)
よくある失敗とその対処(該当したら参照)
症状 | 原因 | 処置 |
| dual-package hazard で symlink が npm の再インストールで戻された | ②の symlink をやり直し、再起動する |
起動時に | patch に provider/model が書かれていない | ③の provider /model を追記する |
| API key が Harness プロセスの env に注入されていない | systemd unit で |
パッケージ | ②で cordis-plugin-* を入れ忘れている | これら 2 つのパッケージのsymlink を補う |
バージョン番号は適合しているのに旧版.と挙動が同じ | システムに npm グローバルツリーが 2 つあり、別のツールにインストールされた |
|
完全なトラブルシューティングは docs/TROUBLESHOOTING.md を参照してください。
ドキュメント
docs/TOOLS.md — 19 個ツールの完全リファレンス(入参 / 出参 / 上限 / エラーコード)
docs/CONFIG.md — 各設定フィールド、セキュリティ上のデフォルト値
docs/TROUBLESHOOTING.md — 既知の落とし穴(SSE の厳密な解釈、8KB 切り詰め、dual-package hazard など)
docs/SECURITY.md — 脅威モデル
examples/hermes_dsh_mcp.py — 依存ゼロの軽量 MCP クライアント(標準ライブラリのみ)
位置づけ
非常用ツールとして製に適しています。日常的な修正や コード変更は、普段の主 Agent を直接動かしてください。本当に 上下文を分離 させたい(大幅なリファクタリングはクライアントの Context を圧迫する)、まだ。
続き
Agent セッションは cwd 単位で再利用(呼び出しのたびにテーマを把トングん の再ロードを避ける)。
Bash はサンドボックス(
workspace-write)されます:ホストにbubblewrapをインストールしておかないと、write 系コマンドが拒否されます。reasoning / thinking ブロックは返却前に取り除く(プラグイン側+テキストレベルのフォールバックで二重に除外)。
License
GPL-3.0-only、上流の MIT で利用許諾される部分も残る場合あり——詳細は NOTICE.md を参照。
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- FlicenseNot gradedqualityAmaintenanceAn experimental MCP gateway for controlling durable DeepSeek Harness agent sessions from MCP clients, enabling session creation, observation, steering, and resumption across chat sessions.4
- AlicenseNot gradedqualityAmaintenanceExposes 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.8MIT
- AlicenseNot gradedqualityCmaintenanceExposes DeepSeek Harness's coding agent as a model backend via MCP, with user-confirmed task execution and self-inspection/config-patch tools.MIT
- FlicenseNot gradedqualityCmaintenanceExposes DeepSeek Harness skill and agent preset management as an MCP server, letting remote agents read, create, update, and delete skills/presets over HTTP with audit logging. It enables a production-to-review-to-modification workflow without SSH.
Related MCP Connectors
MCP server exposing the Backtest360 engine API as tools for AI agents.
A paid remote MCP for OpenAI Codex agent coordination MCP, built to return verdicts, receipts, usage
OCR, transcription, file extraction, and image generation for AI agents via MCP.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Emilia-awa/hermes-dsh-bridge'
If you have feedback or need assistance with the MCP directory API, please join our Discord server