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 name | What it does |
|---|---|
jc_balance | Account balance + projected runway |
jc_list_workloads | List the account's workloads + last-24h joules |
jc_workload_logs | Recent logs for a named workload |
jc_workload_energy | Energy used by a workload over a time window |
jc_list_buckets | List Object Store buckets |
jc_list_databases | List JouleDB databases |
jc_list_models | Available inference models + tiers |
jc_inference_chat | Call /v1/chat/completions (echoes the joules used) |
jc_receipt_get | Fetch a signed receipt by ID |
jc_compliance_export | Trigger a compliance evidence pack export (CSRD / AI-Act / etc.) |
jc_deploy | Deploy / 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:
joulecloud://docs/overview— the docs landingjoulecloud://docs/api-reference— the API referencejoulecloud://docs/concepts/joules— the joule concept pagejoulecloud://account/balance— live balancejoulecloud://account/workloads— the workloads listjoulecloud://account/recent-receipts— last 50 receipts
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.