mcp-tmux
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| TMUX_BIN | No | Path to the tmux binary (defaults to 'tmux'). | |
| MCP_TMUX_HOST | No | Preferred ssh host alias when no explicit host is provided. | |
| MCP_TMUX_LOG_DIR | No | Logging directory (defaults to ~/.config/mcp-tmux/logs). | |
| MCP_TMUX_SESSION | No | Prefer this session when no explicit target is provided. | |
| MCP_TMUX_HOSTS_FILE | No | Optional path to a JSON file with host profiles. | |
| MCP_TMUX_TIMEOUT_MS | No | Timeout in ms for tmux/ssh invocations (default 15000). |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tasks | {
"requests": {
"tools": {
"call": {}
}
}
} |
| tools | {
"listChanged": true
} |
| logging | {} |
| resources | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| tmux_set_defaultA | Persist defaults for later tool calls. Omit fields you do not want to change. |
| tmux_get_defaultB | Display the current remembered defaults. |
| tmux_open_sessionA | Given an ssh host alias and session name, ensure the remote tmux session exists (create if missing) and set it as default for subsequent commands. |
| tmux_default_contextA | Returns the default session (if any) and a quick layout snapshot. |
| tmux_stateB | Return sessions, windows, panes, and the last lines of the active/default pane. |
| tmux_readonly_stateA | Readonly variant of tmux_state to retrieve sessions, windows, panes, and recent capture without modifying defaults. |
| tmux_context_historyA | Capture recent scrollback from a pane or session to infer context; also extracts recent commands heuristically. |
| tmux_quickstartA | Returns a concise how-to for using the tmux MCP tools safely. |
| tmux_server_infoA | Return the running server version and package identifier for verification. |
| tmux_set_audit_loggingA | Enable or disable verbose audit logging for a host/session (logs commands and outputs). |
| tmux_capture_layoutA | Return window layouts for a session so they can be restored later. |
| tmux_restore_layoutB | Apply a saved layout string to a target window. |
| tmux_tail_paneB | Poll a pane multiple times to watch output without reissuing commands. |
| tmux_tail_taskB | Create a task to poll pane output over time. Client can poll for incremental results. |
| tmux_multi_runA | Send the same keys to multiple targets (across hosts) and optionally capture results. |
| tmux_watch_dir_taskA | Poll a directory (local or via SSH) and complete when new files appear or after max iterations. |
| tmux_wait_for_pattern_taskA | Poll a pane for a regex pattern and complete when matched or after iterations. |
| tmux_select_windowB | Select a window so subsequent commands target it. |
| tmux_select_paneA | Select a pane so subsequent commands target it. |
| tmux_set_sync_panesB | Enable or disable synchronize-panes for a window. |
| tmux_save_layout_profileB | Capture layouts for all windows in a session and store them under a profile name. |
| tmux_apply_layout_profileA | Apply a previously saved layout profile to a session. Windows are matched by index; pane counts must be compatible. |
| tmux_healthC | Check tmux availability, PATH/bin resolution, and session listing for a host. |
| tmux_list_sessionsA | Enumerate sessions with attachment counts and window totals. |
| tmux_list_windowsA | List windows within a session (or all sessions if no target provided). |
| tmux_list_panesA | List panes across windows or inside a specific target. |
| tmux_capture_paneA | Read the scrollback of a pane to observe command results. |
| tmux_batch_captureA | Capture scrollback from multiple panes in parallel (readonly). |
| tmux_send_keysB | Send keystrokes to a tmux target, optionally appending Enter. |
| tmux_run_batchA | Execute multiple shell commands sequentially in one tmux pane and capture the output. Uses "&&" by default (fail fast) or ";" when failFast=false. Automatically captures output (paged) and can clean the prompt before writing. |
| tmux_new_sessionB | Create a detached tmux session to collaborate in. |
| tmux_new_windowB | Create a window in a target session, useful for side-by-side collaboration. |
| tmux_split_paneA | Split a pane horizontally or vertically, optionally running a command. |
| tmux_kill_sessionB | Terminate a tmux session. Use with care. |
| tmux_kill_windowC | Close a tmux window. Use with care. |
| tmux_kill_paneB | Close a tmux pane. Use with care. |
| tmux_rename_sessionB | Rename a tmux session. |
| tmux_rename_windowB | Rename a tmux window. |
| tmux_commandA | Execute any tmux subcommand with raw args. Use this when helpers do not cover your use case. You are responsible for correctness and safety. |
| tmux_debug_rawA | Run a tmux command and return raw stdout/stderr for debugging remote formatting/quoting issues. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| tmux_state_resource | On read, captures current default host/session state and recent output. |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/k8ika0s/mcp-tmux'
If you have feedback or need assistance with the MCP directory API, please join our Discord server