MCP

Control Plane MCP

The control plane MCP server exposes 81 tools that map 1-to-1 with the REST API. Every tool runs through the same shared action layer, so authentication, authorization, and validation are identical on both transports.

Connection

Two ways to connect — use whichever fits your client:

MethodURL / CommandAuthBest for
Remote (HTTP)https://api.oblien.com/mcpX-Client-ID + X-Client-Secret headersWeb-based MCP clients, CI pipelines, remote agents
Local (stdio)npx oblien-mcpSaved credentials or env varsIDE integrations (VS Code, Cursor)

Both methods hit the same 81 tools with identical auth and validation.

Remote — Streamable HTTP

The control plane MCP server is available as a remote HTTP endpoint. Any MCP client that supports Streamable HTTP transport can connect directly — no local install required.

Endpoint: https://api.oblien.com/mcp

Authentication: Include your API credentials as HTTP headers on every request:

X-Client-ID: your-client-id
X-Client-Secret: your-client-secret

Or use a bearer token:

Authorization: Bearer <token>

Example — list tools:

curl -X POST https://api.oblien.com/mcp \
  -H "X-Client-ID: your-client-id" \
  -H "X-Client-Secret: your-client-secret" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/list",
    "params": {}
  }'

MCP client config (HTTP transport):

{
  "mcpServers": {
    "oblien": {
      "url": "https://api.oblien.com/mcp",
      "headers": {
        "X-Client-ID": "your-client-id",
        "X-Client-Secret": "your-client-secret"
      }
    }
  }
}

Local — Stdio

Run the MCP server as a local subprocess. This is the standard for IDE integrations — the server reads stdin/writes stdout.

Setup credentials (one-time):

npx oblien config set --client-id "your-client-id" --client-secret "your-client-secret"

Credentials are stored in ~/.oblien/credentials.json (mode 0600, private to your user). Once saved, oblien-mcp picks them up automatically.

Run the server:

npx oblien-mcp

Alternatively, pass credentials via environment variables (useful for CI or ephemeral environments):

export OBLIEN_CLIENT_ID="your-client-id"
export OBLIEN_CLIENT_SECRET="your-client-secret"
npx oblien-mcp

Credential priority: environment variables override the saved config file.

IDE configuration

VS Code (Claude / Copilot)

Add to your .vscode/mcp.json:

{
  "servers": {
    "oblien": {
      "command": "npx",
      "args": ["oblien-mcp"]
    }
  }
}

If you've already run npx oblien config set, no env block is needed — credentials are read from ~/.oblien/credentials.json automatically.

Alternatively, pass credentials explicitly:

{
  "servers": {
    "oblien": {
      "command": "npx",
      "args": ["oblien-mcp"],
      "env": {
        "OBLIEN_CLIENT_ID": "your-client-id",
        "OBLIEN_CLIENT_SECRET": "your-client-secret"
      }
    }
  }
}

Cursor

Add to your Cursor MCP settings:

{
  "mcpServers": {
    "oblien": {
      "command": "npx",
      "args": ["oblien-mcp"]
    }
  }
}

Or with explicit env vars:

{
  "mcpServers": {
    "oblien": {
      "command": "npx",
      "args": ["oblien-mcp"],
      "env": {
        "OBLIEN_CLIENT_ID": "your-client-id",
        "OBLIEN_CLIENT_SECRET": "your-client-secret"
      }
    }
  }
}

Tool reference

All 81 tools are listed below, grouped by category. Each tool maps to a REST endpoint documented in the API Reference.

Tools

Core (10 tools)

Workspace CRUD, quota, and usage overview.

ToolDescriptionREST equivalent
workspace_createCreate a new workspacePOST /workspaces
workspace_listList workspaces (with filters)GET /workspaces
workspace_getGet a single workspaceGET /workspaces/:id
workspace_updateUpdate workspace settingsPUT /workspaces/:id
workspace_deleteDelete a workspaceDELETE /workspaces/:id
workspace_imagesList available base imagesGET /workspaces/images
workspace_usage_globalGlobal usage across all workspacesGET /workspaces/usage
workspace_activityRecent activity logGET /workspaces/activity
workspace_quotaAccount quota and limitsGET /workspaces/quota
workspace_estimateEstimate cost before creatingGET /workspaces/estimate

