Portability - running Ultron from any IDE
BCP is the discovery + identity layer. The MCP server it points at is the actual invocation surface. Once Ultron exposes its chat-v2 tool registry as an MCP server, every modern coding environment can connect to it. The user's workspace becomes portable across Cursor, Claude Code, VS Code, Windsurf, and a native CLI.
Three portability layers
Pulling apart what 'run Ultron from everywhere' actually means.
| Layer | What it is | What it unlocks |
|---|---|---|
| Layer 1 - Ultron as MCP server | Ultron exposes its tool registry over MCP. IDEs connect via stdio or HTTP transport. | Every Ultron capability is available inside Cursor / Claude Code / VS Code / Windsurf / CLI. |
| Layer 2 - Each customer as MCP discoverable entity | Every Ultron customer's BCP manifest points at a tenant-scoped MCP endpoint. | Any AI agent on the open web can find and act on an Ultron customer's surface. |
| Layer 3 - Cross-org agent action | An Ultron agent reads a third party's manifest and uses it to transact. | Multi-company workflows ('book demos with these 5 vendors') run autonomously. |
The Ultron MCP server
The piece that has to ship for any of this to work.
- URL (HTTP)
https://ultron.app/mcp- URL (stdio)
npx -y @ultron/mcp- Transport
- HTTP with SSE for server-initiated messages; stdio for local dev.
- Tools surfaced
- The full chat-v2 tool registry, gated by workspace scope.
- Auth
- OAuth 2.0 + PKCE. Access token scoped to one workspace.
- Resources
- Brain notes and files exposed as MCP Resources (read-only).
- Sampling
- Disabled. The IDE's own model handles inference.
Why an HTTP transport
MCP supports stdio and HTTP. For Ultron, HTTP is the default because the tools (CRM lookup, web scrape, carousel render, etc.) run on a containerized cloud runtime and scheduled workers running alongside the app, not on the developer's laptop. The stdio variant is a thin proxy that authenticates against ultron.app and forwards every request - useful for IDEs that only support stdio (older Claude Code configurations, custom CLIs).
What is NOT in the MCP server
Some chat-v2 tools are workspace-internal and never surface over MCP: billing mutations, tenant settings, and any tool whose effect would be ambiguous outside the Ultron UI. The MCP server is the public read + public write surface, not full admin access.
Auth flow
OAuth 2.0 + PKCE. One token per workspace.
- 01IDE initiatesThe IDE opens
https://ultron.app/oauth/authorizewith the standard PKCE parameters and a workspace selector. - 02User authenticatesStandard Ultron login. If logged in already, single click to select workspace. If multiple workspaces, picker.
- 03Scope consentUser sees the requested scopes mapped to chat-v2 tool categories (e.g., "CRM read + write", "Brain read", "Background Jobs"). Approve all or per-scope opt-in.
- 04Token issuedAccess token scoped to
(user_id, workspace_id, scopes). 90-day expiry, refresh token rotation. - 05IDE stores the tokenIn the host's secure credential store. Mac: Keychain. Windows: Credential Manager. Linux: libsecret.
- 06Every MCP callBearer token in the
Authorizationheader. Server checks scope, workspace, user, rate limit.
Workspace context
What the IDE sees and what it doesn't.
| Surface | Accessible from IDE? |
|---|---|
| The 85 chat-v2 tools (filtered by workspace scopes) | Yes |
| Brain notes, files, knowledge graph | Yes (read-only by default; write requires scope) |
| Saved leads, deals, pipeline | Yes |
| Email sequences | Yes |
| The 7 agents (Cortex, Specter, Striker, Pulse, Sentinel, Amplify, Counsel) | Yes - kick off, monitor, cancel |
| Background Jobs queue (the JobsModal panel) | Yes - observed via a job_subscribe MCP tool |
| Scheduled tasks calendar | Yes - create / list / cancel via MCP tools |
| The /company-demo profile | Read-only |
| Skill library | Yes - run any skill |
| The carousel renderer | Yes - generate carousels and pull the resulting URL |
| Sandboxes (isolated per-conversation / code tasks) | Yes - start a sandbox, run code, fetch output |
| Ultron billing | No |
| Tenant settings (members, roles, integrations) | No |
Cursor
MCP config at ~/.cursor/mcp.json or per-project at .cursor/mcp.json.
After saving the config, Cursor's chat sidebar lists "Ultron" as an MCP server with its full tool catalogue available to Composer. Tools appear with their normal names (save_lead,generate_carousel,jobs_create_mission, etc.) and can be invoked directly or through natural-language prompts.
ultron login in your terminal to provision the token automatically. The CLI writes it to~/.config/ultron/token and exportsULTRON_TOKEN for the current shell.Claude Code
MCP config in ~/.claude/settings.json or per-project .claude/settings.json.
Claude Code reads MCP configs at startup. The stdio variant works best here because Claude Code's CLI does not host long-lived HTTP connections. The@ultron/mcp proxy npm package is a 200-line stdio bridge to the HTTP server.
VS Code
Via the official MCP extension or built-in agent.
VS Code surfaces MCP tools through the Copilot Agent sidebar (or the Continue / Cline extensions). Once the Ultron server is registered, the agent has full workspace access subject to the granted scopes.
Windsurf
Cascade reads MCP servers from windsurf settings.
Ultron CLI
Terminal-native access. Same tools, no IDE required.
What this unlocks
A few concrete IDE-side scenarios.