MCP Clients

Copy-pasteable configuration for every supported MCP client. If your client isn’t listed, any tool supporting MCP stdio transport will work with the JSON config pattern.

Claude Code

$ claude mcp add libtmux -- uvx libtmux-mcp
$ claude mcp add libtmux -- pipx run libtmux-mcp
$ claude mcp add libtmux -- libtmux-mcp

Config file: .mcp.json (project) or ~/.claude.json (global).

Claude Desktop

Add to claude_desktop_config.json:

{
    "mcpServers": {
        "libtmux": {
            "command": "uvx",
            "args": ["libtmux-mcp"]
        }
    }
}
{
    "mcpServers": {
        "libtmux": {
            "command": "pipx",
            "args": ["run", "libtmux-mcp"]
        }
    }
}
{
    "mcpServers": {
        "libtmux": {
            "command": "libtmux-mcp"
        }
    }
}

Codex CLI

$ codex mcp add libtmux -- uvx libtmux-mcp
$ codex mcp add libtmux -- pipx run libtmux-mcp
$ codex mcp add libtmux -- libtmux-mcp
config.toml format

Add to ~/.codex/config.toml:

[mcp_servers.libtmux]
command = "uvx"
args = ["libtmux-mcp"]

Gemini CLI

$ gemini mcp add libtmux uvx -- libtmux-mcp
$ gemini mcp add libtmux pipx -- run libtmux-mcp
$ gemini mcp add libtmux libtmux-mcp

Config file: ~/.gemini/settings.json (JSON format, same schema as Claude Desktop).

Cursor

Add to .cursor/mcp.json (project) or ~/.cursor/mcp.json (global):

{
    "mcpServers": {
        "libtmux": {
            "command": "uvx",
            "args": ["libtmux-mcp"]
        }
    }
}
{
    "mcpServers": {
        "libtmux": {
            "command": "pipx",
            "args": ["run", "libtmux-mcp"]
        }
    }
}
{
    "mcpServers": {
        "libtmux": {
            "command": "libtmux-mcp"
        }
    }
}

MCP Inspector

For testing and debugging:

$ npx @modelcontextprotocol/inspector

Config file locations

Client

Config file

Format

Claude Code

.mcp.json (project) or ~/.claude.json (global)

JSON

Claude Desktop

claude_desktop_config.json

JSON

Codex CLI

~/.codex/config.toml

TOML

Gemini CLI

~/.gemini/settings.json

JSON

Cursor

.cursor/mcp.json (project) or ~/.cursor/mcp.json (global)

JSON

Local checkout (development)

For live development, point your client at a local checkout via uv --directory:

Claude Code:

$ claude mcp add \
    --scope user \
    libtmux -- \
    uv --directory ~/work/python/libtmux-mcp \
    run libtmux-mcp
Codex CLI / Gemini CLI / Cursor

Codex CLI:

$ codex mcp add libtmux -- \
    uv --directory ~/work/python/libtmux-mcp \
    run libtmux-mcp

Gemini CLI:

$ gemini mcp add \
    --scope user \
    libtmux uv -- \
    --directory ~/work/python/libtmux-mcp \
    run libtmux-mcp

Cursor — add to ~/.cursor/mcp.json:

{
    "mcpServers": {
        "libtmux": {
            "command": "uv",
            "args": [
                "--directory", "~/work/python/libtmux-mcp",
                "run", "libtmux-mcp"
            ]
        }
    }
}

Common pitfalls

  • Absolute paths: Some clients require absolute paths in config. Use $HOME/... or the full path instead of ~/....

  • Virtual environments: If using pip install, ensure the venv is activated or the libtmux-mcp binary is on your PATH.

  • Socket isolation: Set LIBTMUX_SOCKET in the env block to isolate the MCP server from your default tmux. See Configuration.