Overlay / Filesystem (6 tools)

Read, write, and manage the workspace overlay filesystem.

ToolDescriptionREST equivalent
workspace_overlay_listList files in overlayGET /workspaces/:id/overlay
workspace_overlay_usageOverlay disk usageGET /workspaces/:id/overlay/usage
workspace_overlay_readRead a file from overlayGET /workspaces/:id/overlay/files
workspace_overlay_writeWrite a file to overlayPOST /workspaces/:id/overlay/files
workspace_overlay_resizeResize overlay partitionPUT /workspaces/:id/overlay/resize
workspace_overlay_syncSync overlay to persistent storagePOST /workspaces/:id/overlay/sync

Power (5 tools)

Start, stop, pause, resume, and restart workspaces.

ToolDescriptionREST equivalent
workspace_startStart a stopped workspacePOST /workspaces/:id/start
workspace_stopStop a running workspacePOST /workspaces/:id/stop
workspace_restartRestart a workspacePOST /workspaces/:id/restart
workspace_pausePause (suspend) a workspacePOST /workspaces/:id/pause
workspace_resumeResume a paused workspacePOST /workspaces/:id/resume

Lifecycle (6 tools)

Control workspace lifetime, TTL, and permanent/temporary status.

ToolDescriptionREST equivalent
workspace_lifecycle_getGet lifecycle stateGET /workspaces/:id/lifecycle
workspace_lifecycle_permanentMake workspace permanentPOST /workspaces/:id/lifecycle/permanent
workspace_lifecycle_temporaryMake workspace temporaryPOST /workspaces/:id/lifecycle/temporary
workspace_lifecycle_ttlSet TTL durationPUT /workspaces/:id/lifecycle/ttl
workspace_pingRenew TTL (keep alive)POST /workspaces/:id/ping
workspace_lifecycle_destroyDestroy and clean upDELETE /workspaces/:id/lifecycle

Logs (5 tools)

Retrieve and manage workspace logs.

ToolDescriptionREST equivalent
workspace_logsGet recent logsGET /workspaces/:id/logs
workspace_logs_clearClear log bufferDELETE /workspaces/:id/logs
workspace_logs_listList log filesGET /workspaces/:id/logs/list
workspace_logs_fileGet a specific log fileGET /workspaces/:id/logs/file/:name
workspace_logs_bootGet boot logs (SSE stream)GET /workspaces/:id/logs/stream/boot

Metrics (3 tools)

System info, config, and real-time stats.

ToolDescriptionREST equivalent
workspace_statsCPU, memory, disk statsGET /workspaces/:id/stats
workspace_infoSystem informationGET /workspaces/:id/info
workspace_configRunning configurationGET /workspaces/:id/config

Network (3 tools)

Network policy and outbound IP configuration.

ToolDescriptionREST equivalent
workspace_network_getGet network settingsGET /workspaces/:id/network
workspace_network_updateUpdate network policyPATCH /workspaces/:id/network
workspace_network_ipAssign outbound IPPOST /workspaces/:id/network/ip

Snapshots & Archives (7 tools)

Point-in-time snapshots and long-term archives.

ToolDescriptionREST equivalent
workspace_snapshot_createCreate a snapshotPOST /workspaces/:id/snapshot
workspace_snapshot_restoreRestore from snapshotPOST /workspaces/:id/restore
workspace_archive_createCreate an archivePOST /workspaces/:id/archives
workspace_archive_listList archivesGET /workspaces/:id/archives
workspace_archive_getGet archive detailsGET /workspaces/:id/archives/:archiveId
workspace_archive_deleteDelete an archiveDELETE /workspaces/:id/archives/:archiveId
workspace_archive_delete_allDelete all archivesDELETE /workspaces/:id/archives

SSH (5 tools)

SSH access management.

ToolDescriptionREST equivalent
workspace_ssh_statusGet SSH statusGET /workspaces/:id/ssh
workspace_ssh_enableEnable SSHPOST /workspaces/:id/ssh/enable
workspace_ssh_disableDisable SSHPOST /workspaces/:id/ssh/disable
workspace_ssh_passwordSet SSH passwordPOST /workspaces/:id/ssh/password
workspace_ssh_keySet authorized keyPOST /workspaces/:id/ssh/key

Workloads (11 tools)

