dsh-mcp-admin
dsh-mcp-admin
DeepSeek Harness の skill と Agent プリセット管理を MCP server として公開する両面プラグイン:リモート Agent が MCP プロトコル経由でサーバー上の skill / preset 設定を直接変更でき、SSH は不要。host 側には監査ログを記録し、ブラウザ側の Settings ページに「MCP 管理」ダッシュボードを表示して最近の変更履歴を確認できます。
典型的な用途:リモートサーバーで dsh web を実行し、ローカルの Agent が http://<サーバー>:3080/mcp に接続して「本番 → レビュー → 変更 → 本番」のループを形成します。
アーキテクチャ
本地 Agent (MCP client)
│ POST /mcp (Authorization: Bearer <token>)
▼
dsh web (host 半区)
├── Streamable HTTP MCP server(stateless,每请求一个实例)
│ ├── skill_list / skill_read / skill_upsert / skill_delete
│ └── preset_list / preset_read / preset_upsert / preset_delete
├── 审计 JSONL:$DSH_HOME/mcp-admin/audit.jsonl
└── RPC 通道 /mcp-admin(audit.list,trusted-host 围栏)
▲
浏览器 Settings「MCP 管理」看板(client 半区,5s 轮询)skill 書き込み:
$DSH_HOME/skills/<name>/SKILL.mdに直接書き込みます(ディレクトリ bundle。既存のフラットな<name>.mdがある場合はその場で上書きして形式を維持)。harness のskill-filesystemprovider がこのディレクトリを watch しており、書き込み後、次の agent step で反映されます。preset 書き込み:
$DSH_HOME/.agent-presets/<id>/agent.cordis.ymlに書き込みます。system trust の preset を上書きするには、先にbaseを渡して user root にコピーする必要があります(組み込み preset を意図せずゼロから隠してしまうのを防ぐため)。standing mount のファイルスタンプ機構により、変更は新しいセッションに自動的に反映され、再起動は不要。進行中のセッションには影響しません。監査: 書き込み/削除のたびに JSONL を1行追記(時刻、ツール、ターゲット、アクション、バイト数、先頭200文字の要約)。
auditLimitで切り詰めます。
Related MCP server: Omni Skills
インストール
dsh plugin --profile web add /path/to/dsh-mcp-admin次に、プロファイルの ~/.dsh/profiles/web/cordis.patch.yml で token を設定します(必須。設定しないとプラグインは起動を拒否します):
- id: mcp-admin
config:
token: <openssl rand -hex 32 的输出>
auditLimit: 200設定
フィールド | 型 | デフォルト | 説明 |
| string | (必須) |
|
| number | 200 | 監査ログの保持件数 |
| string | 空 | このデプロイのパブリック/ローカルネットワークアクセス URL(例: |
MCP クライアント設定
最も簡単な方法: Settings の「MCP 管理」ページを開き、「パブリックアクセス URL」にこのデプロイのパブリック/ローカルネットワークアドレス(例:http://1.2.3.4:3080、NAT 配下のマシンでは必須。空欄の場合はこのページを開いたアドレスに従います)を入力して保存し、「MCP 設定手順をコピー」をクリックします。完全な設定手順(URL とトークンを含む)がコピーされるので、設定する Agent にそのまま貼り付けて、その指示に従って設定してもらうだけです。http:// ページではブラウザが自動コピーを禁止しているため、ボタンはテキストボックス表示にフォールバックして手動コピーになります。
手動設定の形式(Streamable HTTP タイプ):
{
"mcpServers": {
"dsh-admin": {
"type": "http",
"url": "http://<服务器>:3080/mcp",
"headers": { "Authorization": "Bearer <token>" }
}
}
}ツール一覧
ツール | 説明 |
| user root 配下の skill を一覧表示(名前、説明、形式、パス) |
| SKILL.md の全文と bundle リソースファイルの一覧を読み取る |
| skill を作成/上書き(kebab-case 名と frontmatter の |
| user root 配下の skill を削除 |
| すべての preset を一覧表示(trust と broken のマークを含む) |
| preset の |
| preset の組み合わせを作成/上書き。 |
| user trust の preset を削除(system は削除不可) |
セキュリティ上の注意
harness ウェブサーバー自体にはTLS も認証もありません。
/mcpは/apiの信頼境界の外にあり、tokenが唯一の防御線です。トークンが漏洩すると、スキルやプリセットを書き換えられる可能性があります(間接的なリモートコード実行)。リバースプロキシで TLS を終端してから公開するか、harness の
trusted-hostメカニズムと組み合わせて発信元を制限することをお勧めします。すべての書き込み操作は user root(
~/.dsh/skills、~/.dsh/.agent-presets)に限定され、組み込みのプリセットやプロジェクトディレクトリには触れません。ダッシュボードの RPC チャネル(
/mcp-admin)は接続のtrusted-host境界を通過します。監査ログにシークレットは含まれません。「MCP 設定手順をコピー」ボタンは、
setup-infoエンドポイントを介してトークンをページに返します。Web UI を開ける人なら誰でもトークンを取得できます。これは harness の既存のセキュリティモデルと一致しています(Web UI を開けるということは、すでにsession.promptでサーバー上でエージェントを実行できるということです)。ただし、Web UI の露出面 = トークンの露出面であることを意味します。
開発
pnpm install
pnpm run build # host: tsc → lib/;client: tsdown → lib/client.js
pnpm run typecheckclient 側の型解決はローカルの harness ソースツリーに依存しています(dsh-client-* は npm に完全には公開されていません)。tsconfig*.json の paths は harness チェックアウトをハードコードで参照しているため、マシンを移行する場合はこれらのパスを変更する必要があります。
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
- AlicenseAqualityCmaintenanceConverts AI Skills (following Claude Skills format) into MCP server resources, enabling LLM applications to discover, access, and utilize self-contained skill directories through the Model Context Protocol. Provides tools to list available skills, retrieve skill details and content, and read supporting files with security protections.327Apache 2.0
- AlicenseNot gradedqualityAmaintenanceMCP server that unifies and synchronizes AI coding skills across multiple tools, exposing skill discovery and retrieval via list_skills and read_skill.10112MIT
- AlicenseNot gradedqualityDmaintenanceMCP server that adapts, activates, and shares local Agent Skills for runtimes like OpenAI Agents SDK and Claude Code, enabling dynamic discovery and shareable HTML/image artifacts.182MIT
- AlicenseNot gradedqualityBmaintenanceA git-backed MCP server that centrally manages AI agent skills, tools, and knowledge with role-based access, change requests, and a remote OAuth 2.1 endpoint.75Apache 2.0
Related MCP Connectors
MCP server for AI agents to plan, verify, and deploy Cloudflare-native apps.
MCP server for secureFlows: token-free URL builders and integration-linting tools for AI agents.
MCP server exposing the Backtest360 engine API as tools for AI agents.
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/EnZzzzzz/dsh-mcp-admin'
If you have feedback or need assistance with the MCP directory API, please join our Discord server