MCP server

Joule Cloud exposes a Model Context Protocol (MCP) server. Connect Claude Desktop, Cursor, Zed, or any MCP client and let your LLM use Joule Cloud as a tool: query account balance, list workloads, fetch receipts, run inference, search models.

Why an MCP server

Agentic tooling increasingly wants to call infrastructure on behalf of a developer. Rather than every IDE writing a Joule Cloud SDK wrapper, we expose a small MCP server. Your AI assistant calls it directly; you keep one token; the surface is auditable.

Install

The MCP server ships as a single binary, same release stream as jc:

# macOS / Linux
curl -fsSL https://invisible.openie.sh/install.sh | sh

# this installs both `jc` and `jc-mcp`

Configure your client

Claude Desktop

# ~/Library/Application Support/Claude/claude_desktop_config.json (mac)
# %APPDATA%\Claude\claude_desktop_config.json (Windows)
{
  "mcpServers": {
    "joule-cloud": {
      "command": "jc-mcp",
      "env": { "JC_API_KEY": "jc_..." }
    }
  }
}

Cursor / Zed / any STDIO MCP client

{
  "mcpServers": {
    "joule-cloud": {
      "command": "jc-mcp",
      "args": [],
      "env": { "JC_API_KEY": "jc_..." }
    }
  }
}

Exposed tools

Tool nameWhat it does
jc_balanceAccount balance + projected runway
jc_list_workloadsList the account's workloads + last-24h joules
jc_workload_logsRecent logs for a named workload
jc_workload_energyEnergy used by a workload over a time window
jc_list_bucketsList Object Store buckets
jc_list_databasesList JouleDB databases
jc_list_modelsAvailable inference models + tiers
jc_inference_chatCall /v1/chat/completions (echoes the joules used)
jc_receipt_getFetch a signed receipt by ID
jc_compliance_exportTrigger a compliance evidence pack export (CSRD / AI-Act / etc.)
jc_deployDeploy / update a workload from a provided invisible.hcl string

Exposed resources

The MCP server also exposes read-only resources you can attach to a model context:

Permissions

The MCP server uses the token in JC_API_KEY. Best practice: mint a separate, scoped token for the MCP server only.

jc token create --scope inference,read --label "mcp-claude-desktop"

To let your assistant deploy or change workloads, scope to deploy. To let it spend money on top-ups, scope to billing-admin.

Audit log

Every MCP call appears in the portal's audit log with the tool name, arguments, and token used. Lets you see exactly what your IDE's AI did on your behalf.

Self-hosted via HTTP (alternative)

For shared-team scenarios, run jc-mcp as an HTTP+SSE server:

jc-mcp --serve-http --port 8765
# then in your client config:
{ "mcpServers": { "joule-cloud": { "url": "http://localhost:8765" } } }

Source

The MCP server is open-source as part of invisible-cli at git.openie.sh/openie/invisible-infrastructure. Contributions welcome.