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.
One API behind the console and MCP. An agent acts with its person's role, never more.
PR changes, config changes, invites, spending and deleting the workspace always need a confirmation.
There is no merge tool. Merging stays a decision for your team on GitHub.
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
- 1Create a token below with the scopes this agent should have.
- 2Add the server to your client with one of these snippets.
- 3Ask your agent something like “what needs me in Darwin today?”
claude mcp add dovel \ --env DOVEL_API_TOKEN=dvl_live_… \ -- npx -y @dovel-labs/dovel mcp
{
"mcpServers": {
"dovel": {
"command": "npx",
"args": ["-y", "@dovel-labs/dovel", "mcp"],
"env": {
"DOVEL_API_URL": "https://api.dovellabs.si",
"DOVEL_API_TOKEN": "dvl_live_…"
}
}
}
}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
| Token | Acts for | Scopes | Confirm risky | Last used | Calls, 7 days | Actions |
|---|---|---|---|---|---|---|
Maya's Claude CodeClaude Code · tok_7Hq2 | @maya | readprs:writeruns:write | 39m ago | 214 | ||
Sam's CursorCursor · tok_2Lm9 | @sam | readupdates:write | 16h ago | 63 | ||
Release botGitHub Actions · tok_9Xc1 | @sam | read | 6h ago | 28 |
Tools
23 tools · 10 read, 13 write · one for every console action but those below
| Tool | Kind | What it does | Console action | Confirmation | Scope |
|---|---|---|---|---|---|
| dovel_get_overview | Read | Workspace metrics, pipeline and repository health | Overview | None | read |
| dovel_list_needs_attention | Read | Everything waiting on a person, with reasons and next actions | Needs you | None | read |
| dovel_list_repositories | Read | Connected repositories with readiness and open work | Repositories | None | read |
| dovel_get_repository | Read | Knowledge, readiness, CI jobs and settings of one repository | Repository | None | read |
| dovel_list_updates | Read | Dependency updates with decision, validation and PR state | Updates | None | read |
| dovel_get_update | Read | The full evidence trail of one update, including the patch | Update detail | None | read |
| dovel_list_api_changes | Read | Verified API changes, filterable to those affecting you | API changes | None | read |
| dovel_list_pull_requests | Read | Darwin's pull requests and their CI verdicts | Pull requests | None | read |
| dovel_list_runs | Read | Runs with their outcome and log | Runs | None | read |
| dovel_get_usage | Read | Tested PRs against the plan allowance, model and CI usage | Usage | None | read |
| dovel_trigger_run | Write | Start a run for one repository now | Run now | Unless scope allows | runs:write |
| dovel_mark_pr_ready | Write | Mark a draft PR ready for review (never merges) | Mark ready | Always | prs:write |
| dovel_close_pr | Write | Close one of Darwin's PRs with a reason | Close PR | Always | prs:write |
| dovel_request_ci_repair | Write | Ask for the one CI repair round on a regression | Repair CI | Unless scope allows | prs:write |
| dovel_open_held_update | Write | Propose a held update as a draft PR stating its concern | Open as draft | Always | updates:write |
| dovel_ignore_update | Write | Ignore a version, a line or a package | Ignore | Unless scope allows | updates:write |
| dovel_propose_config_change | Write | Open a PR changing .github/dovel.json | Save settings | Always | config:write |
| dovel_update_workspace | Write | Rename the workspace or change its default schedule | Save workspace settings | Always | settings:write |
| dovel_pause_workspace | Write | Pause or resume every scheduled run | Pause all runs | Always | settings:write |
| dovel_invite_member | Write | Invite someone to the workspace with a role | Invite | Always | members:write |
| dovel_add_repositories | Write | Add repositories to the Darwin GitHub App installation | Choose repositories | Always | repos:write |
| dovel_delete_workspace | Write | Delete the workspace and its records; cannot be undone | Delete workspace | Always | workspace:admin |
| dovel_approve_extra_prs | Write | Allow tested PRs beyond the plan ($5 each) | Approve extra PRs | Always | billing:write |
Console only, by design
Agent tokens, model keys and roles have no tool
Recent agent activity
From the audit log