Skip to Content

Claude Desktop Integration

Claude Desktop speaks the Model Context Protocol. Point it at cmdop mcp stdio and the same tools your local agent uses — terminal, files, ask_agent, board — appear inside Claude.

Prerequisites

Before you start, make sure:

  • CMDOP is installed and on your shell PATH (which cmdop should print a path).
  • You have signed in at least once: cmdop login.
  • The daemon is running on the machine you want to expose: cmdop agent start and cmdop agent status reports ONLINE.
  • Claude Desktop is installed and has been launched at least once (so the config directory exists).

Where Claude Desktop reads MCP config

Claude Desktop loads MCP servers from claude_desktop_config.json:

PlatformPath
macOS~/Library/Application Support/Claude/claude_desktop_config.json
Windows%APPDATA%\Claude\claude_desktop_config.json
Linux~/.config/Claude/claude_desktop_config.json

If the file does not exist yet, create it with the snippet below. If it already has mcpServers, merge the cmdop entry in.

Add the CMDOP server entry

{ "mcpServers": { "cmdop": { "command": "cmdop", "args": ["mcp", "stdio"] } } }

Save the file and fully restart Claude Desktop (Quit, not just close the window). Claude spawns cmdop mcp stdio as a subprocess and speaks JSON-RPC over its stdin/stdout.

Claude Desktop launches MCP servers from a non-interactive shell. Your interactive shell’s PATH does not apply. If cmdop lives somewhere unusual (Homebrew on Apple Silicon at /opt/homebrew/bin, for example), use the absolute path: "command": "/opt/homebrew/bin/cmdop".

Verify it loaded

Open Claude Desktop and start a new chat. The tools picker (the slider icon in the input box) should list a cmdop group with entries like execute_command, read_file, ask_agent, issue_create. If the group is empty or missing, jump to Troubleshooting.

Ask Claude to confirm: “Can you list the cmdop tools you have access to?”

Permissions and the gate

Every tool call Claude makes goes through CMDOP’s permission gate. The gate fires for remote callers — Claude Desktop counts as a remote caller because it is not running inside cmdop chat.

Recommended setup for an exposed machine like vps-audi:

# Strict default — explicit allow required cmdop permissions mode strict # Allow read-only inspection cmdop permissions allow 'read_file(/var/log/**)' cmdop permissions allow 'execute_command(uptime)' cmdop permissions allow 'execute_command(systemctl status *)' # Tail the audit log to see what Claude tries cmdop permissions audit --tail 20 -f

A denial in Claude looks like a tool error. Run cmdop permissions audit --tail 5 to see why.

Choosing the workspace

The MCP server uses the daemon’s currently active workspace. Switch on the daemon machine, then restart Claude Desktop:

cmdop connect workspace use acme-prod # Restart Claude Desktop so it re-spawns cmdop mcp stdio

Cross-machine reach from inside Claude

Because CMDOP exposes ask_agent and ask_agents, Claude can fan out from your laptop to remote machines through the same single MCP entry:

You: ask the agent on mac-studio for its uptime, and on vps-audi for the last 50 lines of /var/log/syslog. Summarize both.

Claude calls ask_agent("mac-studio", ...) and ask_agent("vps-audi", ...) in parallel. Both go through each receiver’s permission gate. See Agent Communication for the full model.

Updating CMDOP

Claude Desktop holds the cmdop binary open while a server is registered. Quit Claude Desktop before running cmdop update apply, then relaunch.

Last updated on