# call_read_tools_batch

Source: https://libtmux.org/en/ts/latest/mcp/tools/call_read_tools_batch/

> Read pane output; accepts no client-supplied executable input. Returned content may be sensitive or untrusted. Invoke a serial batch of at most 16 inspect tools. One client approval covers every nested name; inner tools receive no separate approval. The structured result is capped below 1,000,000 bytes, preserves every operation row, and reports explicit stop and truncation accounting.

tool MCPlatest

MCP concept example

A working example of the core library. It can change without notice.

[What concept means](https://libtmux.org/en/meta/support/#concept-and-alpha)

* **call_read_tools_batch**( [onError](https://libtmux.org/en/ts/latest/mcp/tools/call_read_tools_batch/#mcp.tool.call_read_tools_batch.input%2Fproperties%2FonError)?: "stop" | "continue", [operations](https://libtmux.org/en/ts/latest/mcp/tools/call_read_tools_batch/#mcp.tool.call_read_tools_batch.input%2Fproperties%2Foperations): [Array](https://json-schema.org/understanding-json-schema/reference/array "array (JSON Schema)")<[object](https://json-schema.org/understanding-json-schema/reference/object "object (JSON Schema)") | [object](https://json-schema.org/understanding-json-schema/reference/object "object (JSON Schema)") | [object](https://json-schema.org/understanding-json-schema/reference/object "object (JSON Schema)") | [object](https://json-schema.org/understanding-json-schema/reference/object "object (JSON Schema)") | [object](https://json-schema.org/understanding-json-schema/reference/object "object (JSON Schema)") | [object](https://json-schema.org/understanding-json-schema/reference/object "object (JSON Schema)") | [object](https://json-schema.org/understanding-json-schema/reference/object "object (JSON Schema)") | [object](https://json-schema.org/understanding-json-schema/reference/object "object (JSON Schema)") | [object](https://json-schema.org/understanding-json-schema/reference/object "object (JSON Schema)") | [object](https://json-schema.org/understanding-json-schema/reference/object "object (JSON Schema)") | [object](https://json-schema.org/understanding-json-schema/reference/object "object (JSON Schema)") | [object](https://json-schema.org/understanding-json-schema/reference/object "object (JSON Schema)") | [object](https://json-schema.org/understanding-json-schema/reference/object "object (JSON Schema)") | [object](https://json-schema.org/understanding-json-schema/reference/object "object (JSON Schema)") | [object](https://json-schema.org/understanding-json-schema/reference/object "object (JSON Schema)") | [object](https://json-schema.org/understanding-json-schema/reference/object "object (JSON Schema)")>, )

  tool \[[source](https://github.com/libtmux/libtmux-ts/blob/46cccfef2a546de55ce8b308249b8c76339089a0/packages/mcp/src/tools/target.ts#L618)][¶](https://libtmux.org/en/ts/latest/mcp/tools/call_read_tools_batch/#mcp.tool.call_read_tools_batch)

  Read pane output; accepts no client-supplied executable input. Returned content may be sensitive or untrusted. Invoke a serial batch of at most 16 inspect tools. One client approval covers every nested name; inner tools receive no separate approval. The structured result is capped below 1,000,000 bytes, preserves every operation row, and reports explicit stop and truncation accounting.

  * MCP request method

    `tools/call` Send `call_read_tools_batch` as the tool name, with the arguments below.

  ## Arguments[#](https://libtmux.org/en/ts/latest/mcp/tools/call_read_tools_batch/#mcp.tool.call_read_tools_batch.parameters)

  * **[`onError`](https://libtmux.org/en/ts/latest/mcp/tools/call_read_tools_batch/#mcp.tool.call_read_tools_batch.input%2Fproperties%2FonError)**? ("stop" | "continue")

    Whether a failed operation ends the batch. Defaults to stop.

  * **[`operations`](https://libtmux.org/en/ts/latest/mcp/tools/call_read_tools_batch/#mcp.tool.call_read_tools_batch.input%2Fproperties%2Foperations)** ([Array](https://json-schema.org/understanding-json-schema/reference/array "array (JSON Schema)")<[object](https://json-schema.org/understanding-json-schema/reference/object "object (JSON Schema)") | [object](https://json-schema.org/understanding-json-schema/reference/object "object (JSON Schema)") | [object](https://json-schema.org/understanding-json-schema/reference/object "object (JSON Schema)") | [object](https://json-schema.org/understanding-json-schema/reference/object "object (JSON Schema)") | [object](https://json-schema.org/understanding-json-schema/reference/object "object (JSON Schema)") | [object](https://json-schema.org/understanding-json-schema/reference/object "object (JSON Schema)") | [object](https://json-schema.org/understanding-json-schema/reference/object "object (JSON Schema)") | [object](https://json-schema.org/understanding-json-schema/reference/object "object (JSON Schema)") | [object](https://json-schema.org/understanding-json-schema/reference/object "object (JSON Schema)") | [object](https://json-schema.org/understanding-json-schema/reference/object "object (JSON Schema)") | [object](https://json-schema.org/understanding-json-schema/reference/object "object (JSON Schema)") | [object](https://json-schema.org/understanding-json-schema/reference/object "object (JSON Schema)") | [object](https://json-schema.org/understanding-json-schema/reference/object "object (JSON Schema)") | [object](https://json-schema.org/understanding-json-schema/reference/object "object (JSON Schema)") | [object](https://json-schema.org/understanding-json-schema/reference/object "object (JSON Schema)") | [object](https://json-schema.org/understanding-json-schema/reference/object "object (JSON Schema)")>)

    The read-only tool calls to run, in order, in one approval.

    * minItems

      `1`

    * maxItems

      `16`

    - **[Items](https://libtmux.org/en/ts/latest/mcp/tools/call_read_tools_batch/#mcp.tool.call_read_tools_batch.input%2Fproperties%2Foperations%2Fitems)** ([object](https://json-schema.org/understanding-json-schema/reference/object "object (JSON Schema)") | [object](https://json-schema.org/understanding-json-schema/reference/object "object (JSON Schema)") | [object](https://json-schema.org/understanding-json-schema/reference/object "object (JSON Schema)") | [object](https://json-schema.org/understanding-json-schema/reference/object "object (JSON Schema)") | [object](https://json-schema.org/understanding-json-schema/reference/object "object (JSON Schema)") | [object](https://json-schema.org/understanding-json-schema/reference/object "object (JSON Schema)") | [object](https://json-schema.org/understanding-json-schema/reference/object "object (JSON Schema)") | [object](https://json-schema.org/understanding-json-schema/reference/object "object (JSON Schema)") | [object](https://json-schema.org/understanding-json-schema/reference/object "object (JSON Schema)") | [object](https://json-schema.org/understanding-json-schema/reference/object "object (JSON Schema)") | [object](https://json-schema.org/understanding-json-schema/reference/object "object (JSON Schema)") | [object](https://json-schema.org/understanding-json-schema/reference/object "object (JSON Schema)") | [object](https://json-schema.org/understanding-json-schema/reference/object "object (JSON Schema)") | [object](https://json-schema.org/understanding-json-schema/reference/object "object (JSON Schema)") | [object](https://json-schema.org/understanding-json-schema/reference/object "object (JSON Schema)") | [object](https://json-schema.org/understanding-json-schema/reference/object "object (JSON Schema)"))

      Matches one or more variants.

      * **[Variant 1](https://libtmux.org/en/ts/latest/mcp/tools/call_read_tools_batch/#mcp.tool.call_read_tools_batch.input%2Fproperties%2Foperations%2Fitems%2FanyOf%2F0)** ([object](https://json-schema.org/understanding-json-schema/reference/object "object (JSON Schema)"))

        * **[`arguments`](https://libtmux.org/en/ts/latest/mcp/tools/call_read_tools_batch/#mcp.tool.call_read_tools_batch.input%2Fproperties%2Foperations%2Fitems%2FanyOf%2F0%2Fproperties%2Farguments)**? ([object](https://json-schema.org/understanding-json-schema/reference/object "object (JSON Schema)"))

          Arguments for [`list_sessions`](https://libtmux.org/en/ts/latest/mcp/tools/list_sessions/), exactly the shape it takes when called on its own.

        * **[`tool`](https://libtmux.org/en/ts/latest/mcp/tools/call_read_tools_batch/#mcp.tool.call_read_tools_batch.input%2Fproperties%2Foperations%2Fitems%2FanyOf%2F0%2Fproperties%2Ftool)** ("list_sessions")

          Run [`list_sessions`](https://libtmux.org/en/ts/latest/mcp/tools/list_sessions/) as this step of the batch.

        No other properties are accepted.

      * **[Variant 2](https://libtmux.org/en/ts/latest/mcp/tools/call_read_tools_batch/#mcp.tool.call_read_tools_batch.input%2Fproperties%2Foperations%2Fitems%2FanyOf%2F1)** ([object](https://json-schema.org/understanding-json-schema/reference/object "object (JSON Schema)"))

        * **[`arguments`](https://libtmux.org/en/ts/latest/mcp/tools/call_read_tools_batch/#mcp.tool.call_read_tools_batch.input%2Fproperties%2Foperations%2Fitems%2FanyOf%2F1%2Fproperties%2Farguments)**? ([object](https://json-schema.org/understanding-json-schema/reference/object "object (JSON Schema)"))

          Arguments for [`list_windows`](https://libtmux.org/en/ts/latest/mcp/tools/list_windows/), exactly the shape it takes when called on its own.

          * **[`session`](https://libtmux.org/en/ts/latest/mcp/tools/call_read_tools_batch/#mcp.tool.call_read_tools_batch.input%2Fproperties%2Foperations%2Fitems%2FanyOf%2F1%2Fproperties%2Farguments%2Fproperties%2Fsession)**? ([string](https://json-schema.org/understanding-json-schema/reference/string "string (JSON Schema)"))

            Session id ($1) or name. Omit for all sessions.

          No other properties are accepted.

        * **[`tool`](https://libtmux.org/en/ts/latest/mcp/tools/call_read_tools_batch/#mcp.tool.call_read_tools_batch.input%2Fproperties%2Foperations%2Fitems%2FanyOf%2F1%2Fproperties%2Ftool)** ("list_windows")

          Run [`list_windows`](https://libtmux.org/en/ts/latest/mcp/tools/list_windows/) as this step of the batch.

        No other properties are accepted.

      * **[Variant 3](https://libtmux.org/en/ts/latest/mcp/tools/call_read_tools_batch/#mcp.tool.call_read_tools_batch.input%2Fproperties%2Foperations%2Fitems%2FanyOf%2F2)** ([object](https://json-schema.org/understanding-json-schema/reference/object "object (JSON Schema)"))

        * **[`arguments`](https://libtmux.org/en/ts/latest/mcp/tools/call_read_tools_batch/#mcp.tool.call_read_tools_batch.input%2Fproperties%2Foperations%2Fitems%2FanyOf%2F2%2Fproperties%2Farguments)**? ([object](https://json-schema.org/understanding-json-schema/reference/object "object (JSON Schema)"))

          Arguments for [`list_panes`](https://libtmux.org/en/ts/latest/mcp/tools/list_panes/), exactly the shape it takes when called on its own.

          * **[`session`](https://libtmux.org/en/ts/latest/mcp/tools/call_read_tools_batch/#mcp.tool.call_read_tools_batch.input%2Fproperties%2Foperations%2Fitems%2FanyOf%2F2%2Fproperties%2Farguments%2Fproperties%2Fsession)**? ([string](https://json-schema.org/understanding-json-schema/reference/string "string (JSON Schema)"))

            Session id ($1) or name.

          * **[`window`](https://libtmux.org/en/ts/latest/mcp/tools/call_read_tools_batch/#mcp.tool.call_read_tools_batch.input%2Fproperties%2Foperations%2Fitems%2FanyOf%2F2%2Fproperties%2Farguments%2Fproperties%2Fwindow)**? ([string](https://json-schema.org/understanding-json-schema/reference/string "string (JSON Schema)"))

            Stable window id, e.g. @1.

            * pattern

              `"^@\\d+$"`

          No other properties are accepted.

        * **[`tool`](https://libtmux.org/en/ts/latest/mcp/tools/call_read_tools_batch/#mcp.tool.call_read_tools_batch.input%2Fproperties%2Foperations%2Fitems%2FanyOf%2F2%2Fproperties%2Ftool)** ("list_panes")

          Run [`list_panes`](https://libtmux.org/en/ts/latest/mcp/tools/list_panes/) as this step of the batch.

        No other properties are accepted.

      * **[Variant 4](https://libtmux.org/en/ts/latest/mcp/tools/call_read_tools_batch/#mcp.tool.call_read_tools_batch.input%2Fproperties%2Foperations%2Fitems%2FanyOf%2F3)** ([object](https://json-schema.org/understanding-json-schema/reference/object "object (JSON Schema)"))

        * **[`arguments`](https://libtmux.org/en/ts/latest/mcp/tools/call_read_tools_batch/#mcp.tool.call_read_tools_batch.input%2Fproperties%2Foperations%2Fitems%2FanyOf%2F3%2Fproperties%2Farguments)**? ([object](https://json-schema.org/understanding-json-schema/reference/object "object (JSON Schema)"))

          Arguments for [`get_pane_info`](https://libtmux.org/en/ts/latest/mcp/tools/get_pane_info/), exactly the shape it takes when called on its own.

          * **[`paneId`](https://libtmux.org/en/ts/latest/mcp/tools/call_read_tools_batch/#mcp.tool.call_read_tools_batch.input%2Fproperties%2Foperations%2Fitems%2FanyOf%2F3%2Fproperties%2Farguments%2Fproperties%2FpaneId)** ([string](https://json-schema.org/understanding-json-schema/reference/string "string (JSON Schema)"))

            Stable pane id, e.g. %1.

            * pattern

              `"^%\\d+$"`

          No other properties are accepted.

        * **[`tool`](https://libtmux.org/en/ts/latest/mcp/tools/call_read_tools_batch/#mcp.tool.call_read_tools_batch.input%2Fproperties%2Foperations%2Fitems%2FanyOf%2F3%2Fproperties%2Ftool)** ("get_pane_info")

          Run [`get_pane_info`](https://libtmux.org/en/ts/latest/mcp/tools/get_pane_info/) as this step of the batch.

        No other properties are accepted.

      * **[Variant 5](https://libtmux.org/en/ts/latest/mcp/tools/call_read_tools_batch/#mcp.tool.call_read_tools_batch.input%2Fproperties%2Foperations%2Fitems%2FanyOf%2F4)** ([object](https://json-schema.org/understanding-json-schema/reference/object "object (JSON Schema)"))

        * **[`arguments`](https://libtmux.org/en/ts/latest/mcp/tools/call_read_tools_batch/#mcp.tool.call_read_tools_batch.input%2Fproperties%2Foperations%2Fitems%2FanyOf%2F4%2Fproperties%2Farguments)**? ([object](https://json-schema.org/understanding-json-schema/reference/object "object (JSON Schema)"))

          Arguments for [`get_server_info`](https://libtmux.org/en/ts/latest/mcp/tools/get_server_info/), exactly the shape it takes when called on its own.

        * **[`tool`](https://libtmux.org/en/ts/latest/mcp/tools/call_read_tools_batch/#mcp.tool.call_read_tools_batch.input%2Fproperties%2Foperations%2Fitems%2FanyOf%2F4%2Fproperties%2Ftool)** ("get_server_info")

          Run [`get_server_info`](https://libtmux.org/en/ts/latest/mcp/tools/get_server_info/) as this step of the batch.

        No other properties are accepted.

      * **[Variant 6](https://libtmux.org/en/ts/latest/mcp/tools/call_read_tools_batch/#mcp.tool.call_read_tools_batch.input%2Fproperties%2Foperations%2Fitems%2FanyOf%2F5)** ([object](https://json-schema.org/understanding-json-schema/reference/object "object (JSON Schema)"))

        * **[`arguments`](https://libtmux.org/en/ts/latest/mcp/tools/call_read_tools_batch/#mcp.tool.call_read_tools_batch.input%2Fproperties%2Foperations%2Fitems%2FanyOf%2F5%2Fproperties%2Farguments)**? ([object](https://json-schema.org/understanding-json-schema/reference/object "object (JSON Schema)"))

          Arguments for [`capture_pane`](https://libtmux.org/en/ts/latest/mcp/tools/capture_pane/), exactly the shape it takes when called on its own.

          * **[`end`](https://libtmux.org/en/ts/latest/mcp/tools/call_read_tools_batch/#mcp.tool.call_read_tools_batch.input%2Fproperties%2Foperations%2Fitems%2FanyOf%2F5%2Fproperties%2Farguments%2Fproperties%2Fend)**? ([integer](https://json-schema.org/understanding-json-schema/reference/numeric "numeric (JSON Schema)"))

            Last line, on the same scale as start: 0 is the top of the visible screen and negative reaches back into history. It does not count back from the bottom, so end:-1 is one line above the screen top, not the last line of output.

            * minimum

              `-9007199254740991`

            * maximum

              `9007199254740991`

          * **[`joinWrapped`](https://libtmux.org/en/ts/latest/mcp/tools/call_read_tools_batch/#mcp.tool.call_read_tools_batch.input%2Fproperties%2Foperations%2Fitems%2FanyOf%2F5%2Fproperties%2Farguments%2Fproperties%2FjoinWrapped)**? ([boolean](https://json-schema.org/understanding-json-schema/reference/boolean "boolean (JSON Schema)"))

            Rejoin lines tmux wrapped.

          * **[`maxLines`](https://libtmux.org/en/ts/latest/mcp/tools/call_read_tools_batch/#mcp.tool.call_read_tools_batch.input%2Fproperties%2Foperations%2Fitems%2FanyOf%2F5%2Fproperties%2Farguments%2Fproperties%2FmaxLines)**? ([integer](https://json-schema.org/understanding-json-schema/reference/numeric "numeric (JSON Schema)"))

            Keep at most this many lines, from the end. Defaults to the server limit.

            * maximum

              `9007199254740991`

            * exclusiveMinimum

              `0`

          * **[`paneId`](https://libtmux.org/en/ts/latest/mcp/tools/call_read_tools_batch/#mcp.tool.call_read_tools_batch.input%2Fproperties%2Foperations%2Fitems%2FanyOf%2F5%2Fproperties%2Farguments%2Fproperties%2FpaneId)** ([string](https://json-schema.org/understanding-json-schema/reference/string "string (JSON Schema)"))

            Stable pane id, e.g. %1.

            * pattern

              `"^%\\d+$"`

          * **[`start`](https://libtmux.org/en/ts/latest/mcp/tools/call_read_tools_batch/#mcp.tool.call_read_tools_batch.input%2Fproperties%2Foperations%2Fitems%2FanyOf%2F5%2Fproperties%2Farguments%2Fproperties%2Fstart)**? ([integer](https://json-schema.org/understanding-json-schema/reference/numeric "numeric (JSON Schema)"))

            First line; negative reaches into scrollback.

            * minimum

              `-9007199254740991`

            * maximum

              `9007199254740991`

          No other properties are accepted.

        * **[`tool`](https://libtmux.org/en/ts/latest/mcp/tools/call_read_tools_batch/#mcp.tool.call_read_tools_batch.input%2Fproperties%2Foperations%2Fitems%2FanyOf%2F5%2Fproperties%2Ftool)** ("capture_pane")

          Run [`capture_pane`](https://libtmux.org/en/ts/latest/mcp/tools/capture_pane/) as this step of the batch.

        No other properties are accepted.

      * **[Variant 7](https://libtmux.org/en/ts/latest/mcp/tools/call_read_tools_batch/#mcp.tool.call_read_tools_batch.input%2Fproperties%2Foperations%2Fitems%2FanyOf%2F6)** ([object](https://json-schema.org/understanding-json-schema/reference/object "object (JSON Schema)"))

        * **[`arguments`](https://libtmux.org/en/ts/latest/mcp/tools/call_read_tools_batch/#mcp.tool.call_read_tools_batch.input%2Fproperties%2Foperations%2Fitems%2FanyOf%2F6%2Fproperties%2Farguments)**? ([object](https://json-schema.org/understanding-json-schema/reference/object "object (JSON Schema)"))

          Arguments for [`capture_since`](https://libtmux.org/en/ts/latest/mcp/tools/capture_since/), exactly the shape it takes when called on its own.

          * **[`cursor`](https://libtmux.org/en/ts/latest/mcp/tools/call_read_tools_batch/#mcp.tool.call_read_tools_batch.input%2Fproperties%2Foperations%2Fitems%2FanyOf%2F6%2Fproperties%2Farguments%2Fproperties%2Fcursor)**? ([string](https://json-schema.org/understanding-json-schema/reference/string "string (JSON Schema)"))

            The cursor from your previous [capture_since](https://libtmux.org/en/ts/latest/mcp/tools/capture_since/). Omit on the first call.

            * pattern

              `"^ltxc1\\.[0-9a-f]{32}\\.(?:0|[1-9][0-9]*)$"`

          * **[`maxLines`](https://libtmux.org/en/ts/latest/mcp/tools/call_read_tools_batch/#mcp.tool.call_read_tools_batch.input%2Fproperties%2Foperations%2Fitems%2FanyOf%2F6%2Fproperties%2Farguments%2Fproperties%2FmaxLines)**? ([integer](https://json-schema.org/understanding-json-schema/reference/numeric "numeric (JSON Schema)"))

            Keep at most this many lines, from the end. Defaults to the server limit.

            * maximum

              `9007199254740991`

            * exclusiveMinimum

              `0`

          * **[`paneId`](https://libtmux.org/en/ts/latest/mcp/tools/call_read_tools_batch/#mcp.tool.call_read_tools_batch.input%2Fproperties%2Foperations%2Fitems%2FanyOf%2F6%2Fproperties%2Farguments%2Fproperties%2FpaneId)** ([string](https://json-schema.org/understanding-json-schema/reference/string "string (JSON Schema)"))

            Stable pane id, e.g. %1.

            * pattern

              `"^%\\d+$"`

          * **[`waitMs`](https://libtmux.org/en/ts/latest/mcp/tools/call_read_tools_batch/#mcp.tool.call_read_tools_batch.input%2Fproperties%2Foperations%2Fitems%2FanyOf%2F6%2Fproperties%2Farguments%2Fproperties%2FwaitMs)**? ([integer](https://json-schema.org/understanding-json-schema/reference/numeric "numeric (JSON Schema)"))

            Wait up to this long for new output before answering. Default 0.

            * minimum

              `0`

            * maximum

              `9007199254740991`

          No other properties are accepted.

        * **[`tool`](https://libtmux.org/en/ts/latest/mcp/tools/call_read_tools_batch/#mcp.tool.call_read_tools_batch.input%2Fproperties%2Foperations%2Fitems%2FanyOf%2F6%2Fproperties%2Ftool)** ("capture_since")

          Run [`capture_since`](https://libtmux.org/en/ts/latest/mcp/tools/capture_since/) as this step of the batch.

        No other properties are accepted.

      * **[Variant 8](https://libtmux.org/en/ts/latest/mcp/tools/call_read_tools_batch/#mcp.tool.call_read_tools_batch.input%2Fproperties%2Foperations%2Fitems%2FanyOf%2F7)** ([object](https://json-schema.org/understanding-json-schema/reference/object "object (JSON Schema)"))

        * **[`arguments`](https://libtmux.org/en/ts/latest/mcp/tools/call_read_tools_batch/#mcp.tool.call_read_tools_batch.input%2Fproperties%2Foperations%2Fitems%2FanyOf%2F7%2Fproperties%2Farguments)**? ([object](https://json-schema.org/understanding-json-schema/reference/object "object (JSON Schema)"))

          Arguments for [`search_panes`](https://libtmux.org/en/ts/latest/mcp/tools/search_panes/), exactly the shape it takes when called on its own.

          * **[`maxMatchesPerPane`](https://libtmux.org/en/ts/latest/mcp/tools/call_read_tools_batch/#mcp.tool.call_read_tools_batch.input%2Fproperties%2Foperations%2Fitems%2FanyOf%2F7%2Fproperties%2Farguments%2Fproperties%2FmaxMatchesPerPane)**? ([integer](https://json-schema.org/understanding-json-schema/reference/numeric "numeric (JSON Schema)"))

            Stop after this many matches in each pane. Defaults to the server limit.

            * maximum

              `9007199254740991`

            * exclusiveMinimum

              `0`

          * **[`pattern`](https://libtmux.org/en/ts/latest/mcp/tools/call_read_tools_batch/#mcp.tool.call_read_tools_batch.input%2Fproperties%2Foperations%2Fitems%2FanyOf%2F7%2Fproperties%2Farguments%2Fproperties%2Fpattern)** ([string](https://json-schema.org/understanding-json-schema/reference/string "string (JSON Schema)"))

            Non-empty literal text to find.

            * minLength

              `1`

          * **[`regex`](https://libtmux.org/en/ts/latest/mcp/tools/call_read_tools_batch/#mcp.tool.call_read_tools_batch.input%2Fproperties%2Foperations%2Fitems%2FanyOf%2F7%2Fproperties%2Farguments%2Fproperties%2Fregex)**? ([boolean](https://json-schema.org/understanding-json-schema/reference/boolean "boolean (JSON Schema)"))

            Interpret pattern using libtmux’s bounded regular-expression grammar.

          * **[`scrollbackLines`](https://libtmux.org/en/ts/latest/mcp/tools/call_read_tools_batch/#mcp.tool.call_read_tools_batch.input%2Fproperties%2Foperations%2Fitems%2FanyOf%2F7%2Fproperties%2Farguments%2Fproperties%2FscrollbackLines)**? ([integer](https://json-schema.org/understanding-json-schema/reference/numeric "numeric (JSON Schema)"))

            How far above the visible screen to search. Default 0.

            * minimum

              `0`

            * maximum

              `9007199254740991`

          * **[`session`](https://libtmux.org/en/ts/latest/mcp/tools/call_read_tools_batch/#mcp.tool.call_read_tools_batch.input%2Fproperties%2Foperations%2Fitems%2FanyOf%2F7%2Fproperties%2Farguments%2Fproperties%2Fsession)**? ([string](https://json-schema.org/understanding-json-schema/reference/string "string (JSON Schema)"))

            Restrict to one session by id or name.

          No other properties are accepted.

        * **[`tool`](https://libtmux.org/en/ts/latest/mcp/tools/call_read_tools_batch/#mcp.tool.call_read_tools_batch.input%2Fproperties%2Foperations%2Fitems%2FanyOf%2F7%2Fproperties%2Ftool)** ("search_panes")

          Run [`search_panes`](https://libtmux.org/en/ts/latest/mcp/tools/search_panes/) as this step of the batch.

        No other properties are accepted.

      * **[Variant 9](https://libtmux.org/en/ts/latest/mcp/tools/call_read_tools_batch/#mcp.tool.call_read_tools_batch.input%2Fproperties%2Foperations%2Fitems%2FanyOf%2F8)** ([object](https://json-schema.org/understanding-json-schema/reference/object "object (JSON Schema)"))

        * **[`arguments`](https://libtmux.org/en/ts/latest/mcp/tools/call_read_tools_batch/#mcp.tool.call_read_tools_batch.input%2Fproperties%2Foperations%2Fitems%2FanyOf%2F8%2Fproperties%2Farguments)**? ([object](https://json-schema.org/understanding-json-schema/reference/object "object (JSON Schema)"))

          Arguments for [`show_option`](https://libtmux.org/en/ts/latest/mcp/tools/show_option/), exactly the shape it takes when called on its own.

          * **[`name`](https://libtmux.org/en/ts/latest/mcp/tools/call_read_tools_batch/#mcp.tool.call_read_tools_batch.input%2Fproperties%2Foperations%2Fitems%2FanyOf%2F8%2Fproperties%2Farguments%2Fproperties%2Fname)** ([string](https://json-schema.org/understanding-json-schema/reference/string "string (JSON Schema)"))

            The tmux option to read, such as “status-left”.

          * **[`scope`](https://libtmux.org/en/ts/latest/mcp/tools/call_read_tools_batch/#mcp.tool.call_read_tools_batch.input%2Fproperties%2Foperations%2Fitems%2FanyOf%2F8%2Fproperties%2Farguments%2Fproperties%2Fscope)**? ("server" | "session" | "global-session" | "window" | "global-window" | "pane")

            Default server.

          * **[`target`](https://libtmux.org/en/ts/latest/mcp/tools/call_read_tools_batch/#mcp.tool.call_read_tools_batch.input%2Fproperties%2Foperations%2Fitems%2FanyOf%2F8%2Fproperties%2Farguments%2Fproperties%2Ftarget)**? ([string](https://json-schema.org/understanding-json-schema/reference/string "string (JSON Schema)"))

            Session id/name or pane id, for the matching scope.

          No other properties are accepted.

        * **[`tool`](https://libtmux.org/en/ts/latest/mcp/tools/call_read_tools_batch/#mcp.tool.call_read_tools_batch.input%2Fproperties%2Foperations%2Fitems%2FanyOf%2F8%2Fproperties%2Ftool)** ("show_option")

          Run [`show_option`](https://libtmux.org/en/ts/latest/mcp/tools/show_option/) as this step of the batch.

        No other properties are accepted.

      * **[Variant 10](https://libtmux.org/en/ts/latest/mcp/tools/call_read_tools_batch/#mcp.tool.call_read_tools_batch.input%2Fproperties%2Foperations%2Fitems%2FanyOf%2F9)** ([object](https://json-schema.org/understanding-json-schema/reference/object "object (JSON Schema)"))

        * **[`arguments`](https://libtmux.org/en/ts/latest/mcp/tools/call_read_tools_batch/#mcp.tool.call_read_tools_batch.input%2Fproperties%2Foperations%2Fitems%2FanyOf%2F9%2Fproperties%2Farguments)**? ([object](https://json-schema.org/understanding-json-schema/reference/object "object (JSON Schema)"))

          Arguments for [`show_hooks`](https://libtmux.org/en/ts/latest/mcp/tools/show_hooks/), exactly the shape it takes when called on its own.

          * **[`session`](https://libtmux.org/en/ts/latest/mcp/tools/call_read_tools_batch/#mcp.tool.call_read_tools_batch.input%2Fproperties%2Foperations%2Fitems%2FanyOf%2F9%2Fproperties%2Farguments%2Fproperties%2Fsession)**? ([string](https://json-schema.org/understanding-json-schema/reference/string "string (JSON Schema)"))

            Session scope; omit for server scope.

          No other properties are accepted.

        * **[`tool`](https://libtmux.org/en/ts/latest/mcp/tools/call_read_tools_batch/#mcp.tool.call_read_tools_batch.input%2Fproperties%2Foperations%2Fitems%2FanyOf%2F9%2Fproperties%2Ftool)** ("show_hooks")

          Run [`show_hooks`](https://libtmux.org/en/ts/latest/mcp/tools/show_hooks/) as this step of the batch.

        No other properties are accepted.

      * **[Variant 11](https://libtmux.org/en/ts/latest/mcp/tools/call_read_tools_batch/#mcp.tool.call_read_tools_batch.input%2Fproperties%2Foperations%2Fitems%2FanyOf%2F10)** ([object](https://json-schema.org/understanding-json-schema/reference/object "object (JSON Schema)"))

        * **[`arguments`](https://libtmux.org/en/ts/latest/mcp/tools/call_read_tools_batch/#mcp.tool.call_read_tools_batch.input%2Fproperties%2Foperations%2Fitems%2FanyOf%2F10%2Fproperties%2Farguments)**? ([object](https://json-schema.org/understanding-json-schema/reference/object "object (JSON Schema)"))

          Arguments for [`show_environment`](https://libtmux.org/en/ts/latest/mcp/tools/show_environment/), exactly the shape it takes when called on its own.

          * **[`session`](https://libtmux.org/en/ts/latest/mcp/tools/call_read_tools_batch/#mcp.tool.call_read_tools_batch.input%2Fproperties%2Foperations%2Fitems%2FanyOf%2F10%2Fproperties%2Farguments%2Fproperties%2Fsession)**? ([string](https://json-schema.org/understanding-json-schema/reference/string "string (JSON Schema)"))

            Session id ($1) or name. Omit for the server environment.

          No other properties are accepted.

        * **[`tool`](https://libtmux.org/en/ts/latest/mcp/tools/call_read_tools_batch/#mcp.tool.call_read_tools_batch.input%2Fproperties%2Foperations%2Fitems%2FanyOf%2F10%2Fproperties%2Ftool)** ("show_environment")

          Run [`show_environment`](https://libtmux.org/en/ts/latest/mcp/tools/show_environment/) as this step of the batch.

        No other properties are accepted.

      * **[Variant 12](https://libtmux.org/en/ts/latest/mcp/tools/call_read_tools_batch/#mcp.tool.call_read_tools_batch.input%2Fproperties%2Foperations%2Fitems%2FanyOf%2F11)** ([object](https://json-schema.org/understanding-json-schema/reference/object "object (JSON Schema)"))

        * **[`arguments`](https://libtmux.org/en/ts/latest/mcp/tools/call_read_tools_batch/#mcp.tool.call_read_tools_batch.input%2Fproperties%2Foperations%2Fitems%2FanyOf%2F11%2Fproperties%2Farguments)**? ([object](https://json-schema.org/understanding-json-schema/reference/object "object (JSON Schema)"))

          Arguments for [`get_session_info`](https://libtmux.org/en/ts/latest/mcp/tools/get_session_info/), exactly the shape it takes when called on its own.

          * **[`session`](https://libtmux.org/en/ts/latest/mcp/tools/call_read_tools_batch/#mcp.tool.call_read_tools_batch.input%2Fproperties%2Foperations%2Fitems%2FanyOf%2F11%2Fproperties%2Farguments%2Fproperties%2Fsession)** ([string](https://json-schema.org/understanding-json-schema/reference/string "string (JSON Schema)"))

            Session id ($1) or name.

          No other properties are accepted.

        * **[`tool`](https://libtmux.org/en/ts/latest/mcp/tools/call_read_tools_batch/#mcp.tool.call_read_tools_batch.input%2Fproperties%2Foperations%2Fitems%2FanyOf%2F11%2Fproperties%2Ftool)** ("get_session_info")

          Run [`get_session_info`](https://libtmux.org/en/ts/latest/mcp/tools/get_session_info/) as this step of the batch.

        No other properties are accepted.

      * **[Variant 13](https://libtmux.org/en/ts/latest/mcp/tools/call_read_tools_batch/#mcp.tool.call_read_tools_batch.input%2Fproperties%2Foperations%2Fitems%2FanyOf%2F12)** ([object](https://json-schema.org/understanding-json-schema/reference/object "object (JSON Schema)"))

        * **[`arguments`](https://libtmux.org/en/ts/latest/mcp/tools/call_read_tools_batch/#mcp.tool.call_read_tools_batch.input%2Fproperties%2Foperations%2Fitems%2FanyOf%2F12%2Fproperties%2Farguments)**? ([object](https://json-schema.org/understanding-json-schema/reference/object "object (JSON Schema)"))

          Arguments for [`get_window_info`](https://libtmux.org/en/ts/latest/mcp/tools/get_window_info/), exactly the shape it takes when called on its own.

          * **[`windowId`](https://libtmux.org/en/ts/latest/mcp/tools/call_read_tools_batch/#mcp.tool.call_read_tools_batch.input%2Fproperties%2Foperations%2Fitems%2FanyOf%2F12%2Fproperties%2Farguments%2Fproperties%2FwindowId)** ([string](https://json-schema.org/understanding-json-schema/reference/string "string (JSON Schema)"))

            Stable window id, e.g. @1.

            * pattern

              `"^@\\d+$"`

          No other properties are accepted.

        * **[`tool`](https://libtmux.org/en/ts/latest/mcp/tools/call_read_tools_batch/#mcp.tool.call_read_tools_batch.input%2Fproperties%2Foperations%2Fitems%2FanyOf%2F12%2Fproperties%2Ftool)** ("get_window_info")

          Run [`get_window_info`](https://libtmux.org/en/ts/latest/mcp/tools/get_window_info/) as this step of the batch.

        No other properties are accepted.

      * **[Variant 14](https://libtmux.org/en/ts/latest/mcp/tools/call_read_tools_batch/#mcp.tool.call_read_tools_batch.input%2Fproperties%2Foperations%2Fitems%2FanyOf%2F13)** ([object](https://json-schema.org/understanding-json-schema/reference/object "object (JSON Schema)"))

        * **[`arguments`](https://libtmux.org/en/ts/latest/mcp/tools/call_read_tools_batch/#mcp.tool.call_read_tools_batch.input%2Fproperties%2Foperations%2Fitems%2FanyOf%2F13%2Fproperties%2Farguments)**? ([object](https://json-schema.org/understanding-json-schema/reference/object "object (JSON Schema)"))

          Arguments for [`find_pane_by_position`](https://libtmux.org/en/ts/latest/mcp/tools/find_pane_by_position/), exactly the shape it takes when called on its own.

          * **[`corner`](https://libtmux.org/en/ts/latest/mcp/tools/call_read_tools_batch/#mcp.tool.call_read_tools_batch.input%2Fproperties%2Foperations%2Fitems%2FanyOf%2F13%2Fproperties%2Farguments%2Fproperties%2Fcorner)** ("top-left" | "top-right" | "bottom-left" | "bottom-right")

            Which corner of the window’s layout to resolve.

          * **[`windowId`](https://libtmux.org/en/ts/latest/mcp/tools/call_read_tools_batch/#mcp.tool.call_read_tools_batch.input%2Fproperties%2Foperations%2Fitems%2FanyOf%2F13%2Fproperties%2Farguments%2Fproperties%2FwindowId)** ([string](https://json-schema.org/understanding-json-schema/reference/string "string (JSON Schema)"))

            Stable window id, e.g. @1.

            * pattern

              `"^@\\d+$"`

          No other properties are accepted.

        * **[`tool`](https://libtmux.org/en/ts/latest/mcp/tools/call_read_tools_batch/#mcp.tool.call_read_tools_batch.input%2Fproperties%2Foperations%2Fitems%2FanyOf%2F13%2Fproperties%2Ftool)** ("find_pane_by_position")

          Run [`find_pane_by_position`](https://libtmux.org/en/ts/latest/mcp/tools/find_pane_by_position/) as this step of the batch.

        No other properties are accepted.

      * **[Variant 15](https://libtmux.org/en/ts/latest/mcp/tools/call_read_tools_batch/#mcp.tool.call_read_tools_batch.input%2Fproperties%2Foperations%2Fitems%2FanyOf%2F14)** ([object](https://json-schema.org/understanding-json-schema/reference/object "object (JSON Schema)"))

        * **[`arguments`](https://libtmux.org/en/ts/latest/mcp/tools/call_read_tools_batch/#mcp.tool.call_read_tools_batch.input%2Fproperties%2Foperations%2Fitems%2FanyOf%2F14%2Fproperties%2Farguments)**? ([object](https://json-schema.org/understanding-json-schema/reference/object "object (JSON Schema)"))

          Arguments for [`get_tmux_variables`](https://libtmux.org/en/ts/latest/mcp/tools/get_tmux_variables/), exactly the shape it takes when called on its own.

          * **[`names`](https://libtmux.org/en/ts/latest/mcp/tools/call_read_tools_batch/#mcp.tool.call_read_tools_batch.input%2Fproperties%2Foperations%2Fitems%2FanyOf%2F14%2Fproperties%2Farguments%2Fproperties%2Fnames)** ([Array](https://json-schema.org/understanding-json-schema/reference/array "array (JSON Schema)")<[string](https://json-schema.org/understanding-json-schema/reference/string "string (JSON Schema)")>)

            Variable names to resolve, such as “pane_current_command” — bare names, not `#{…}` format syntax.

            * minItems

              `1`

            * maxItems

              `32`

            - **[Items](https://libtmux.org/en/ts/latest/mcp/tools/call_read_tools_batch/#mcp.tool.call_read_tools_batch.input%2Fproperties%2Foperations%2Fitems%2FanyOf%2F14%2Fproperties%2Farguments%2Fproperties%2Fnames%2Fitems)** ([string](https://json-schema.org/understanding-json-schema/reference/string "string (JSON Schema)"))

              * pattern

                `"^[A-Za-z][A-Za-z0-9_]*$"`

          * **[`paneId`](https://libtmux.org/en/ts/latest/mcp/tools/call_read_tools_batch/#mcp.tool.call_read_tools_batch.input%2Fproperties%2Foperations%2Fitems%2FanyOf%2F14%2Fproperties%2Farguments%2Fproperties%2FpaneId)**? ([string](https://json-schema.org/understanding-json-schema/reference/string "string (JSON Schema)"))

            Stable pane id, e.g. %1.

            * pattern

              `"^%\\d+$"`

          No other properties are accepted.

        * **[`tool`](https://libtmux.org/en/ts/latest/mcp/tools/call_read_tools_batch/#mcp.tool.call_read_tools_batch.input%2Fproperties%2Foperations%2Fitems%2FanyOf%2F14%2Fproperties%2Ftool)** ("get_tmux_variables")

          Run [`get_tmux_variables`](https://libtmux.org/en/ts/latest/mcp/tools/get_tmux_variables/) as this step of the batch.

        No other properties are accepted.

      * **[Variant 16](https://libtmux.org/en/ts/latest/mcp/tools/call_read_tools_batch/#mcp.tool.call_read_tools_batch.input%2Fproperties%2Foperations%2Fitems%2FanyOf%2F15)** ([object](https://json-schema.org/understanding-json-schema/reference/object "object (JSON Schema)"))

        * **[`arguments`](https://libtmux.org/en/ts/latest/mcp/tools/call_read_tools_batch/#mcp.tool.call_read_tools_batch.input%2Fproperties%2Foperations%2Fitems%2FanyOf%2F15%2Fproperties%2Farguments)**? ([object](https://json-schema.org/understanding-json-schema/reference/object "object (JSON Schema)"))

          Arguments for [`snapshot_pane`](https://libtmux.org/en/ts/latest/mcp/tools/snapshot_pane/), exactly the shape it takes when called on its own.

          * **[`maxLines`](https://libtmux.org/en/ts/latest/mcp/tools/call_read_tools_batch/#mcp.tool.call_read_tools_batch.input%2Fproperties%2Foperations%2Fitems%2FanyOf%2F15%2Fproperties%2Farguments%2Fproperties%2FmaxLines)**? ([integer](https://json-schema.org/understanding-json-schema/reference/numeric "numeric (JSON Schema)"))

            Keep at most this many lines, from the end. Defaults to the server limit.

            * maximum

              `9007199254740991`

            * exclusiveMinimum

              `0`

          * **[`paneId`](https://libtmux.org/en/ts/latest/mcp/tools/call_read_tools_batch/#mcp.tool.call_read_tools_batch.input%2Fproperties%2Foperations%2Fitems%2FanyOf%2F15%2Fproperties%2Farguments%2Fproperties%2FpaneId)** ([string](https://json-schema.org/understanding-json-schema/reference/string "string (JSON Schema)"))

            Stable pane id, e.g. %1.

            * pattern

              `"^%\\d+$"`

          No other properties are accepted.

        * **[`tool`](https://libtmux.org/en/ts/latest/mcp/tools/call_read_tools_batch/#mcp.tool.call_read_tools_batch.input%2Fproperties%2Foperations%2Fitems%2FanyOf%2F15%2Fproperties%2Ftool)** ("snapshot_pane")

          Run [`snapshot_pane`](https://libtmux.org/en/ts/latest/mcp/tools/snapshot_pane/) as this step of the batch.

        No other properties are accepted.

  ## Result[#](https://libtmux.org/en/ts/latest/mcp/tools/call_read_tools_batch/#mcp.tool.call_read_tools_batch.result)

  Returns [object](https://json-schema.org/understanding-json-schema/reference/object "object (JSON Schema)")

  * **[`failed`](https://libtmux.org/en/ts/latest/mcp/tools/call_read_tools_batch/#mcp.tool.call_read_tools_batch.output%2Fproperties%2Ffailed)** ([integer](https://json-schema.org/understanding-json-schema/reference/numeric "numeric (JSON Schema)"))

    * minimum

      `0`

    * maximum

      `9007199254740991`

  * **[`onError`](https://libtmux.org/en/ts/latest/mcp/tools/call_read_tools_batch/#mcp.tool.call_read_tools_batch.output%2Fproperties%2FonError)** ("stop" | "continue")

  * **[`results`](https://libtmux.org/en/ts/latest/mcp/tools/call_read_tools_batch/#mcp.tool.call_read_tools_batch.output%2Fproperties%2Fresults)** ([Array](https://json-schema.org/understanding-json-schema/reference/array "array (JSON Schema)")<[object](https://json-schema.org/understanding-json-schema/reference/object "object (JSON Schema)")>)

    * **[Items](https://libtmux.org/en/ts/latest/mcp/tools/call_read_tools_batch/#mcp.tool.call_read_tools_batch.output%2Fproperties%2Fresults%2Fitems)** ([object](https://json-schema.org/understanding-json-schema/reference/object "object (JSON Schema)"))

      * **[`error`](https://libtmux.org/en/ts/latest/mcp/tools/call_read_tools_batch/#mcp.tool.call_read_tools_batch.output%2Fproperties%2Fresults%2Fitems%2Fproperties%2Ferror)** ([string](https://json-schema.org/understanding-json-schema/reference/string "string (JSON Schema)") | [null](https://json-schema.org/understanding-json-schema/reference/null "null (JSON Schema)"))

      * **[`index`](https://libtmux.org/en/ts/latest/mcp/tools/call_read_tools_batch/#mcp.tool.call_read_tools_batch.output%2Fproperties%2Fresults%2Fitems%2Fproperties%2Findex)** ([integer](https://json-schema.org/understanding-json-schema/reference/numeric "numeric (JSON Schema)"))

        * minimum

          `0`

        * maximum

          `9007199254740991`

      * **[`result`](https://libtmux.org/en/ts/latest/mcp/tools/call_read_tools_batch/#mcp.tool.call_read_tools_batch.output%2Fproperties%2Fresults%2Fitems%2Fproperties%2Fresult)** ([object](https://json-schema.org/understanding-json-schema/reference/object "object (JSON Schema)") | [null](https://json-schema.org/understanding-json-schema/reference/null "null (JSON Schema)"))

        Matches one or more variants.

        * **[Variant 1](https://libtmux.org/en/ts/latest/mcp/tools/call_read_tools_batch/#mcp.tool.call_read_tools_batch.output%2Fproperties%2Fresults%2Fitems%2Fproperties%2Fresult%2FanyOf%2F0)** ([object](https://json-schema.org/understanding-json-schema/reference/object "object (JSON Schema)"))

          * **[`content`](https://libtmux.org/en/ts/latest/mcp/tools/call_read_tools_batch/#mcp.tool.call_read_tools_batch.output%2Fproperties%2Fresults%2Fitems%2Fproperties%2Fresult%2FanyOf%2F0%2Fproperties%2Fcontent)** ([Array](https://json-schema.org/understanding-json-schema/reference/array "array (JSON Schema)")\<any value>)

          * **[`isError`](https://libtmux.org/en/ts/latest/mcp/tools/call_read_tools_batch/#mcp.tool.call_read_tools_batch.output%2Fproperties%2Fresults%2Fitems%2Fproperties%2Fresult%2FanyOf%2F0%2Fproperties%2FisError)**? ([boolean](https://json-schema.org/understanding-json-schema/reference/boolean "boolean (JSON Schema)"))

          * **[`structuredContent`](https://libtmux.org/en/ts/latest/mcp/tools/call_read_tools_batch/#mcp.tool.call_read_tools_batch.output%2Fproperties%2Fresults%2Fitems%2Fproperties%2Fresult%2FanyOf%2F0%2Fproperties%2FstructuredContent)**? ([Record](https://json-schema.org/understanding-json-schema/reference/object "object (JSON Schema)")\<string, any value>)

      * **[`resultTruncated`](https://libtmux.org/en/ts/latest/mcp/tools/call_read_tools_batch/#mcp.tool.call_read_tools_batch.output%2Fproperties%2Fresults%2Fitems%2Fproperties%2FresultTruncated)** ([boolean](https://json-schema.org/understanding-json-schema/reference/boolean "boolean (JSON Schema)"))

      * **[`success`](https://libtmux.org/en/ts/latest/mcp/tools/call_read_tools_batch/#mcp.tool.call_read_tools_batch.output%2Fproperties%2Fresults%2Fitems%2Fproperties%2Fsuccess)** ([boolean](https://json-schema.org/understanding-json-schema/reference/boolean "boolean (JSON Schema)"))

      * **[`tool`](https://libtmux.org/en/ts/latest/mcp/tools/call_read_tools_batch/#mcp.tool.call_read_tools_batch.output%2Fproperties%2Fresults%2Fitems%2Fproperties%2Ftool)** ([string](https://json-schema.org/understanding-json-schema/reference/string "string (JSON Schema)"))

      No other properties are accepted.

  * **[`stoppedAt`](https://libtmux.org/en/ts/latest/mcp/tools/call_read_tools_batch/#mcp.tool.call_read_tools_batch.output%2Fproperties%2FstoppedAt)** ([integer](https://json-schema.org/understanding-json-schema/reference/numeric "numeric (JSON Schema)") | [null](https://json-schema.org/understanding-json-schema/reference/null "null (JSON Schema)"))

    Matches one or more variants.

    * **[Variant 1](https://libtmux.org/en/ts/latest/mcp/tools/call_read_tools_batch/#mcp.tool.call_read_tools_batch.output%2Fproperties%2FstoppedAt%2FanyOf%2F0)** ([integer](https://json-schema.org/understanding-json-schema/reference/numeric "numeric (JSON Schema)"))

      * minimum

        `0`

      * maximum

        `9007199254740991`

  * **[`succeeded`](https://libtmux.org/en/ts/latest/mcp/tools/call_read_tools_batch/#mcp.tool.call_read_tools_batch.output%2Fproperties%2Fsucceeded)** ([integer](https://json-schema.org/understanding-json-schema/reference/numeric "numeric (JSON Schema)"))

    * minimum

      `0`

    * maximum

      `9007199254740991`

  * **[`truncated`](https://libtmux.org/en/ts/latest/mcp/tools/call_read_tools_batch/#mcp.tool.call_read_tools_batch.output%2Fproperties%2Ftruncated)** ([boolean](https://json-schema.org/understanding-json-schema/reference/boolean "boolean (JSON Schema)"))

  * **[`truncatedBytes`](https://libtmux.org/en/ts/latest/mcp/tools/call_read_tools_batch/#mcp.tool.call_read_tools_batch.output%2Fproperties%2FtruncatedBytes)** ([integer](https://json-schema.org/understanding-json-schema/reference/numeric "numeric (JSON Schema)"))

    * minimum

      `0`

    * maximum

      `9007199254740991`

  No other properties are accepted.

  ## Annotations[#](https://libtmux.org/en/ts/latest/mcp/tools/call_read_tools_batch/#mcp.tool.call_read_tools_batch.annotations)

  * [`destructiveHint`](https://libtmux.org/en/ts/latest/mcp/reference/glossary/#destructiveHint)

    `true`

  * [`idempotentHint`](https://libtmux.org/en/ts/latest/mcp/reference/glossary/#idempotentHint)

    `false`

  * [`openWorldHint`](https://libtmux.org/en/ts/latest/mcp/reference/glossary/#openWorldHint)

    `true`

  * [`readOnlyHint`](https://libtmux.org/en/ts/latest/mcp/reference/glossary/#readOnlyHint)

    `false`

  ## Protocol data[#](https://libtmux.org/en/ts/latest/mcp/tools/call_read_tools_batch/#mcp.tool.call_read_tools_batch.schemas)

  Use the complete advertised contract for validation and client integration.

  Input schema

  ```json
  {
    "$schema": "http://json-schema.org/draft-07/schema#",
    "properties": {
      "onError": {
        "description": "Whether a failed operation ends the batch. Defaults to stop.",
        "enum": [
          "stop",
          "continue"
        ],
        "type": "string"
      },
      "operations": {
        "description": "The read-only tool calls to run, in order, in one approval.",
        "items": {
          "anyOf": [
            {
              "additionalProperties": false,
              "properties": {
                "arguments": {
                  "additionalProperties": false,
                  "description": "Arguments for `list_sessions`, exactly the shape it takes when called on its own.",
                  "properties": {},
                  "type": "object"
                },
                "tool": {
                  "const": "list_sessions",
                  "description": "Run `list_sessions` as this step of the batch.",
                  "type": "string"
                }
              },
              "required": [
                "tool"
              ],
              "type": "object"
            },
            {
              "additionalProperties": false,
              "properties": {
                "arguments": {
                  "additionalProperties": false,
                  "description": "Arguments for `list_windows`, exactly the shape it takes when called on its own.",
                  "properties": {
                    "session": {
                      "description": "Session id ($1) or name. Omit for all sessions.",
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "tool": {
                  "const": "list_windows",
                  "description": "Run `list_windows` as this step of the batch.",
                  "type": "string"
                }
              },
              "required": [
                "tool"
              ],
              "type": "object"
            },
            {
              "additionalProperties": false,
              "properties": {
                "arguments": {
                  "additionalProperties": false,
                  "description": "Arguments for `list_panes`, exactly the shape it takes when called on its own.",
                  "properties": {
                    "session": {
                      "description": "Session id ($1) or name.",
                      "type": "string"
                    },
                    "window": {
                      "description": "Stable window id, e.g. @1.",
                      "pattern": "^@\\d+$",
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "tool": {
                  "const": "list_panes",
                  "description": "Run `list_panes` as this step of the batch.",
                  "type": "string"
                }
              },
              "required": [
                "tool"
              ],
              "type": "object"
            },
            {
              "additionalProperties": false,
              "properties": {
                "arguments": {
                  "additionalProperties": false,
                  "description": "Arguments for `get_pane_info`, exactly the shape it takes when called on its own.",
                  "properties": {
                    "paneId": {
                      "description": "Stable pane id, e.g. %1.",
                      "pattern": "^%\\d+$",
                      "type": "string"
                    }
                  },
                  "required": [
                    "paneId"
                  ],
                  "type": "object"
                },
                "tool": {
                  "const": "get_pane_info",
                  "description": "Run `get_pane_info` as this step of the batch.",
                  "type": "string"
                }
              },
              "required": [
                "tool"
              ],
              "type": "object"
            },
            {
              "additionalProperties": false,
              "properties": {
                "arguments": {
                  "additionalProperties": false,
                  "description": "Arguments for `get_server_info`, exactly the shape it takes when called on its own.",
                  "properties": {},
                  "type": "object"
                },
                "tool": {
                  "const": "get_server_info",
                  "description": "Run `get_server_info` as this step of the batch.",
                  "type": "string"
                }
              },
              "required": [
                "tool"
              ],
              "type": "object"
            },
            {
              "additionalProperties": false,
              "properties": {
                "arguments": {
                  "additionalProperties": false,
                  "description": "Arguments for `capture_pane`, exactly the shape it takes when called on its own.",
                  "properties": {
                    "end": {
                      "description": "Last line, on the same scale as start: 0 is the top of the visible screen and negative reaches back into history. It does not count back from the bottom, so end:-1 is one line above the screen top, not the last line of output.",
                      "maximum": 9007199254740991,
                      "minimum": -9007199254740991,
                      "type": "integer"
                    },
                    "joinWrapped": {
                      "description": "Rejoin lines tmux wrapped.",
                      "type": "boolean"
                    },
                    "maxLines": {
                      "description": "Keep at most this many lines, from the end. Defaults to the server limit.",
                      "exclusiveMinimum": 0,
                      "maximum": 9007199254740991,
                      "type": "integer"
                    },
                    "paneId": {
                      "description": "Stable pane id, e.g. %1.",
                      "pattern": "^%\\d+$",
                      "type": "string"
                    },
                    "start": {
                      "description": "First line; negative reaches into scrollback.",
                      "maximum": 9007199254740991,
                      "minimum": -9007199254740991,
                      "type": "integer"
                    }
                  },
                  "required": [
                    "paneId"
                  ],
                  "type": "object"
                },
                "tool": {
                  "const": "capture_pane",
                  "description": "Run `capture_pane` as this step of the batch.",
                  "type": "string"
                }
              },
              "required": [
                "tool"
              ],
              "type": "object"
            },
            {
              "additionalProperties": false,
              "properties": {
                "arguments": {
                  "additionalProperties": false,
                  "description": "Arguments for `capture_since`, exactly the shape it takes when called on its own.",
                  "properties": {
                    "cursor": {
                      "description": "The cursor from your previous capture_since. Omit on the first call.",
                      "pattern": "^ltxc1\\.[0-9a-f]{32}\\.(?:0|[1-9][0-9]*)$",
                      "type": "string"
                    },
                    "maxLines": {
                      "description": "Keep at most this many lines, from the end. Defaults to the server limit.",
                      "exclusiveMinimum": 0,
                      "maximum": 9007199254740991,
                      "type": "integer"
                    },
                    "paneId": {
                      "description": "Stable pane id, e.g. %1.",
                      "pattern": "^%\\d+$",
                      "type": "string"
                    },
                    "waitMs": {
                      "description": "Wait up to this long for new output before answering. Default 0.",
                      "maximum": 9007199254740991,
                      "minimum": 0,
                      "type": "integer"
                    }
                  },
                  "required": [
                    "paneId"
                  ],
                  "type": "object"
                },
                "tool": {
                  "const": "capture_since",
                  "description": "Run `capture_since` as this step of the batch.",
                  "type": "string"
                }
              },
              "required": [
                "tool"
              ],
              "type": "object"
            },
            {
              "additionalProperties": false,
              "properties": {
                "arguments": {
                  "additionalProperties": false,
                  "description": "Arguments for `search_panes`, exactly the shape it takes when called on its own.",
                  "properties": {
                    "maxMatchesPerPane": {
                      "description": "Stop after this many matches in each pane. Defaults to the server limit.",
                      "exclusiveMinimum": 0,
                      "maximum": 9007199254740991,
                      "type": "integer"
                    },
                    "pattern": {
                      "description": "Non-empty literal text to find.",
                      "minLength": 1,
                      "type": "string"
                    },
                    "regex": {
                      "description": "Interpret pattern using libtmux's bounded regular-expression grammar.",
                      "type": "boolean"
                    },
                    "scrollbackLines": {
                      "description": "How far above the visible screen to search. Default 0.",
                      "maximum": 9007199254740991,
                      "minimum": 0,
                      "type": "integer"
                    },
                    "session": {
                      "description": "Restrict to one session by id or name.",
                      "type": "string"
                    }
                  },
                  "required": [
                    "pattern"
                  ],
                  "type": "object"
                },
                "tool": {
                  "const": "search_panes",
                  "description": "Run `search_panes` as this step of the batch.",
                  "type": "string"
                }
              },
              "required": [
                "tool"
              ],
              "type": "object"
            },
            {
              "additionalProperties": false,
              "properties": {
                "arguments": {
                  "additionalProperties": false,
                  "description": "Arguments for `show_option`, exactly the shape it takes when called on its own.",
                  "properties": {
                    "name": {
                      "description": "The tmux option to read, such as \"status-left\".",
                      "type": "string"
                    },
                    "scope": {
                      "description": "Default server.",
                      "enum": [
                        "server",
                        "session",
                        "global-session",
                        "window",
                        "global-window",
                        "pane"
                      ],
                      "type": "string"
                    },
                    "target": {
                      "description": "Session id/name or pane id, for the matching scope.",
                      "type": "string"
                    }
                  },
                  "required": [
                    "name"
                  ],
                  "type": "object"
                },
                "tool": {
                  "const": "show_option",
                  "description": "Run `show_option` as this step of the batch.",
                  "type": "string"
                }
              },
              "required": [
                "tool"
              ],
              "type": "object"
            },
            {
              "additionalProperties": false,
              "properties": {
                "arguments": {
                  "additionalProperties": false,
                  "description": "Arguments for `show_hooks`, exactly the shape it takes when called on its own.",
                  "properties": {
                    "session": {
                      "description": "Session scope; omit for server scope.",
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "tool": {
                  "const": "show_hooks",
                  "description": "Run `show_hooks` as this step of the batch.",
                  "type": "string"
                }
              },
              "required": [
                "tool"
              ],
              "type": "object"
            },
            {
              "additionalProperties": false,
              "properties": {
                "arguments": {
                  "additionalProperties": false,
                  "description": "Arguments for `show_environment`, exactly the shape it takes when called on its own.",
                  "properties": {
                    "session": {
                      "description": "Session id ($1) or name. Omit for the server environment.",
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "tool": {
                  "const": "show_environment",
                  "description": "Run `show_environment` as this step of the batch.",
                  "type": "string"
                }
              },
              "required": [
                "tool"
              ],
              "type": "object"
            },
            {
              "additionalProperties": false,
              "properties": {
                "arguments": {
                  "additionalProperties": false,
                  "description": "Arguments for `get_session_info`, exactly the shape it takes when called on its own.",
                  "properties": {
                    "session": {
                      "description": "Session id ($1) or name.",
                      "type": "string"
                    }
                  },
                  "required": [
                    "session"
                  ],
                  "type": "object"
                },
                "tool": {
                  "const": "get_session_info",
                  "description": "Run `get_session_info` as this step of the batch.",
                  "type": "string"
                }
              },
              "required": [
                "tool"
              ],
              "type": "object"
            },
            {
              "additionalProperties": false,
              "properties": {
                "arguments": {
                  "additionalProperties": false,
                  "description": "Arguments for `get_window_info`, exactly the shape it takes when called on its own.",
                  "properties": {
                    "windowId": {
                      "description": "Stable window id, e.g. @1.",
                      "pattern": "^@\\d+$",
                      "type": "string"
                    }
                  },
                  "required": [
                    "windowId"
                  ],
                  "type": "object"
                },
                "tool": {
                  "const": "get_window_info",
                  "description": "Run `get_window_info` as this step of the batch.",
                  "type": "string"
                }
              },
              "required": [
                "tool"
              ],
              "type": "object"
            },
            {
              "additionalProperties": false,
              "properties": {
                "arguments": {
                  "additionalProperties": false,
                  "description": "Arguments for `find_pane_by_position`, exactly the shape it takes when called on its own.",
                  "properties": {
                    "corner": {
                      "description": "Which corner of the window's layout to resolve.",
                      "enum": [
                        "top-left",
                        "top-right",
                        "bottom-left",
                        "bottom-right"
                      ],
                      "type": "string"
                    },
                    "windowId": {
                      "description": "Stable window id, e.g. @1.",
                      "pattern": "^@\\d+$",
                      "type": "string"
                    }
                  },
                  "required": [
                    "corner",
                    "windowId"
                  ],
                  "type": "object"
                },
                "tool": {
                  "const": "find_pane_by_position",
                  "description": "Run `find_pane_by_position` as this step of the batch.",
                  "type": "string"
                }
              },
              "required": [
                "tool"
              ],
              "type": "object"
            },
            {
              "additionalProperties": false,
              "properties": {
                "arguments": {
                  "additionalProperties": false,
                  "description": "Arguments for `get_tmux_variables`, exactly the shape it takes when called on its own.",
                  "properties": {
                    "names": {
                      "description": "Variable names to resolve, such as \"pane_current_command\" — bare names, not `#{…}` format syntax.",
                      "items": {
                        "pattern": "^[A-Za-z][A-Za-z0-9_]*$",
                        "type": "string"
                      },
                      "maxItems": 32,
                      "minItems": 1,
                      "type": "array",
                      "x-libtmux-tmux-format": "validated-variable-name"
                    },
                    "paneId": {
                      "description": "Stable pane id, e.g. %1.",
                      "pattern": "^%\\d+$",
                      "type": "string"
                    }
                  },
                  "required": [
                    "names"
                  ],
                  "type": "object"
                },
                "tool": {
                  "const": "get_tmux_variables",
                  "description": "Run `get_tmux_variables` as this step of the batch.",
                  "type": "string"
                }
              },
              "required": [
                "tool"
              ],
              "type": "object"
            },
            {
              "additionalProperties": false,
              "properties": {
                "arguments": {
                  "additionalProperties": false,
                  "description": "Arguments for `snapshot_pane`, exactly the shape it takes when called on its own.",
                  "properties": {
                    "maxLines": {
                      "description": "Keep at most this many lines, from the end. Defaults to the server limit.",
                      "exclusiveMinimum": 0,
                      "maximum": 9007199254740991,
                      "type": "integer"
                    },
                    "paneId": {
                      "description": "Stable pane id, e.g. %1.",
                      "pattern": "^%\\d+$",
                      "type": "string"
                    }
                  },
                  "required": [
                    "paneId"
                  ],
                  "type": "object"
                },
                "tool": {
                  "const": "snapshot_pane",
                  "description": "Run `snapshot_pane` as this step of the batch.",
                  "type": "string"
                }
              },
              "required": [
                "tool"
              ],
              "type": "object"
            }
          ]
        },
        "maxItems": 16,
        "minItems": 1,
        "type": "array"
      }
    },
    "required": [
      "operations"
    ],
    "type": "object"
  }
  ```

  Output schema

  ```json
  {
    "$schema": "http://json-schema.org/draft-07/schema#",
    "additionalProperties": false,
    "properties": {
      "failed": {
        "maximum": 9007199254740991,
        "minimum": 0,
        "type": "integer"
      },
      "onError": {
        "enum": [
          "stop",
          "continue"
        ],
        "type": "string"
      },
      "results": {
        "items": {
          "additionalProperties": false,
          "properties": {
            "error": {
              "type": [
                "string",
                "null"
              ]
            },
            "index": {
              "maximum": 9007199254740991,
              "minimum": 0,
              "type": "integer"
            },
            "result": {
              "anyOf": [
                {
                  "additionalProperties": {},
                  "properties": {
                    "content": {
                      "items": {},
                      "type": "array"
                    },
                    "isError": {
                      "type": "boolean"
                    },
                    "structuredContent": {
                      "additionalProperties": {},
                      "propertyNames": {
                        "type": "string"
                      },
                      "type": "object"
                    }
                  },
                  "required": [
                    "content"
                  ],
                  "type": "object"
                },
                {
                  "type": "null"
                }
              ]
            },
            "resultTruncated": {
              "type": "boolean"
            },
            "success": {
              "type": "boolean"
            },
            "tool": {
              "type": "string"
            }
          },
          "required": [
            "error",
            "index",
            "result",
            "resultTruncated",
            "success",
            "tool"
          ],
          "type": "object"
        },
        "type": "array"
      },
      "stoppedAt": {
        "anyOf": [
          {
            "maximum": 9007199254740991,
            "minimum": 0,
            "type": "integer"
          },
          {
            "type": "null"
          }
        ]
      },
      "succeeded": {
        "maximum": 9007199254740991,
        "minimum": 0,
        "type": "integer"
      },
      "truncated": {
        "type": "boolean"
      },
      "truncatedBytes": {
        "maximum": 9007199254740991,
        "minimum": 0,
        "type": "integer"
      }
    },
    "required": [
      "failed",
      "onError",
      "results",
      "stoppedAt",
      "succeeded",
      "truncated",
      "truncatedBytes"
    ],
    "type": "object"
  }
  ```
