Skip to main content
Nubo runs a hosted Model Context Protocol server at mcp.withnubo.com. Add it to an MCP client like Claude Code, Claude Desktop, or Cursor and you can operate your account in natural language: inspect Projects, Spaces, and Frames, trigger deployments, read build and runtime logs, and manage environment variables. Under the hood it’s a thin pass-through over Nubo’s public /v2 API. Every call runs under your own token and your own permissions; the server adds no privileged path of its own and holds no secrets.

Connect

Point your MCP client at:
https://mcp.withnubo.com/mcp
The first request comes back 401 with an OAuth challenge, and your client takes it from there:
  1. The client registers itself with Nubo’s authorization server automatically. There’s no client ID or secret to configure.
  2. Your browser opens and you sign in with GitHub, the same sign-in the dashboard uses.
  3. If your account has MFA enabled, you complete that step too.
  4. The client receives a scoped access token for your account and starts making tool calls.
Access tokens last one hour. Your client renews them in the background with a refresh token that lasts 30 days, so you won’t re-do the browser dance every session.

Tools

ToolWhat it does
whoamiShow the signed-in account: email, plan, and status.
list_projectsList the Projects you can access.
list_spacesList the Spaces in a Project.
list_framesList the Frames in a Space.
get_frameGet a single Frame’s details.
list_deploymentsList a Frame’s deployments, newest first.
get_build_logsGet the build logs for a specific deployment.
get_runtime_logsGet recent runtime logs for a Frame.
get_frame_metricsGet resource usage metrics for a Frame.
list_variablesList the environment variables defined on a Frame.
list_repositoriesList the GitHub repositories you can deploy from.
deploy_frameTrigger a new deployment using the Frame’s current configuration.
start_frameStart a stopped Frame.
stop_frameStop a running Frame.
set_variableCreate or update an environment variable on a Frame.
create_projectCreate a new Project.
create_spaceCreate a new Space in a Project.
create_frameCreate a new Frame in a Space from a GitHub repository.
list_teamsList the teams you belong to.

How access is scoped

The token your MCP client holds is not a full personal access token. Three things bound what it can do:
  • OAuth scopes. Tokens can carry nubo:read, nubo:deploy, and nubo:write. Read-only calls need nubo:read; anything that changes state (deploys, variables, creating or stopping things) needs nubo:write. A client that doesn’t ask for scopes gets nubo:read only.
  • A limited API surface. MCP tokens work on your Projects and everything inside them (Spaces, Frames, deployments, logs, metrics, variables), plus read-only access to your linked repositories, your account profile, and your teams. The rest of the API rejects them, so an MCP token can’t touch billing or account settings.
  • Your own permissions. The server forwards your token to the API, which enforces the same ownership and access rules as any other request. Nothing is visible or changeable through MCP that you couldn’t reach from the dashboard.

Run it locally instead

Prefer a local server over the hosted one? Install the nubo-mcp binary and sign in:
curl -fsSL https://dl.withnubo.com/nubo-mcp/install.sh | bash
nubo-mcp login
nubo-mcp login opens your browser and stores a credential on your machine, the same one the CLI uses. Then register the server with your client. For Claude Code:
claude mcp add nubo -- nubo-mcp stdio
On a headless box, skip the browser: set NUBO_TOKEN to a personal access token and the local server uses it instead of the stored credential. See API authentication for how to create one.

CLI

Browse your account from the terminal

API authentication

Personal access tokens for scripts and integrations

Frames

The unit of deployment the MCP tools operate on

Environment variables

What set_variable and list_variables manage