# 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.

MCP is in development

Server behavior and tool contracts may change. Tool availability depends on the server configuration.

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.

[All TypeScript tools](https://libtmux.org/en/ts/latest/mcp/tools/) · [JSON](https://libtmux.org/en/ts/latest/mcp/tools/call_read_tools_batch.json) · [Source](https://github.com/libtmux/libtmux-ts/blob/b3f338c1a21e614ebf0dd6d55aa36a60db816618/packages/mcp/src/tools/target.ts#L618)

## Arguments

* `onError` optional · string

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

* `operations` required · array

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

## Schemas

The schema defines required fields, nested values, defaults, and validation constraints.

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"
}
```

Tool annotations

```json
{
  "destructiveHint": true,
  "idempotentHint": false,
  "openWorldHint": true,
  "readOnlyHint": false
}
```