Manage long-running processes inside workspaces.

ToolDescriptionREST equivalent
workspace_workload_createCreate a workloadPOST /workspaces/:id/workloads
workspace_workload_listList workloadsGET /workspaces/:id/workloads
workspace_workload_getGet workload detailsGET /workspaces/:id/workloads/:wid
workspace_workload_updateUpdate a workloadPATCH /workspaces/:id/workloads/:wid
workspace_workload_deleteDelete a workloadDELETE /workspaces/:id/workloads/:wid
workspace_workload_delete_allDelete all workloadsDELETE /workspaces/:id/workloads
workspace_workload_startStart a workloadPOST /workspaces/:id/workloads/:wid/start
workspace_workload_stopStop a workloadPOST /workspaces/:id/workloads/:wid/stop
workspace_workload_statusGet workload statusGET /workspaces/:id/workloads/:wid/status
workspace_workload_logsGet workload logsGET /workspaces/:id/workloads/:wid/logs
workspace_workload_statsGet workload resource statsGET /workspaces/:id/workloads/:wid/stats

Metadata (2 tools)

Custom key-value metadata on workspaces.

ToolDescriptionREST equivalent
workspace_metadata_getGet all metadataGET /workspaces/:id/metadata
workspace_metadata_updateSet/update metadataPATCH /workspaces/:id/metadata

Resources (2 tools)

CPU, memory, and disk resource allocation.

ToolDescriptionREST equivalent
workspace_resources_getGet resource allocationGET /workspaces/:id/resources
workspace_resources_updateUpdate resources (hot resize)PATCH /workspaces/:id/resources

Usage (6 tools)

Per-workspace billing, usage tracking, and credits.

ToolDescriptionREST equivalent
workspace_usageGet usage breakdownGET /workspaces/:id/usage
workspace_usage_totalsGet usage totalsGET /workspaces/:id/usage/totals
workspace_usage_tracking_startStart usage trackingPOST /workspaces/:id/usage/tracking/start
workspace_usage_tracking_stopStop usage trackingPOST /workspaces/:id/usage/tracking/stop
workspace_credits_chartCredits usage chart dataGET /workspaces/:id/usage/credits/chart
workspace_usage_wipeWipe usage dataDELETE /workspaces/:id/usage

Public Access (3 tools)

Expose workspace ports to the internet.

ToolDescriptionREST equivalent
workspace_public_access_listList exposed portsGET /workspaces/:id/public-access
workspace_public_access_exposeExpose a port publiclyPOST /workspaces/:id/public-access
workspace_public_access_revokeRevoke public accessDELETE /workspaces/:id/public-access/:port

Runtime API Access (6 tools)

Enable and manage the HTTP API running inside workspaces.

ToolDescriptionREST equivalent
workspace_api_access_statusGet API access statusGET /workspaces/:id/runtime-api-access
workspace_api_access_enableEnable Runtime APIPOST /workspaces/:id/runtime-api-access/enable
workspace_api_access_disableDisable Runtime APIPOST /workspaces/:id/runtime-api-access/disable
workspace_api_access_tokenGet gateway connection tokenGET /workspaces/:id/runtime-api-access/token
workspace_api_access_token_rotateRotate connection tokenPOST /workspaces/:id/runtime-api-access/token
workspace_api_access_token_rawGet raw connection tokenGET /workspaces/:id/runtime-api-access/token/raw

Details (1 tool)

ToolDescriptionREST equivalent
workspace_detailsFull workspace details (combined info)GET /workspaces/:id/details

Namespaces

All tools operate within the authenticated user's namespace by default. To target a specific namespace, pass namespace as a tool parameter:

{
  "name": "workspace_list",
  "arguments": {
    "namespace": "team-backend"
  }
}

The API key must have permission on the target namespace.

Error handling

Tool calls that fail return a standard MCP error object:

{
  "isError": true,
  "content": [
    {
      "type": "text",
      "text": "{\"error\":\"workspace_not_found\",\"message\":\"Workspace ws_abc123 not found\"}"
    }
  ]
}

HTTP status codes from the underlying API are mapped to descriptive error messages. Common errors:

ErrorCause
auth_failedMissing or invalid credentials
workspace_not_foundInvalid workspace ID or no access
forbiddenKey lacks required scope
quota_exceededAccount resource limit reached