dashclaw について
DashClaw は、無人運用のエージェント向けに、ポリシーチェック、承認、監査記録、統制されたHTTP機能の呼び出しを提供するガバナンス用 MCP サーバーです。エージェントの操作を制限し記録したいチームを対象としています。stdio または Streamable HTTP で接続でき、Claude のカスタムコネクタとしても追加できます。
主な機能
- 01リスクのある操作の前のポリシー評価
- 02監査証跡への操作記録
- 03承認ゲートを経た登録済み機能の実行
- 04人による承認結果の待機
- 05ガバナンス対象操作の判断台帳の参照
- 06計画の事前レビュー用の送信
活用シーン
- 01自動化エージェントの高リスク操作へのポリシーと承認の適用
- 02エージェントの操作と未検証の前提の監査記録
- 03マルチエージェントタスクにおける委任と状態変化の追跡
MCP 対応
本プロジェクトは MCP サーバーであり、17 のガバナンスツール、stdio 専用の支援ツール 2 件、dashclaw://policies や dashclaw://status などの読み取り専用リソース 3 件を MCP クライアントに提供します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
npx -y @dashclaw/mcp-serverDASHCLAW_URLBase URL of your DashClaw instance (e.g. https://your-app.vercel.app)DASHCLAW_API_KEYシークレットDashClaw workspace API key (oc_live_...)DASHCLAW_AGENT_IDOptional agent identifier used to attribute governed actionsローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ツール
19掲載時のツール一覧 · 2 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| act | object | いいえ | 証拠を優先するガードです。評価対象の実際の操作を添付すると、サーバーが操作を分類し、宣言された action_type/risk_score だけに頼らず、推定したリスクを加味します。形式:{ kind: "shell"|"http"|"sql"|"file", command? (shell), request?: { method, url, body_excerpt? } (http), statement? (sql), file?: { path, content_excerpt?, bytes? } (file) }。省略可能です。添付する具体的な証拠がない場合は省略してください。 |
| target | string | いいえ | 操作が対象とする主なファイルパス、URL、またはリソース(保護対象パスのポリシーが照合できます) |
| content | string | いいえ | 機密情報スキャンとコンテンツポリシーによる評価用の送信内容の抜粋(ファイル内容、メッセージ本文) |
| agent_id | string | いいえ | サーバーレベルの agent id が設定されていない場合に使用するフォールバック ID(設定済みの ID が優先されます)。ID が設定されている場合は、その配下のサブエージェントを「<configured id>/<name>」(例:claude-desktop/nightly-seo)と名付けると、このルーチン専用の行が /decisions に作成されます。それ以外の値は設定済みの ID にフォールバックします。 |
| tool_name | string | いいえ | 操作を実行するツールの名前(例:Write、Bash、send_email) |
| confidence | integer | いいえ | 人が介入せずにこの操作が完了するという、0~100 の正直な確信度を実行前に示します。操作記録に保存され、/decisions で実際の結果と照合して評価されます(Predicted vs actual)。推測するくらいなら省略してください。ちょうど 50 は未指定として扱われます。 |
| reversible | boolean | いいえ | 操作を元に戻せるかどうか |
| risk_score | integer | はい | リスクの推定値(0~100)。本番システムでは 70 以上を使用してください。 |
| action_type | string | はい | 操作のカテゴリ(例:deploy、send_email、database_write、api_call) |
| write_paths | array | いいえ | 操作が書き込みまたは変更するファイルパス(保護対象パスのポリシーマッチング用) |
| declared_goal | string | はい | 実行する内容を平易な言葉で説明してください |
| systems_touched | array | いいえ | 影響を受けるシステム(例:本番環境、データベース、メール) |
| approval_wait_seconds | integer | いいえ | 決定が require_approval の場合に dashclaw_wait_for_approval をポーリングする時間(デフォルトは 300。承認はこの期間と再試行猶予期間の経過後に期限切れになります) |
詳細
@dashclaw/mcp-server
DashClaw のガバナンス向け MCP サーバーです。Model Context Protocol を介して、17 個のガバナンスツール、stdio 専用のサポートツール 2 個、読み取り専用リソース 3 個を公開します。ポリシーの評価、証拠の記録、登録済み機能の呼び出し、承認待ち、決定台帳の読み取りができます。Claude Code、Claude Desktop、Claude Managed Agents、および MCP 対応クライアントで使用できます。
ガバナンスツールは、DASHCLAW_URL と DASHCLAW_API_KEY の両方が設定されている場合にのみ登録されます。どちらも設定されていない場合、サーバーは何も登録しません。片方だけが設定されている場合は、stderr に警告を出します。
クイックスタート
Claude Code / Cowork(stdio)
npx -y @dashclaw/mcp-server --url https://your-dashclaw.vercel.app --key oc_live_xxx --agent-id claude-code
または、MCP 設定(Claude Code の場合は .mcp.json、または claude mcp add)に追加します。
{
"mcpServers": {
"dashclaw": {
"command": "npx",
"args": ["-y", "@dashclaw/mcp-server"],
"env": {
"DASHCLAW_URL": "https://your-dashclaw.vercel.app",
"DASHCLAW_API_KEY": "oc_live_xxx",
"DASHCLAW_AGENT_ID": "claude-code"
}
}
}
}
Claude Desktop のメインチャットでは stdio を使用しないでください。 Desktop はバンドルされた Node でローカル MCP サーバーを実行するため、このサーバーがクラッシュします。代わりに OAuth カスタムコネクターを使用してください。ローカルプロセスは不要で、チャットと Cowork の両方で動作します。
DASHCLAW_AGENT_ID について: これは /fleet、/decisions、その他すべてのガバナンス画面に表示される名前です。省略すると、サーバーは MCP プロトコルの clientInfo.name(例:Claude Desktop では claude-ai、Cursor では cursor-vscode)から agent_id を自動的に導出します。これにより、他のエージェントと呼び出しが意図せず混在することはありません。ただし、ダッシュボードで見やすくするには、claude-desktop のような人が読みやすい名前を指定することをおすすめします。明示的な設定は常に自動導出より優先されます。
Claude Managed Agents(Streamable HTTP)
DashClaw を実行している場合、MCP エンドポイントは /api/mcp に組み込まれています。
agent = client.beta.agents.create(
name="Governed Agent",
model="claude-sonnet-4-6",
tools=[{"type": "agent_toolset_20260401"}],
mcp_servers=[{
"type": "url",
"url": "https://your-dashclaw.vercel.app/api/mcp",
"headers": {"x-api-key": "oc_live_xxx"},
"name": "dashclaw"
}],
)
Claude Desktop
OAuth カスタムコネクター(次のセクション)を使用してください。Desktop のチャット、Web、Cowork で動作することが確認済みの方法で、インストールも不要です。以前のワンクリック .mcpb バンドルは廃止されました。Desktop にバンドルされた Node で stdio サーバーを実行していたため、クラッシュを繰り返します。これを使ってインストールした dashclaw 拡張機能がまだある場合は、コネクターを追加する前にアンインストールしてください(Settings → Extensions)。
Claude カスタムコネクター(リモート、OAuth)
セルフホスト可能な DashClaw は、UI で API キーを入力せずに Claude のカスタムコネクターとして追加できます。Claude のコネクター設定ではヘッダーではなく OAuth が必要です。
- Claude で、Settings → Connectors → Add custom connector を選択します。
https://<your-instance>/api/mcpを貼り付けます。- Claude が
/.well-known/oauth-protected-resourceを検出して DCR で登録し、DashClaw のログイン画面と同意画面を開きます。 - 承認すると、ワークスペースの範囲に限定された 17 個のガバナンスツールが表示されます。
Free/Pro/Max/Team/Enterprise で動作します(Free ではカスタムコネクターは 1 つまでです)。従来の x-api-key 方式(Managed Agents)は変更ありません。
マーケットプレイス経由のプラグイン(スキル)
Claude アプリで DashClaw のスキル(ガバナンスプロトコルとプラットフォームインテリジェンス)も読み込むには、Customize → Plugins → 「+」→ Add marketplace → github: ucsandman/DashClaw の順に選択し、dashclaw プラグインをインストールします。
ツール(ガバナンス 17 個+stdio サポート 2 個)
ドメイン別にまとめています。正式な定義については、src/tools.ts を参照してください。
コアガバナンス(9 個) — ガード/記録/実行のループに、検出とセッションのライフサイクルを加えたものです。
| ツール | 説明 |
|---|---|
dashclaw_guard | リスクのあるアクションの前にポリシーを評価します |
dashclaw_record | アクションを監査証跡に記録します |
dashclaw_invoke | サーバーのガード、承認、実行クレーム、効果、結果の接点を通じて、登録済みの機能を実行します |
dashclaw_capabilities_list | 利用可能な API を検出します |
dashclaw_policies_list | 有効なガバナンスポリシーを確認します |
dashclaw_wait_for_approval | 人間が承認を解決するまで待機します |
dashclaw_session_start | エージェントセッションを登録します |
dashclaw_session_end | エージェントセッションを終了します |
dashclaw_session_retro | セッション自身の正当性に関する振り返り(問題なし/要レビュー/フラグ付きの状態)を読み取ります |
セッションの関連付け:
dashclaw_session_startの後、サーバーは同じ接続(stdio)上のすべてのdashclaw_recordに、そのセッションの ID を自動的に付与します。上書きする場合、または各リクエストがステートレスな HTTP トランスポート(POST /api/mcp)で明示的に関連付ける場合は、dashclaw_recordにsession_idを渡してください。
強制の境界
dashclaw_guard、dashclaw_record、dashclaw_wait_for_approval は
協調型のツールです。ポリシーと監査状態を返しますが、それに従うかどうかは
MCP ホストまたはモデルが引き続き判断します。通常の MCP ツールに対する
機械的なゲートが必要な場合は、ホストのインターセプションフックを使用してください。
dashclaw_invoke は、範囲を限定した効果の接点です。DashClaw は登録済みの
機能設定を保持し、現在のポリシーに照らして正確な呼び出しを評価し、それを記録して、
承認を強制し、外部呼び出しの前に実行試行を 1 回だけアトミックに確保します。
承認とプランの許可は、先行するガード評価時ではなく、その確保時に消費されます。
実行が完了しても結果を記録できない場合、このツールは実行状態が不明であることを報告し、
再試行が安全だとは説明しません。まず外部システムの状態を照合してください。
振り返り(2 個) — 前提を記録し、最近のガバナンス対象アクションの台帳を確認します。
| ツール | 説明 |
|---|---|
dashclaw_assumption_record | アクションの根拠となる、未検証の前提を記録します |
dashclaw_decisions_recent | 最近のガバナンス対象アクションの台帳 |
エージェントの識別情報(1 個) — 識別されていないエージェントを、オペレーター承認のもとで登録済みの ID にペアリングします。
| ツール | 説明 |
|---|---|
dashclaw_pair | エージェント ID を登録します。鍵ペアをローカルに作成し、公開鍵を /api/pairings に送信します |
チームタスク(3 個) — チームタスクを作成し、エージェント間のタイムラインイベントを追加して、タスクの状態を更新します。
| ツール | 説明 |
|---|---|
dashclaw_task_create | チームタスクを作成します — 複数エージェントによる各 /team 実行につき 1 レコードです |
dashclaw_task_event | チームタスクのタイムラインにイベントを 1 件追加します(委任、返信、状態、承認が必要、結果、エラー、完了) |
dashclaw_task_update | チームタスクを更新します。状態遷移と保存済みのトランスポートセッション ID を更新します |
プラン(2 個) — オペレーターによる 1 枚のカードでのレビューに向けて事前チェック用のプランを送信し、そのレビュー状態を確認します。プレビューとレビューの応答は証拠であり、実際のアクションは再評価され、許可は実行クレーム時にのみ消費されます。
| ツール | 説明 |
|---|---|
dashclaw_plan_submit | 事前チェックレビュー用に順序付きのステップ一覧を送信します。承認されたステップは、実行クレーム時にのみ消費される、対象範囲と有効期限が限定された許可になります |
dashclaw_plan_status | 送信済みプラン全体および各ステップの判定を確認します |
DashClaw がゲートする stdio ツール(2 個)
ローカルの stdio
サーバー上で src/tools/index.ts により登録され、ガバナンス用ツール群と同じ DASHCLAW_URL + DASHCLAW_API_KEY の認証情報がある場合にのみ有効になります。
| ツール | 説明 |
|---|---|
dashclaw_status | DashClaw ゲートの設定と到達可能性を確認します |
export_dashclaw_evidence | DashClaw のガード/証拠メタデータを含むローカルの監査エントリーをエクスポートします |
リソース(3)
| URI | 説明 |
|---|---|
dashclaw://policies | 有効なポリシーセット |
dashclaw://agent/{agent_id}/history | 最近のアクション履歴(直近50件) |
dashclaw://status | インスタンスのヘルス状態と運用メトリクス |
設定
MCP クライアントの env ブロック(推奨。サーバープロセスに限定され、ターミナルからは見えません)またはシェルで設定します。注釈付きのテンプレートは .env.example にあります。
| CLI 引数 | 環境変数 | デフォルト | 説明 |
|---|---|---|---|
--url | DASHCLAW_URL | http://localhost:3000 | DashClaw インスタンスの URL — DASHCLAW_API_KEY と併用すると、ガバナンスツールセットが有効になります |
--key | DASHCLAW_API_KEY | (空) | API キー(oc_live_ プレフィックス) |
--agent-id | DASHCLAW_AGENT_ID | (空) | デフォルトのエージェント ID(空の場合、MCP の clientInfo.name から自動取得されます) |
DASHCLAW_MODE | authoritative | DashClaw のゲートモード(authoritative のみサポートされています) | |
DASHCLAW_LOCAL_HOME | <cwd>/.dashclaw-local | ローカル状態の保存場所(下記の「ストレージ」を参照) | |
DASHCLAW_TIMEOUT_MS | 30000 | DashClaw API リクエストのタイムアウト | |
DASHCLAW_LOCK_STALE_MS | 30000 | ローカル状態ファイルの古いファイルロックとみなすまでの時間 | |
DASHCLAW_AUDIT_MAX_ENTRIES | (無制限) | 保持する監査エントリの上限 |
CLI 引数は環境変数より優先されます。
注: このサーバーは
DASHCLAW_URLを読み取ります(DASHCLAW_BASE_URLではありません)。DashClaw リポジトリのフックと CLI はDASHCLAW_BASE_URLを読み取ります。
ストレージ
作業ディレクトリ内の .dashclaw-local/ にローカル優先で状態を保存します(DASHCLAW_LOCAL_HOME で変更できます)。標準の JSON 形式で、人が読みやすく、差分を確認でき、ネイティブ依存関係はありません。
| ファイル | 内容 |
|---|---|
state.json | ローカルのデフォルトワークスペース |
audit.log | DashClaw のエビデンスツールが読み取る、追記専用の JSONL 監査証跡 |
シークレットはここに書き込まれません。トークンは環境内に保持され、呼び出し時に読み取られます。
ライセンス
Apache-2.0。このパッケージには、上流の Apache-2.0 プロジェクトのコードが含まれています。帰属表示については NOTICE を参照してください。
リリース
mcp-server/package.json の version を更新した後、リポジトリのルートから次を実行します。
npm run release:mcp
1つのコマンドですべて実行でき、再実行しても常に安全です(公開済みの手順はスキップされます)。
server.jsonのバージョンをpackage.jsonに同期します(ファイルが変更された場合は、その変更をコミットしてください)。- npm に公開します — セキュリティキーによる 2FA のプロンプトが表示されると、ブラウザーが開きます。
mcp-publisherを使って公式 MCP Registry に公開します — 保存済みの GitHub トークンの期限が切れている場合は、デバイスフローのログインを再実行し(表示されたコードを github.com/login/device に入力してください)、再試行します。
前提条件(初回のみ):npm login と、modelcontextprotocol/registry releases から入手する公式の mcp-publisher バイナリです。無関係なパッケージにその名前が不正に使われているため、決して npm i -g mcp-publisher を実行しないでください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。