OXYGENOxygen/ Docs
Surfaces

Claude Code

Run Oxygen from Claude Code — the CLI in your terminal, plus the optional hosted MCP connector.

The oxygen CLI is the primary path here: full command surface, agent skills, and --json envelopes. The hosted MCP connector is optional and additive.

What works here

CapabilityClaude Code
oxygen CLI in the terminalYes — the primary surface
Agent skills (--agents claude-code)Yes — installed into ~/.claude/skills
Hosted MCP connector (OAuth)Yes — optional
ui:// widgetsNo — the connector detects Claude Code and strips the inline widget block automatically

Setup — CLI

npm install -g @oxygen-agent/cli
oxygen login
oxygen skills install --agents claude-code --json

Requires Node.js >=22.22.0 and npm >=10.9.0. oxygen login opens a browser and stores credentials for the active profile. oxygen skills install writes the Oxygen skills into ~/.claude/skills (context first, table first, dry run before live, inspect runs after) and installs every skill unless you pass --skill <name>.

For headless or non-interactive sessions, use a token instead of the browser login:

oxygen api-keys create --name "claude-code" --json
oxygen auth use-token --token <token> --json

Setup — hosted MCP (optional)

claude mcp add --transport http oxygen https://oxygen-agent.com/mcp

Claude Code uses loopback OAuth redirects, which the connector's dynamic client registration allows by default. Complete the sign-in when the OAuth flow opens, then ask Claude to call oxygen_whoami. Do not paste API keys into prompts — let the OAuth flow hold the credential.

A bare URL advertises the core toolset. The MCP tool reference lists every tool and the pack that advertises it.

Verify your setup

These are read-only and spend no credits:

oxygen status --json
oxygen whoami --json
oxygen capabilities search "add an AI column and enrich work emails" --json
oxygen commands get "enrich-column preview" --json
  • oxygen statusdata.compatible: true means your CLI is at or above the server's enforced minimum. The envelope also carries client_version, server_version, minimum_cli_version, api_url, and a skew of in_sync, client_ahead, or client_behind.
  • oxygen whoamidata.user.email, data.organization.name, and an onboarding block. If onboarding.complete is false, load workspace context before paid work.
  • oxygen capabilities search names the owning primitive, its negative boundary, the gateway commands/tools, and the exact hydration step. oxygen commands get returns only the selected command's flags and safety markers. The full oxygen commands --json manifest is an opt-in diagnostic, not the normal discovery path.
  • On MCP the same pair is oxygen_capabilities_searchoxygen_capabilities_schema. Provider operations use the separate bounded oxygen_tools_search → exact oxygen_tools_get path.

Cost and approval posture

Dry-run and preview commands never spend credits or write externally; paid provider calls, AI/tool column runs, enrichment, and external writes execute only after you pass --approved with a --max-credits ceiling. See Approvals and Spend caps.

Known limitations

  • No ui:// widget rendering — inspect results through the web_url in each JSON envelope or the web app.
  • The hosted MCP connector requires OAuth (dynamic client registration); if your environment blocks the browser handshake, use the CLI with a token instead.
  • Do not paste large CSV/JSON files into MCP prompts — import them with oxygen tables import <table> --file <path> --background.

On this page