CLI vs MCP Access

April 13, 2026 · View on GitHub

Qualixar OS exposes its capabilities through multiple transports. The two most relevant for Claude Code users are the CLI (direct shell commands) and the MCP server (tool calls over stdio). They overlap significantly but are not identical.

How They Work

CLI (qos <command>) runs as a shell process. It loads config from ~/.qualixar-os/config.yaml, initializes the orchestrator, executes the command, and prints formatted output. Best for human operators and Bash-based automation.

MCP (qos mcp) runs as a persistent stdio server. Claude Code connects to it and calls tools via the Model Context Protocol. Two MCP layers exist:

  1. Legacy MCP server (src/channels/mcp-server.ts) -- 25 individual tools (e.g. run_task, get_status, search_memory). Fine-grained, one tool per action.
  2. UCP MCP adapter (src/commands/adapters/mcp-adapter.ts) -- 7 domain-grouped tools (e.g. qos_task, qos_system). Each tool accepts an action parameter to select the sub-command. Token-efficient: ~2,400 tokens vs ~7,000 for 25 individual tools.

The UCP adapter supports tiering via the QOS_TIER env var:

  • core (2 tools): qos_task, qos_system
  • extended (4 tools): adds qos_agents, qos_context
  • full (6 tools + qos_workflow_create): all commands

Command Coverage Matrix

CapabilityCLI CommandMCP (Legacy)MCP (UCP Adapter)Notes
Run a taskqos runrun_taskqos_task action=runAll transports
Task statusqos statusget_statusqos_task action=statusAll transports
Task outputqos output--qos_task action=outputCLI + UCP only
List tasks--list_tasksqos_task action=listMCP + UCP
Pause taskqos pausepause_taskqos_task action=pauseAll transports
Resume taskqos resumeresume_taskqos_task action=resumeAll transports
Cancel taskqos cancelcancel_taskqos_task action=cancelAll transports
Steer task--redirect_taskqos_task action=steerMCP + UCP
List agentsqos agentslist_agentsqos_agents action=listAll transports
Inspect agent----qos_agents action=inspectUCP only
Forge designsqos forgeget_forge_designsqos_agents action=forge_designAll transports
Topologies--list_topologiesqos_agents action=forge_topologiesMCP + UCP
Search memoryqos memorysearch_memoryqos_quality action=memory_searchAll transports
Store memory----qos_quality action=memory_storeUCP only
Judge resultsqos judgesget_judge_resultsqos_quality action=judge_resultsAll transports
Get configqos configget_system_configqos_system action=config_getAll transports
Set configqos config k v--qos_system action=config_setCLI + UCP
List modelsqos models--qos_system action=models_listCLI + UCP
Cost summaryqos costget_costqos_system action=cost_summaryAll transports
Context add----qos_context action=addUCP only
Context scan----qos_context action=scanUCP only
Context list----qos_context action=listUCP only
Set workspace----qos_context action=set_workspaceUCP only
Workspace files----qos_context action=workspace_filesUCP only
Import agentqos import--qos_workspace action=import_agentCLI + UCP
Export agentqos export----CLI only
RL stats--get_rl_stats--Legacy MCP only
Send chat--send_chat_message--Legacy MCP only
Connectors--list_connectors, test_connector--Legacy MCP only
Datasets--list_datasets, preview_dataset--Legacy MCP only
Vector search--search_vectors--Legacy MCP only
Blueprints--list_blueprints, deploy_blueprint--Legacy MCP only
Prompts--list_prompts, create_prompt--Legacy MCP only
Create workflow----qos_workflow_createUCP adapter only
Init setupqos init----CLI only
Doctorqos doctor----CLI only
New projectqos new----CLI only
Cmd dispatchqos cmd----CLI only
Cmd listqos cmd-list----CLI only
Dispatchqos dispatch----CLI only
Dashboardqos dashboard----CLI only
Serveqos serve----CLI only
MCP startqos mcp----CLI only
Versionqos version----CLI only

CLI-Only Commands

These commands have no MCP equivalent and can only be run from the shell:

  • qos init -- Interactive setup wizard (creates config, sets provider, runs first task)
  • qos doctor -- Health check (validates config, checks connectivity)
  • qos new -- Scaffold a new project from template
  • qos serve / qos dashboard -- Start the HTTP server or dashboard
  • qos mcp -- Start the MCP server itself
  • qos export -- Export agent definitions to SOUL.md/JSON/YAML
  • qos cmd / qos cmd-list / qos dispatch -- UCP command dispatch (these are how CLI accesses UCP; MCP accesses UCP through the adapter tools)
  • qos version -- Version info

When to Use CLI vs MCP

ScenarioUse CLIUse MCP
Setting up QOS for the first timeqos init--
Running health checksqos doctor--
Starting the serverqos serve --dashboard--
Submitting a task from Claude Code--qos_task action=run
Polling task status programmatically--qos_task action=status
Browsing Forge designs in conversation--qos_agents action=forge_design
Searching memory during a session--qos_quality action=memory_search
Changing config on the flyqos configqos_system action=config_set
Exporting an agent definitionqos export--
Importing an external agentqos importqos_workspace action=import_agent
Batch scripting multiple tasksqos run in a loop--
Interactive Claude Code session--MCP tools

Practical Guidance

Use MCP when Claude Code is the operator. The MCP tools are designed for LLM consumption -- structured JSON input, structured JSON output, domain-grouped to minimize token overhead.

Use CLI when a human or shell script is the operator. The CLI provides formatted output, interactive prompts (init), and server lifecycle commands that MCP cannot handle.

Combine both for full coverage. The Claude Code plugin uses MCP for real-time tool calls during conversation, and its qos-orchestrator agent uses Bash to run CLI commands when MCP tools are insufficient (e.g. qos export, workspace browsing via ls).