Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Wiring into an agent

execkit-mcp is a stdio MCP server. You register the installed binary with your client once, and the agent gains session_create, session_exec, and the rest.

The fastest path is to let execkit print the exact config with the binary’s absolute path already filled in:

execkit-mcp setup claude     # or: cursor | gemini | codex | vscode | windsurf

It prints a ready-to-use block (and, for Claude Code, the one-line command). It deliberately does not edit your client’s config file for you, so it can never corrupt one; you paste the block into the right place.

Zero-install with uv

If you have uv, skip the install and let the client start execkit through uvx. This block works in any client that uses the mcpServers format:

{
  "mcpServers": {
    "execkit": { "command": "uvx", "args": ["execkit-mcp"] }
  }
}

Don’t run setup through uvx: the path it prints points into uv’s cache.

Claude Code

One command:

claude mcp add execkit -- execkit-mcp        # add `-s user` to enable it everywhere

Cursor, Gemini CLI and Windsurf

Cursor reads ~/.cursor/mcp.json (or .cursor/mcp.json in a project), Gemini CLI reads ~/.gemini/settings.json, and Windsurf reads ~/.codeium/windsurf/mcp_config.json. Add the same block to any of them:

{
  "mcpServers": {
    "execkit": { "command": "execkit-mcp" }
  }
}

If the binary is not on the client’s PATH, use the absolute path that execkit-mcp setup printed.

Codex CLI and VS Code

These use different formats. Codex reads TOML from ~/.codex/config.toml:

[mcp_servers.execkit]
command = "execkit-mcp"

VS Code reads .vscode/mcp.json in the workspace, with a servers key:

{
  "servers": {
    "execkit": { "type": "stdio", "command": "execkit-mcp" }
  }
}

execkit-mcp setup codex and execkit-mcp setup vscode print these with the absolute path filled in.

Turning on operator settings

Anything that affects the host (auditing, SSH key location, session limits) is configured by you, the operator, through environment variables in the client config, not by the agent. Add an env block:

{
  "mcpServers": {
    "execkit": {
      "command": "execkit-mcp",
      "env": { "EXECKIT_MCP_AUDIT": "/var/log/execkit.jsonl" }
    }
  }
}

See the Security model for the full list of settings and why they live with the operator. Once wired, the agent calls session_create -> session_exec -> session_destroy; see Sessions.