Overnite over MCP

Overnite is an MCP server too: from Claude, Cursor, VS Code or any other MCP client you can list your workspaces, start an agent on a task, wait for it, answer its questions, stop it and get the pull request it opened - the same things the cockpit does, as the same person.

Two ways in:

Remote (recommended)Local
Endpointhttps://mcp.overnite.dev/mcp (Streamable HTTP)npx -y @overnite/mcp (stdio)
Signs in withOAuth: your GitHub sign-in, then Allow onceAn API key from Settings → API keys (ovn_…)
RevokeSettings → API keys → Connected apps → DisconnectSettings → API keys → Revoke

Setup

Claude Desktop and claude.ai

Remote: Settings → Connectors → Add custom connector, name it Overnite, URL:

https://mcp.overnite.dev/mcp

Claude opens Overnite's sign-in; press Allow Claude. Nothing else to configure.

Local, in claude_desktop_config.json (Settings → Developer → Edit Config):

{
  "mcpServers": {
    "overnite": {
      "command": "npx",
      "args": ["-y", "@overnite/mcp"],
      "env": { "OVERNITE_API_KEY": "ovn_..." }
    }
  }
}

Claude Code

claude mcp add --transport http overnite https://mcp.overnite.dev/mcp
# then, inside claude: /mcp -> overnite -> Authenticate

or with a key: claude mcp add overnite -e OVERNITE_API_KEY=ovn_... -- npx -y @overnite/mcp

Cursor

~/.cursor/mcp.json (every project) or .cursor/mcp.json (one):

{
  "mcpServers": {
    "overnite": { "url": "https://mcp.overnite.dev/mcp" }
  }
}

Local:

{
  "mcpServers": {
    "overnite": {
      "command": "npx",
      "args": ["-y", "@overnite/mcp"],
      "env": { "OVERNITE_API_KEY": "ovn_..." }
    }
  }
}

VS Code

.vscode/mcp.json, or MCP: Add Server from the command palette:

{
  "servers": {
    "overnite": { "type": "http", "url": "https://mcp.overnite.dev/mcp" }
  }
}

Local, with the key asked for once and kept in VS Code's secret storage:

{
  "inputs": [{ "type": "promptString", "id": "overnite-key", "description": "Overnite API key", "password": true }],
  "servers": {
    "overnite": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "@overnite/mcp"],
      "env": { "OVERNITE_API_KEY": "${input:overnite-key}" }
    }
  }
}

Tools

ToolArgumentsDoes
list_workspaces-your workspaces and their state
create_workspacerepo (owner/name or URL), branch?a workspace on a repository the GitHub App is installed on; its machine starts
spawn_agentworkspace, kind (claude · codex · opencode · gemini · kimi), task, autonomy? (auto · ask)starts the workspace if it is stopped, then the agent, in its own worktree on ovn/<agent id>
read_agentid, lines?state, the question it is asking, the end of its screen, its pull requests
wait_agentid, until? (settled · blocked · idle · exited), timeout_seconds? (≤ 600)returns when it gets there or on time, saying which
answer_agentid, textanswers a blocked agent (a choice's number or words, or free text), or sends a message
stop_agentidstops it; its branch and commits stay
list_prsworkspace?, state? (open · all)pull requests from your agents' branches

A typical turn: "Start Claude on aytaa/overnite to fix the flaky schedule test and open a PR" - list_workspaces → spawn_agent → wait_agent → (read_agent → answer_agent → wait_agent)* → list_prs.

wait_agent counts settled and idle only once it has seen the agent working, or after 15 seconds: an agent just started or just answered still reads idle or blocked for a moment. It sends MCP progress notifications while it waits, so a client's request timer does not give up on a long wait.

What it can reach

Every tool is one or two calls to /v1 with your token - an OAuth access token or your API key - so it can do exactly what you can in the cockpit and nothing more: no other person's workspaces, no keys, no connectors' tokens. A token cannot make, list or revoke API keys, and cannot let another app in; those need a signed-in browser. Pull requests come from GitHub, asked with the account you signed in with.

Troubleshooting

  • 401 with invalid_token - the access token expired and the client did not refresh, or the app was disconnected. Reconnect from the client.
  • runtime_offline from spawn_agent - the workspace came up but its daemon has not connected; the tool retries for ~40 s, then says so. Try again.
  • git_not_connected from list_prs - sign in to the cockpit with GitHub again.
  • The local server exits at once - it prints why on stderr: OVERNITE_API_KEY unset, not an ovn_ key, or refused by the api.