# Tools

Source: https://libtmux.org/en/ruby/v0.1.0.alpha.2/mcp/tools/

> Browse the operations the server exposes to MCP clients. Use the registered name and arguments when sending a tools/call request.

Browse the operations the server exposes to MCP clients. Use the registered name and arguments when sending a tools/call request.

MCP concept example

Maintained as a working example of core library usage and deployment. Example APIs, tools and configuration may change without a compatibility or product support commitment.

[What concept means](https://libtmux.org/en/tmux/guides/concept-examples/)

The reference configuration advertises 8 tools. Your server’s available objects depend on its configuration. [Setup documentation](https://libtmux.org/en/ruby/v0.1.0.alpha.2/mcp/guides/) explains how to connect a client.

## Server2 tools[#](https://libtmux.org/en/ruby/v0.1.0.alpha.2/mcp/tools/#tools-server)

[tmux​_capabilities](https://libtmux.org/en/ruby/v0.1.0.alpha.2/mcp/tools/tmux_capabilities/)

Discover the fixed endpoint, server binding, enabled tools, criteria schema and limits. Acquires metadata; starts no daemon.

[tmux​_snapshot](https://libtmux.org/en/ruby/v0.1.0.alpha.2/mcp/tools/tmux_snapshot/)

Capture ordered metadata and evaluate Ruby criteria locally. Pages retain one immutable capture; expired cursors require a new query. Limit defaults to 50 records, maximum 200.

## Pane6 tools[#](https://libtmux.org/en/ruby/v0.1.0.alpha.2/mcp/tools/#tools-pane)

[tmux​_capture](https://libtmux.org/en/ruby/v0.1.0.alpha.2/mcp/tools/tmux_capture/)

Read exact-pane screen/history rows preserving LF. Defaults: 200 lines, 65536 bytes, zero history lines, track=false. Limits: 1000 lines/history, 262144 bytes. UTF-8 or base64; truncation is separate from unknown history continuity. Tracked process cursors require tmux>=3.3a and a native process identity backend: Linux peer pidfds with matching PID namespaces, or Darwin kqueue process observation. Continuation returns an exact state row splice, not a live-output journal. Refuses capture after-hooks.

[tmux​_close](https://libtmux.org/en/ruby/v0.1.0.alpha.2/mcp/tools/tmux_close/)

Destroy one exact session, window or pane. Opt-in destructive operation; closing a session or window also removes its contained topology. Never selects by name or closes the daemon directly. Returns the final tmux client outcome.

[tmux​_create](https://libtmux.org/en/ruby/v0.1.0.alpha.2/mcp/tools/tmux_create/)

Create a session, window in an exact session, or split an exact pane using argv. Opt-in mutation; 64 KiB total string bytes and at most 256 argv entries. Window/pane focus defaults false. Cwd/environment are optional; size is cells or percent. Assigned refs prove creation, not program readiness or completion.

[tmux​_run](https://libtmux.org/en/ruby/v0.1.0.alpha.2/mcp/tools/tmux_run/)

Run an authored POSIX script in an explicitly enrolled idle, empty zsh 5.9 editor. Opt-in; no terminal injection. Exact queue authorization binds the existing shell generation; execution may follow a later pane replacement without retargeting it. Inherits cwd/exported environment, closed stdin, separate bounded UTF-8/base64 outputs. Defaults: 65536 bytes per output, 65536 script bytes; overflow refuses completion. Reports native exit/signal only from the helper; cancellation never proves descendants stopped.

[tmux​_send](https://libtmux.org/en/ruby/v0.1.0.alpha.2/mcp/tools/tmux_send/)

Send literal UTF-8 text or named keys to one exact pane. Opt-in mutation; 64 KiB total text bytes, at most 256 keys. Reports tmux client completion and input dispatch only; never shell completion.

[tmux​_wait](https://libtmux.org/en/ruby/v0.1.0.alpha.2/mcp/tools/tmux_wait/)

Wait for observed literal screen text or the initial pane process exit. Deadline in seconds is capped by the application limit. Uses control events/process descriptors; no polling. Requires tmux>=3.3a and Linux peer pidfds with matching PID namespaces or Darwin kqueue process observation. Reports observed evidence, never remote termination caused by cancellation or an inferred process exit status.

## [Resources](https://libtmux.org/en/ruby/v0.1.0.alpha.2/mcp/resources/)

This server does not advertise resources in the reference configuration.

## [Resource templates](https://libtmux.org/en/ruby/v0.1.0.alpha.2/mcp/resources/#resources-resource-templates)

3 advertised in the reference configuration.

## [Prompts](https://libtmux.org/en/ruby/v0.1.0.alpha.2/mcp/prompts/)

This server does not advertise prompts in the reference configuration.

Reference configuration

* `mode`

  `explicit CLI options`

* `tools`

  `tmux_capabilities,tmux_snapshot,tmux_capture,tmux_wait,tmux_create,tmux_send,tmux_close,tmux_run`

Protocol version: `2025-11-25`. [Download the full protocol catalog](https://libtmux.org/en/ruby/v0.1.0.alpha.2/mcp/tools.json).

Source: [`libtmux/libtmux-ruby@dcc9f8b5a697`](https://github.com/libtmux/libtmux-ruby/tree/dcc9f8b5a6970144a9e7d80cd5f381d8f6198372).

The [language API reference](https://libtmux.org/en/ruby/v0.1.0.alpha.2/mcp/reference/) documents embedding and implementation types.

Source revision: [libtmux/libtmux-ruby@dcc9f8b5a6970144a9e7d80cd5f381d8f6198372](https://github.com/libtmux/libtmux-ruby/tree/dcc9f8b5a6970144a9e7d80cd5f381d8f6198372).
