Feature request
Caller-controlled output budget parameters — max_results / max_lines / max_direct / max_transitive (or a single max_tokens) — accepted by every query tool, with truncation self-reported in the response (truncated: true, counts of what was dropped).
Why
For multi-agent use (orchestrators assembling task packets for worker agents), the caller knows its token budget; the server doesn't. Today budgets are only partially controllable (limit/offset on some tools; get_code_snippet caps at 500 lines) and not uniform.
Surveyed 10 comparable code-graph MCP servers: the two with the best agent ergonomics both do this — one exposes per-call max_results/max_lines/max_direct/max_transitive on nearly every tool; another hard-caps at 500 rows / 16k tokens and tells the model what was dropped. A silently truncated result is worse than a small one: the agent reasons confidently over the missing half.
Sketch
- Uniform optional
max_rows + max_snippet_lines on all 15 tools (aliases fine).
- Responses always carry exact totals +
truncated (much of this discipline already exists in trace_path/detect_changes — this is about making it uniform and caller-tunable downward).
- Bonus: a
get_usage_stats-style per-session accounting tool (calls by name, chars returned) so operators can measure token savings.
Feature request
Caller-controlled output budget parameters —
max_results/max_lines/max_direct/max_transitive(or a singlemax_tokens) — accepted by every query tool, with truncation self-reported in the response (truncated: true, counts of what was dropped).Why
For multi-agent use (orchestrators assembling task packets for worker agents), the caller knows its token budget; the server doesn't. Today budgets are only partially controllable (
limit/offseton some tools;get_code_snippetcaps at 500 lines) and not uniform.Surveyed 10 comparable code-graph MCP servers: the two with the best agent ergonomics both do this — one exposes per-call
max_results/max_lines/max_direct/max_transitiveon nearly every tool; another hard-caps at 500 rows / 16k tokens and tells the model what was dropped. A silently truncated result is worse than a small one: the agent reasons confidently over the missing half.Sketch
max_rows+max_snippet_lineson all 15 tools (aliases fine).truncated(much of this discipline already exists in trace_path/detect_changes — this is about making it uniform and caller-tunable downward).get_usage_stats-style per-session accounting tool (calls by name, chars returned) so operators can measure token savings.