# Rust MCP API

Source: https://libtmux.org/en/rs/latest/mcp/reference/

> Find TmuxTools, tool selections, schema-bearing registrations, and MCP resources.

For MCP client requests, use the [tool reference](../tools/). This page
covers language APIs for embedding or extending the server.

The `tmux_mcp` crate exports the tool surface for applications that need
a custom policy or transport. Its executable supplies the stdio launcher.

## Rust types

`TmuxTools::builder(server)` constructs a tool surface over a libtmux
`Server`. Pass a `Selection` through `.selection()`, then build it. `offered()` reports
the definitions available under that selection.

The resulting type integrates with rmcp's server machinery; the
[embedding example](../examples/) uses
[`ServiceExt`](https://docs.rs/rmcp/3.1.2/rmcp/service/trait.ServiceExt.html)
and a stdio transport.
The [crate API](https://docs.rs/tmux-mcp) documents the Rust exports.

## Protocol contract

The [tool reference](../tools/) describes MCP names and schemas. Registered
tools provide structured results and output schemas. Errors distinguish
stale objects, retryable failures, and partial effects.

The static `tmux://capabilities` resource reports the startup-frozen
surface. Inspect tools read live tmux state. The current surface has no
workflow prompts or dynamic resource templates.

[Workspace builder API](../../workspace/reference/) describes the separate
workspace parser, builder, and live-session export.

[Crate source and examples](https://github.com/libtmux/libtmux-rs/tree/f0e37052c232636b61d095817046e6bfc8f2ca40/crates/tmux-mcp).

## API declarations

- [mcp.views.Branch](https://libtmux.org/en/rs/latest/mcp/reference/mcp-views-branch/)
- [mcp.views.BranchPane](https://libtmux.org/en/rs/latest/mcp/reference/mcp-views-branchpane/)
- [mcp.views.BranchWindow](https://libtmux.org/en/rs/latest/mcp/reference/mcp-views-branchwindow/)
- [mcp.policy.Builder](https://libtmux.org/en/rs/latest/mcp/reference/mcp-policy-builder/)
- [mcp.caller.CallerIdentity](https://libtmux.org/en/rs/latest/mcp/reference/mcp-caller-calleridentity/)
- [mcp.resources.capabilities](https://libtmux.org/en/rs/latest/mcp/reference/mcp-resources-capabilities/)
- [mcp.resources.CAPABILITIES_URI](https://libtmux.org/en/rs/latest/mcp/reference/mcp-resources-capabilities_uri/)
- [mcp.manifest.CapabilityReport](https://libtmux.org/en/rs/latest/mcp/reference/mcp-manifest-capabilityreport/)
- [mcp.views.Capture](https://libtmux.org/en/rs/latest/mcp/reference/mcp-views-capture/)
- [mcp.model.CapturePaneArgs](https://libtmux.org/en/rs/latest/mcp/reference/mcp-model-capturepaneargs/)
- [mcp.model.CaptureSinceArgs](https://libtmux.org/en/rs/latest/mcp/reference/mcp-model-capturesinceargs/)
- [mcp.model.ChannelArgs](https://libtmux.org/en/rs/latest/mcp/reference/mcp-model-channelargs/)
- [mcp.views.ChannelSignal](https://libtmux.org/en/rs/latest/mcp/reference/mcp-views-channelsignal/)
- [mcp.views.ChannelWait](https://libtmux.org/en/rs/latest/mcp/reference/mcp-views-channelwait/)
- [mcp.model.CreateSessionArgs](https://libtmux.org/en/rs/latest/mcp/reference/mcp-model-createsessionargs/)
- [mcp.tail.Cursor](https://libtmux.org/en/rs/latest/mcp/reference/mcp-tail-cursor/)
- [mcp.views.Environment](https://libtmux.org/en/rs/latest/mcp/reference/mcp-views-environment/)
- [mcp.policy.ENVIRONMENT_VALUES_ENV](https://libtmux.org/en/rs/latest/mcp/reference/mcp-policy-environment_values_env/)
- [mcp.policy.environment_values_from_env](https://libtmux.org/en/rs/latest/mcp/reference/mcp-policy-environment_values_from_env/)
- [mcp.views.EnvironmentEntry](https://libtmux.org/en/rs/latest/mcp/reference/mcp-views-environmententry/)
- [mcp.views.EnvironmentState](https://libtmux.org/en/rs/latest/mcp/reference/mcp-views-environmentstate/)
- [mcp.policy.EXCLUDE_TOOLS_ENV](https://libtmux.org/en/rs/latest/mcp/reference/mcp-policy-exclude_tools_env/)
- [mcp.cli.HELP](https://libtmux.org/en/rs/latest/mcp/reference/mcp-cli-help/)
- [mcp.views.Hook](https://libtmux.org/en/rs/latest/mcp/reference/mcp-views-hook/)
- [mcp.views.Hooks](https://libtmux.org/en/rs/latest/mcp/reference/mcp-views-hooks/)
- [mcp.views.Killed](https://libtmux.org/en/rs/latest/mcp/reference/mcp-views-killed/)
- [mcp.views.Layout](https://libtmux.org/en/rs/latest/mcp/reference/mcp-views-layout/)
- [mcp.resources.listed](https://libtmux.org/en/rs/latest/mcp/reference/mcp-resources-listed/)
- [mcp.views.Marks](https://libtmux.org/en/rs/latest/mcp/reference/mcp-views-marks/)
- [mcp.views.Matches](https://libtmux.org/en/rs/latest/mcp/reference/mcp-views-matches/)
- [mcp.views.MatchView](https://libtmux.org/en/rs/latest/mcp/reference/mcp-views-matchview/)
- [mcp.model.OptionArgs](https://libtmux.org/en/rs/latest/mcp/reference/mcp-model-optionargs/)
- [mcp.cli.Options](https://libtmux.org/en/rs/latest/mcp/reference/mcp-cli-options/)
- [mcp.views.OptionValue](https://libtmux.org/en/rs/latest/mcp/reference/mcp-views-optionvalue/)
- [mcp.model.PaneArgs](https://libtmux.org/en/rs/latest/mcp/reference/mcp-model-paneargs/)
- [mcp.views.PaneChanged](https://libtmux.org/en/rs/latest/mcp/reference/mcp-views-panechanged/)
- [mcp.views.Panes](https://libtmux.org/en/rs/latest/mcp/reference/mcp-views-panes/)
- [mcp.views.PaneView](https://libtmux.org/en/rs/latest/mcp/reference/mcp-views-paneview/)
- [mcp.policy.parse_environment_values](https://libtmux.org/en/rs/latest/mcp/reference/mcp-policy-parse_environment_values/)
- [mcp.views.Pasted](https://libtmux.org/en/rs/latest/mcp/reference/mcp-views-pasted/)
- [mcp.model.PasteTextArgs](https://libtmux.org/en/rs/latest/mcp/reference/mcp-model-pastetextargs/)
- [mcp.caller.Relation](https://libtmux.org/en/rs/latest/mcp/reference/mcp-caller-relation/)
- [mcp.policy.Reporter](https://libtmux.org/en/rs/latest/mcp/reference/mcp-policy-reporter/)
- [mcp.model.ResizePaneArgs](https://libtmux.org/en/rs/latest/mcp/reference/mcp-model-resizepaneargs/)
- [mcp.policy.RETIRED_RUST_SAFETY_ENV](https://libtmux.org/en/rs/latest/mcp/reference/mcp-policy-retired_rust_safety_env/)
- [mcp.policy.RETIRED_SAFETY_ENV](https://libtmux.org/en/rs/latest/mcp/reference/mcp-policy-retired_safety_env/)
- [mcp.model.RunCommandArgs](https://libtmux.org/en/rs/latest/mcp/reference/mcp-model-runcommandargs/)
- [mcp.exec.RunOutcome](https://libtmux.org/en/rs/latest/mcp/reference/mcp-exec-runoutcome/)
- [mcp.exec.RunView](https://libtmux.org/en/rs/latest/mcp/reference/mcp-exec-runview/)
- [mcp.model.SearchPanesArgs](https://libtmux.org/en/rs/latest/mcp/reference/mcp-model-searchpanesargs/)
- [mcp.policy.Selection](https://libtmux.org/en/rs/latest/mcp/reference/mcp-policy-selection/)
- [mcp.model.SelectLayoutArgs](https://libtmux.org/en/rs/latest/mcp/reference/mcp-model-selectlayoutargs/)
- [mcp.model.SelectPaneArgs](https://libtmux.org/en/rs/latest/mcp/reference/mcp-model-selectpaneargs/)
- [mcp.model.SelectWindowArgs](https://libtmux.org/en/rs/latest/mcp/reference/mcp-model-selectwindowargs/)
- [mcp.model.SendKeysArgs](https://libtmux.org/en/rs/latest/mcp/reference/mcp-model-sendkeysargs/)
- [mcp.views.Sent](https://libtmux.org/en/rs/latest/mcp/reference/mcp-views-sent/)
- [mcp.model.SessionArgs](https://libtmux.org/en/rs/latest/mcp/reference/mcp-model-sessionargs/)
- [mcp.views.Sessions](https://libtmux.org/en/rs/latest/mcp/reference/mcp-views-sessions/)
- [mcp.views.SessionView](https://libtmux.org/en/rs/latest/mcp/reference/mcp-views-sessionview/)
- [mcp.model.ShowEnvironmentArgs](https://libtmux.org/en/rs/latest/mcp/reference/mcp-model-showenvironmentargs/)
- [mcp.model.ShowHooksArgs](https://libtmux.org/en/rs/latest/mcp/reference/mcp-model-showhooksargs/)
- [mcp.views.Since](https://libtmux.org/en/rs/latest/mcp/reference/mcp-views-since/)
- [mcp.views.Size](https://libtmux.org/en/rs/latest/mcp/reference/mcp-views-size/)
- [mcp.views.Snapshot](https://libtmux.org/en/rs/latest/mcp/reference/mcp-views-snapshot/)
- [mcp.model.SnapshotArgs](https://libtmux.org/en/rs/latest/mcp/reference/mcp-model-snapshotargs/)
- [mcp.policy.SocketProvenance](https://libtmux.org/en/rs/latest/mcp/reference/mcp-policy-socketprovenance/)
- [mcp.cli.Stop](https://libtmux.org/en/rs/latest/mcp/reference/mcp-cli-stop/)
- [mcp.policy.SurfaceError](https://libtmux.org/en/rs/latest/mcp/reference/mcp-policy-surfaceerror/)
- [mcp.resources.templates](https://libtmux.org/en/rs/latest/mcp/reference/mcp-resources-templates/)
- [mcp.src.TmuxTools](https://libtmux.org/en/rs/latest/mcp/reference/mcp-src-tmuxtools/)
- [mcp.tools.error.ToolError](https://libtmux.org/en/rs/latest/mcp/reference/mcp-tools-error-toolerror/)
- [mcp.policy.TOOLS_ENV](https://libtmux.org/en/rs/latest/mcp/reference/mcp-policy-tools_env/)
- [mcp.policy.Toolset](https://libtmux.org/en/rs/latest/mcp/reference/mcp-policy-toolset/)
- [mcp.policy.TOOLSETS_ENV](https://libtmux.org/en/rs/latest/mcp/reference/mcp-policy-toolsets_env/)
- [mcp.views.Tree](https://libtmux.org/en/rs/latest/mcp/reference/mcp-views-tree/)
- [mcp.tools.contract.VariablesArgs](https://libtmux.org/en/rs/latest/mcp/reference/mcp-tools-contract-variablesargs/)
- [mcp.tools.contract.VariablesValue](https://libtmux.org/en/rs/latest/mcp/reference/mcp-tools-contract-variablesvalue/)
- [mcp.model.WaitForTextArgs](https://libtmux.org/en/rs/latest/mcp/reference/mcp-model-waitfortextargs/)
- [mcp.exec.WaitOutcome](https://libtmux.org/en/rs/latest/mcp/reference/mcp-exec-waitoutcome/)
- [mcp.exec.WaitView](https://libtmux.org/en/rs/latest/mcp/reference/mcp-exec-waitview/)
- [mcp.model.WindowArgs](https://libtmux.org/en/rs/latest/mcp/reference/mcp-model-windowargs/)
- [mcp.views.Windows](https://libtmux.org/en/rs/latest/mcp/reference/mcp-views-windows/)
- [mcp.views.WindowView](https://libtmux.org/en/rs/latest/mcp/reference/mcp-views-windowview/)

[Protocol catalog](https://libtmux.org/en/rs/latest/mcp/tools.json)
