# libtmux_mcp.tools.batch_tools.call_read_tools_batch

- **Module:** libtmux_mcp.tools.batch_tools
- **Package:** libtmux-mcp
- **Language:** Python
- **Kind:** function
- **Source:** https://github.com/tmux-python/libtmux-mcp/blob/4daddc0dfca96c43bf521d818bf91564e1434760/src/libtmux_mcp/tools/batch_tools.py#L252
- **Page:** https://libtmux.org/en/py/latest/mcp/reference/libtmux_mcp-tools-batch_tools-call_read_tools_batch/

```
libtmux_mcp.tools.batch_tools.call_read_tools_batch(operations: list[ToolCallOperation], on_error: _OnError = "stop", ctx: Context | None = None) -> ToolCallBatchResult
```

Call several `inspect` tools serially and return per-tool results.

Use when one agent turn needs several observations. Each nested call
still goes through FastMCP validation and this server's middleware.
Only `inspect` tools are accepted; anything that changes tmux state
is refused, whatever this server has enabled.

This wrapper aggregates authority under its own name: a client rule
keyed on a nested tool's name does not fire for a call made through
it. Read it as authority to invoke any `inspect` tool.
