As harnesses inside xpander
Each conversation runs in its own isolated sandbox with memory and CPU limits. It receives the approved skills and a short-lived token for the AI gateway instead of a provider key, and every turn is recorded on the conversation’s task. The composer can switch a conversation to another of Claude Code, Codex or OpenCode, or to another model, and the history carries over.
As desktop clients
Any MCP client, Claude Code, Claude Desktop, Cursor, ChatGPT or another, can connect to either endpoint. The two differ in what is behind them, not in which client they accept. The client keeps its own model sign-in. Claude Code signed in with a personal Claude plan (Pro or Max) through/login connects the same way as one that uses an API key: the MCP connection uses its own OAuth sign-in to xpander and does not read or replace the model sign-in.
Connect a person’s own client to Omni: one URL covers everything Xpander Chat offers, and a request like “Deploy this agent to xpander as a scheduled task” ends with an agent running in a cloud session. Connect an integration or an automation to the API endpoint when it needs the raw calls, listing agents, starting tasks and reading threads, without an agent deciding in between. Setup per client: Connect your MCP client for Omni, Model Context Protocol for the API.
On an Air-Gapped install the endpoint exists once the install values set
global.mcp.publicUrl. Until then the MCP row on Platform > Agents > Channels reads Not offered on this install. On a Hybrid install the chart has no value to set: it serves mcp.<your domain> from its ingress. If the MCP row shows that message, or the Skills registry page says the gateway is not available, contact xpander support.
A desktop client can also reach the organization’s skills directly: Platform > Agents > Skills registry shows one address for Claude Desktop, ChatGPT or any MCP client, each person signing in as themselves (MCP gateway).

