New:Socket for Asana Is Now Available.Learn more
Sign In

@dashclaw/mcp-server

Package Overview
Dependencies
Maintainers
1
Versions
13
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@dashclaw/mcp-server

MCP server for DashClaw governance — guard, record, invoke, discover capabilities, and read the decision ledger through the governance loop.

latest
Source
npmnpm
Version
3.1.1
Version published
Maintainers
1
Created
Source

@dashclaw/mcp-server

MCP server for DashClaw governance. Exposes 17 governance tools, 2 stdio-only support tools, and 3 read-only resources over Model Context Protocol — guard, record, invoke governed capabilities, wait for approvals, and read the decision ledger, all through the DashClaw governance loop. Works with Claude Code, Claude Desktop, Claude Managed Agents, and any MCP-compatible client.

The governance tools register only when DASHCLAW_URL and DASHCLAW_API_KEY are both set; without them the server registers nothing and warns on stderr if exactly one is present.

Quick Start

Claude Code / Cowork (stdio)

npx -y @dashclaw/mcp-server --url https://your-dashclaw.vercel.app --key oc_live_xxx --agent-id claude-code

Or add to your MCP config (.mcp.json for Claude Code, or 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 main chat: do not use stdio. Desktop runs local MCP servers on its bundled Node, which crashes this server. Use the OAuth custom connector instead — no local process, works in chat and Cowork.

About DASHCLAW_AGENT_ID: this is the name that shows up on /fleet, /decisions, and every other governance surface. If you omit it, the server auto-derives an agent_id from the MCP protocol's clientInfo.name (e.g. claude-ai for Claude Desktop, cursor-vscode for Cursor) so calls don't silently commingle with other agents — but a human-friendly name like claude-desktop is what you actually want for dashboard readability. Explicit configuration always wins over auto-derivation.

Claude Managed Agents (Streamable HTTP)

If you're running DashClaw, the MCP endpoint is built in at /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

Use the OAuth custom connector (next section) — it is the verified path for Desktop chat, web, and Cowork, and needs no install. The old one-click .mcpb bundle is retired: it ran the stdio server on Desktop's bundled Node, which crash-loops. If you still have a dashclaw extension installed from it, uninstall it (Settings → Extensions) before adding the connector.

Claude custom connector (remote, OAuth)

Self-hosted DashClaw is addable as a Claude custom connector with no API key in the UI — Claude's connector flow requires OAuth, not headers:

  • In Claude: Settings → Connectors → Add custom connector.
  • Paste https://<your-instance>/api/mcp.
  • Claude discovers /.well-known/oauth-protected-resource, registers via DCR, and opens your DashClaw login + a consent screen.
  • Authorize → the 17 governance tools appear, scoped to your workspace.

Works on Free/Pro/Max/Team/Enterprise (Free is capped at one custom connector). The legacy x-api-key path (Managed Agents) is unchanged.

Plugin (skills) via marketplace

To also load the DashClaw skills (governance protocol + platform intelligence) in the Claude app: Customize → Plugins → "+" → Add marketplace → github: ucsandman/DashClaw, then install the dashclaw plugin.

Tools (17 governance + 2 stdio support)

Grouped by domain. See src/tools.ts for the canonical definitions.

Core governance (9) — the guard / record / invoke loop plus discovery and session lifecycle.

ToolDescription
dashclaw_guardEvaluate policies before risky actions
dashclaw_recordLog actions to audit trail
dashclaw_invokeExecute governed capabilities (guard + run + record)
dashclaw_capabilities_listDiscover available APIs
dashclaw_policies_listSee active governance policies
dashclaw_wait_for_approvalBlock until a human resolves an approval
dashclaw_session_startRegister agent session
dashclaw_session_endClose agent session
dashclaw_session_retroRead the session's own defensibility retro (clean/review/flagged posture)

Session linkage: after dashclaw_session_start, the server auto-stamps that session's id onto every dashclaw_record in the same connection (stdio). Pass session_id on dashclaw_record to override, or to attribute explicitly on the HTTP transport (POST /api/mcp), where each request is stateless.

Retrospection (2) — record assumptions; recent governed-action ledger.

ToolDescription
dashclaw_assumption_recordRecord an unverified assumption underpinning an action
dashclaw_decisions_recentRecent governed-action ledger

Agent identity (1) — operator-approved pairing of an unidentified agent to a registered identity.

ToolDescription
dashclaw_pairEnroll agent identity: keypair locally, public key to /api/pairings

Team Tasks (3) — create a Team Task, append an inter-agent timeline event, update task status.

ToolDescription
dashclaw_task_createCreate a Team Task — one record per multi-agent /team run
dashclaw_task_eventAppend one event to a Team Task timeline (delegation, reply, status, approval_needed, result, error, done)
dashclaw_task_updateUpdate a Team Task: status transitions and stored transport session ids

Plans (2) — submit a preflight plan for one-card operator review; poll its verdict before executing.

ToolDescription
dashclaw_plan_submitSubmit an ordered step list for preflight review; approved steps become single-use grants
dashclaw_plan_statusCheck a submitted plan's overall and per-step verdict

DashClaw-gated stdio tools (2)

Registered by src/tools/index.ts on the local stdio server only, gated on the same DASHCLAW_URL + DASHCLAW_API_KEY credentials as the governance set:

ToolDescription
dashclaw_statusCheck DashClaw gate configuration and reachability
export_dashclaw_evidenceExport local audit entries carrying DashClaw guard/evidence metadata

Resources (3)

URIDescription
dashclaw://policiesActive policy set
dashclaw://agent/{agent_id}/historyRecent action history (last 50)
dashclaw://statusInstance health + operational metrics

Configuration

Set these in your MCP client's env block (preferred — scoped to the server process, invisible to your terminals) or your shell. The annotated template lives in .env.example.

CLI ArgEnv VarDefaultDescription
--urlDASHCLAW_URLhttp://localhost:3000DashClaw instance URL — with DASHCLAW_API_KEY, enables the governance tool set
--keyDASHCLAW_API_KEY(empty)API key (oc_live_ prefix)
--agent-idDASHCLAW_AGENT_ID(empty)Default agent ID (auto-derived from MCP clientInfo.name when empty)
DASHCLAW_MODEauthoritativeDashClaw gate mode (only authoritative is supported)
DASHCLAW_LOCAL_HOME<cwd>/.dashclaw-localWhere local state lives (see Storage below)
DASHCLAW_TIMEOUT_MS30000DashClaw API request timeout
DASHCLAW_LOCK_STALE_MS30000Stale file-lock threshold for local state files
DASHCLAW_AUDIT_MAX_ENTRIES(unlimited)Cap retained audit entries

CLI args take precedence over environment variables.

Note: This server reads DASHCLAW_URL (not DASHCLAW_BASE_URL); the hooks and CLI in the DashClaw repo read DASHCLAW_BASE_URL.

Storage

Local-first state under .dashclaw-local/ in the working directory (override with DASHCLAW_LOCAL_HOME). Plain JSON — human-readable, diffable, zero native dependencies:

FileHolds
state.jsonThe local default workspace
audit.logAppend-only JSONL audit trail read by the DashClaw evidence tools

Secrets are never written here — tokens stay in the environment, read at call time.

License

Apache-2.0. This package incorporates code from an upstream Apache-2.0 project — see NOTICE for the attribution.

Releasing

After bumping version in mcp-server/package.json, run from the repo root:

npm run release:mcp

One command does everything, and re-running is always safe (already-published steps are skipped):

  • Syncs server.json versions to package.json (commit the change if it edits the file).
  • Publishes to npm — your browser opens for the security-key 2FA prompt.
  • Publishes to the official MCP Registry via mcp-publisher — if the saved GitHub token expired, it re-runs the device-flow login (enter the printed code at github.com/login/device) and retries.

Prereqs (one-time): npm login, and the official mcp-publisher binary from modelcontextprotocol/registry releasesnever npm i -g mcp-publisher, that name is squatted by an unrelated package.

Keywords

mcp

FAQs

Package last updated on 08 Aug 2026

Related posts