Skip to main content
Glama

dsh-mcp-bridge

DeepSeek Harness デプロイメントの機能を、任意の MCP クライアントに提供します — メモリ、永続的なタスク台帳、プロジェクトエージェントのディスパッチ、そしてより広い MCP 環境 — を、モデルが知って覚えておく必要のあるシェルコマンドの代わりに、宣言されたツールとして提供します。

理由

claude -p は独自のエージェントループを実行するため、ハーネスのツールスキーマを受け取ることはありません。Claude ベースのセッションにはメモリも台帳もディスパッチもありません。しかし、MCP サーバーは受け入れます。これがそのサーバーです。

公開されるすべての機能には既にコマンドラインエントリポイントがあるため、これは表面を追加するものであり、権限を追加するものではありません。シェルで呼び出し元が既にできることを正確に実行できます。ブリッジできないのは、ライブのハーネスターン内にのみ存在するもの(目標、AgentTeams)です。これらは設計上セッションスコープであり、外部サーフェスを持ちません。

Related MCP server: skillsmcp

ツール

tool

does

dsh_memory_search / dsh_memory_write

永続メモリストア

dsh_tasks_list / _add / _done / _block

タスク台帳

dsh_dispatch / dsh_job_status

プロジェクトエージェントに作業を渡し、ポーリングする

dsh_mcp_call / dsh_mcp_schema

MCP 環境内の任意のサーバー(合成なし)

dsh_projects

リポジトリ所有権レジストリ

dsh_notify

ユーザーに通知する

使用方法

// mcp-bridge.json
{ "mcpServers": { "dsh": { "command": "node", "args": ["/path/to/src/server.js"] } } }
claude -p --strict-mcp-config --mcp-config ./mcp-bridge.json

DSH_JARVIS_BIN が ~/.dsh-jarvis/bin でない場合は、CLI が置かれているディレクトリを指すように設定してください。

苦労して学んだ3つのこと

  • --mcp-config は可変長引数です。 インライン JSON の後に位置引数のプロンプトを続けると、クライアントはそのプロンプトを 2 番目の設定パスとして読み取ります(MCP config file not found: /tmp/List the tool…)。ファイルを渡してください。

  • stdin が EOF を報告した瞬間に終了しないでください。 仕様ではクライアントが stdin を閉じるとシャットダウンとされていますが、一部のクライアントはサーバーに既に EOF の stdin を渡します。サーバーは最初のリクエストの前に終了し、クライアントはそれを再起動し、ループします。観測された例: 3 分間で 32 回の起動、完了した呼び出しはゼロ。ここでは、何かが処理された後にのみ EOF でプロセスを終了し、上限付きアイドルタイムアウトを設定して、放棄されたサーバーが最終的に消えるようにしています。

  • ブリッジの検証は読み取りではなく書き込みで行ってください。 「検索ツールを呼び出して」と依頼されたモデルは、呼び出しが実際には失敗した場合でも、自身のコンテキストからもっともらしい出力を再現できます。ここで実際にそのようなことが起こり、後で認められました。ランダムなトークンでの書き込みは、ストアに保存されるか、されないかのどちらかです。

テスト

npm test

20 のテスト、依存関係なし、クライアント不要: ツールカタログと JSON-RPC レイヤーはどちらも純粋です。

ライセンス

MIT

Related MCP Connectors

Related MCP Servers