MCP Profiles
Code Mode, Code Mode UI, and Full — how verxion exposes its tools and why the default is one tool, not hundreds.
verxion ships its entire functionality through three MCP profiles. The profile is selected by the snippet you copy from the setup page — most users never change it. This page exists so you know what’s happening under the hood.
The three profiles
| Profile | Tools exposed | When to use |
|---|---|---|
| Code Mode (default) | 1 (execute_code) | Every day. The recommended profile. |
| Code Mode UI | 1 + widget renderers | ChatGPT, when you want rich visual cards inline |
| Full | All individual tools | Debugging, custom integrations |
Code Mode (default)
Instead of exposing every tool as a separate MCP function, Code Mode exposes a single execute_code tool. Your agent writes a short TypeScript snippet — verxion runs it inside an isolated sandbox where every helper is guarded by the same OAuth scopes as a direct tool call.
Why this is the default:
- ChatGPT caps custom apps at ~100 tools. Without Code Mode, large catalogs simply don’t fit.
- Fewer round-trips. One
execute_codecall can fan out across multiple internal operations (read your routine, start the session, log the first set) instead of three separate function calls. - Less prompt bloat. The agent doesn’t have to scan a giant tool list every turn.
What you give up:
- Visual widgets render only in Code Mode UI (see below).
- For very simple one-shot commands, individual tools would be marginally faster. We’ve measured — it’s marginal.
Code Mode UI
The hybrid profile: execute_code plus a curated set of widget tools. ChatGPT renders the widget cards inline; everything else routes through execute_code as usual.
Use Code Mode UI when:
- You’re on ChatGPT and want session summaries, macro pies, and contribution grids rendered as visual cards rather than markdown tables.
It’s the right choice in ChatGPT App settings. Claude Desktop and Claude Code don’t render widgets, so they default to Code Mode.
Full mode
Exposes every tool as a discrete MCP function — no sandbox, no execute_code. Useful when:
- You’re building a custom integration and want fine-grained control over each call
- You’re debugging a tool’s behavior and want it isolated
- You’re piping through middleware that needs to see tool names directly
You won’t see Full mode in the setup snippets by default — it’s available on request.
How profile selection works
The MCP server you point your client at decides the profile. The setup page hands you the right URL per client:
- Claude Desktop / Claude Code → Code Mode endpoint
- ChatGPT → Code Mode UI endpoint
- Custom integration → request a Full mode endpoint
Switching profiles means switching the URL in your client config and restarting the conversation/session.
Security note
Regardless of profile, every tool call enforces OAuth scopes. The agent never gets ambient write access — each operation is gated on the scopes your token carries. See OAuth scopes.