MC
Agents & MCP

Your agents, your access.

Connect Claude Code, Cursor or any MCP client to Darwin. An agent can see and do everything you can in this console, through the same API and with your role, except manage agent tokens, model keys and roles. Risky actions still wait for your confirmation, and nothing is ever merged.

Same access as you

One API behind the console and MCP. An agent acts with its person's role, never more.

Asks before risky actions

PR changes, config changes, invites, spending and deleting the workspace always need a confirmation.

Never merges

There is no merge tool. Merging stays a decision for your team on GitHub.

Every call is logged

The audit log names the agent, the person it acts for and the tool it called.

Connect an MCP client

The server is the @dovel-labs/dovel package, run by your client over stdio

  1. 1
    Create a token below with the scopes this agent should have.
  2. 2
    Add the server to your client with one of these snippets.
  3. 3
    Ask your agent something like “what needs me in Darwin today?”
Claude Code
claude mcp add dovel \
  --env DOVEL_API_TOKEN=dvl_live_… \
  -- npx -y @dovel-labs/dovel mcp
Cursor and VS Code · mcp.json
{
  "mcpServers": {
    "dovel": {
      "command": "npx",
      "args": ["-y", "@dovel-labs/dovel", "mcp"],
      "env": {
        "DOVEL_API_URL": "https://api.dovellabs.si",
        "DOVEL_API_TOKEN": "dvl_live_…"
      }
    }
  }
}
Environment
export DOVEL_API_URL=https://api.dovellabs.si
export DOVEL_API_TOKEN=dvl_live_…   # create one below

Guardrails

Enforced by the API, so they hold for every client

  • No merge toolDarwin proposes and your team merges, in the console and over MCP alike.
  • Risky tools confirmTools marked Always ask the person the token acts for, every time.
  • Secrets are write-onlyModel keys and tokens can be set or replaced. No tool ever returns their value.
  • Agent identity in the audit logEach call is recorded as the agent, on behalf of its person.
  • Scoped, revocable tokensA token carries only the scopes you grant and stops working the moment you revoke it.
  • Tokens are managed here onlyNo tool creates, widens or revokes a token, so an agent can never grant itself more access.

Agent tokens

3 active · each acts for one person

TokenActs forScopesConfirm riskyLast usedCalls, 7 daysActions
Maya's Claude CodeClaude Code · tok_7Hq2
@maya
readprs:writeruns:write
39m ago214
Sam's CursorCursor · tok_2Lm9
@sam
readupdates:write
16h ago63
Release botGitHub Actions · tok_9Xc1
@sam
read
6h ago28

Tools

23 tools · 10 read, 13 write · one for every console action but those below

ToolKindWhat it doesConsole actionConfirmationScope
dovel_get_overviewReadWorkspace metrics, pipeline and repository healthOverviewNoneread
dovel_list_needs_attentionReadEverything waiting on a person, with reasons and next actionsNeeds youNoneread
dovel_list_repositoriesReadConnected repositories with readiness and open workRepositoriesNoneread
dovel_get_repositoryReadKnowledge, readiness, CI jobs and settings of one repositoryRepositoryNoneread
dovel_list_updatesReadDependency updates with decision, validation and PR stateUpdatesNoneread
dovel_get_updateReadThe full evidence trail of one update, including the patchUpdate detailNoneread
dovel_list_api_changesReadVerified API changes, filterable to those affecting youAPI changesNoneread
dovel_list_pull_requestsReadDarwin's pull requests and their CI verdictsPull requestsNoneread
dovel_list_runsReadRuns with their outcome and logRunsNoneread
dovel_get_usageReadTested PRs against the plan allowance, model and CI usageUsageNoneread
dovel_trigger_runWriteStart a run for one repository nowRun nowUnless scope allowsruns:write
dovel_mark_pr_readyWriteMark a draft PR ready for review (never merges)Mark readyAlwaysprs:write
dovel_close_prWriteClose one of Darwin's PRs with a reasonClose PRAlwaysprs:write
dovel_request_ci_repairWriteAsk for the one CI repair round on a regressionRepair CIUnless scope allowsprs:write
dovel_open_held_updateWritePropose a held update as a draft PR stating its concernOpen as draftAlwaysupdates:write
dovel_ignore_updateWriteIgnore a version, a line or a packageIgnoreUnless scope allowsupdates:write
dovel_propose_config_changeWriteOpen a PR changing .github/dovel.jsonSave settingsAlwaysconfig:write
dovel_update_workspaceWriteRename the workspace or change its default scheduleSave workspace settingsAlwayssettings:write
dovel_pause_workspaceWritePause or resume every scheduled runPause all runsAlwayssettings:write
dovel_invite_memberWriteInvite someone to the workspace with a roleInviteAlwaysmembers:write
dovel_add_repositoriesWriteAdd repositories to the Darwin GitHub App installationChoose repositoriesAlwaysrepos:write
dovel_delete_workspaceWriteDelete the workspace and its records; cannot be undoneDelete workspaceAlwaysworkspace:admin
dovel_approve_extra_prsWriteAllow tested PRs beyond the plan ($5 each)Approve extra PRsAlwaysbilling:write

Console only, by design

Agent tokens, model keys and roles have no tool

Create or revoke agent tokensNot an MCP tool: an agent could grant itself more access.
Set or replace model keysNot an MCP tool: secrets are write-only, and only people write them.
Change a member's roleNot an MCP tool: an agent could raise the role of the person it acts for.

Recent agent activity

From the audit log

Full audit log
Listed items needing attention · workspaceMaya's Claude Code for @maya · 39m ago · 7 items returned
dovel_list_needs_attention
Requested to mark PR ready · acme/payments-api#184Maya's Claude Code for @maya · 38m ago · Confirmation shown to maya; approved
dovel_mark_pr_ready
Ignored a version · acme/data-pipeline · numpy 2.4.xSam's Cursor for @sam · 16h ago · Scope: 2.4.x
dovel_ignore_update