libtmux
English
Reference MCP Search

MCP tool surface

Every port ships an MCP server, and they do not agree on what the tools are called. Across the eight, 110 distinct tool names are registered; 6 of them exist in all eight, and 44 exist in exactly one.

This page exists because the claim it replaces was unfalsifiable from any one port's documentation. The numbers below are extracted from each port's own registration site — a FastMCP call, an rmcp attribute, an [McpServerTool], a catalog literal — by scripts/gen-mcp-tools.mjs, which refuses to write a matrix unless its Python rule reproduces, name for name, the 54 tools libtmux-mcp documents itself.

Two things to know before you configure a client

Java and .NET prefix every tool with tmux_ on the wire. The other six do not. An agent told to call capture_pane finds nothing on a Java server, and one told to call tmux_capture_pane finds nothing on the other six. The prefix is stripped in the table below so the comparison is about capability rather than spelling.

Size varies by a factor of 4.9. Go 59 , Python 54 , Rust 48 , TypeScript 47 , .NET 42 , Swift 38 , Java 29 , C++ 12 . C++ is deliberately the smallest, and smaller still on Windows: eight of its twelve tools sit behind #if !defined(_WIN32), so a Windows build registers four read-only tools and nothing that mutates. The comment above that guard gives the reason — psmux 3.3.7 "can report another process's same-name mutation as its own", so the catalog stays read-only there until ownership can be proven. On Windows the six-tool common vocabulary below shrinks to two: list_sessions and list_windows.

The part every port agrees on

Six tools are registered by all eight ports. If you are writing an agent prompt that has to work against any libtmux MCP server, this is the vocabulary it can assume — on a non-Windows host; see the C++ caveat above:

Every tool, and who has it

Sorted by how many ports register it. A name means the tool is registered, not that its arguments match — argument parity is a separate question this page does not answer.

Tool Python TypeScript Rust Go Java .NET C++ Swift
capture_pane
list_panes
list_sessions
list_windows
search_panes
send_keys
paste_text ·
resize_pane ·
select_layout ·
show_environment ·
show_hooks ·
wait_for_text ·
kill_pane · ·
kill_session · ·
kill_window · ·
list_servers · ·
respawn_pane · ·
set_option · ·
wait_for_channel · ·
capture_since · · ·
create_session · · ·
kill_server · · ·
new_window · · ·
run_command · · ·
select_pane · · ·
select_window · · ·
set_environment · · ·
signal_channel · · ·
split_pane · · ·
clear_pane · · · ·
display_message · · · ·
pipe_pane · · · ·
rename_session · · · ·
rename_window · · · ·
set_pane_title · · · ·
show_options · · · ·
snapshot_pane · · · ·
create_window · · · · ·
delete_buffer · · · · ·
load_buffer · · · · ·
move_window · · · · ·
new_session · · · · ·
paste_buffer · · · · ·
rename · · · · ·
resize_window · · · · ·
send_keys_batch · · · · ·
show_buffer · · · · ·
show_option · · · · ·
swap_pane · · · · ·
whoami · · · · ·
apply_workspace · · · · · ·
build_workspace · · · · · ·
enter_copy_mode · · · · · ·
exit_copy_mode · · · · · ·
find_pane_by_position · · · · · ·
get_pane_info · · · · · ·
get_server_info · · · · · ·
get_session_info · · · · · ·
get_window_info · · · · · ·
list_buffers · · · · · ·
list_jobs · · · · · ·
move_pane · · · · · ·
run · · · · · ·
select · · · · · ·
server_info · · · · · ·
split_window · · · · · ·
call_destructive_tools_batch · · · · · · ·
call_mutating_tools_batch · · · · · · ·
call_read_tools_batch · · · · · · ·
call_readonly_tools_batch · · · · · · ·
cancel_job · · · · · · ·
describe · · · · · · ·
describe_filters · · · · · · ·
describe_server · · · · · · ·
drain_channel · · · · · · ·
expand_format · · · · · · ·
find_panes · · · · · · ·
find_sessions · · · · · · ·
forget_job · · · · · · ·
get_job · · · · · · ·
get_pane · · · · · · ·
get_recipe · · · · · · ·
hierarchy · · · · · · ·
inspect_tmux · · · · · · ·
job · · · · · · ·
job_status · · · · · · ·
kill · · · · · · ·
list_clients · · · · · · ·
list_session_panes · · · · · · ·
list_session_windows · · · · · · ·
list_window_panes · · · · · · ·
observe · · · · · · ·
read_format · · · · · · ·
run_commands · · · · · · ·
run_plan · · · · · · ·
run_shell · · · · · · ·
save_buffer · · · · · · ·
send_text · · · · · · ·
show_hook · · · · · · ·
snapshot · · · · · · ·
start_command · · · · · · ·
start_job · · · · · · ·
swap_window · · · · · · ·
tail_pane · · · · · · ·
unset_option · · · · · · ·
wait_for_idle · · · · · · ·
wait_for_output · · · · · · ·
watch_format · · · · · · ·
watch_pane · · · · · · ·
what_changed · · · · · · ·

Where these came from

Port Tools Wire prefix Registration site
Python 54 ~/work/python/libtmux-mcp/src/libtmux_mcp/tools
TypeScript 47 ~/work/libtmux/libtmux-ts/packages/mcp/src
Rust 48 ~/work/libtmux/libtmux-rs/crates/tmux-mcp/src/tools
Go 59 ~/work/libtmux/libtmux-go/mcp
Java 29 tmux_ ~/work/libtmux/libtmux-java/libtmux-mcp/src/main/java/io/github/libtmux/mcp
.NET 42 tmux_ ~/work/libtmux/libtmux-dotnet/src/LibTmux.Mcp
C++ 12 ~/work/libtmux/libtmux-cxx/apps/mcp/src
Swift 38 ~/work/libtmux/libtmux-swift/Sources/LibTmuxMCP

Install a server from the MCP page, or read the reference implementation's per-tool documentation in the Python port. 8 ports, one protocol, and — for now — 110 names.

Esc

Type to search.