Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 2-param tool with no output schema, the description covers all the essential bases: what, when, how, parameters, and a complete 7-field Returns section (matched, matched_hash, window_text, window_size, token_offset, latency_us, cache_size). The only gaps are edge behavior, such as what happens with empty input or error conditions, which is a minor omission for an otherwise thorough contract.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.