Universal MCP Filter & CLI Proxy to minimize LLM token consumption. Filters and compresses command outputs before they reach LLM context, saving 60-90% of tokens.
Clov is a CLI proxy server with 23 tools designed for token optimization. While tool names are generally clear and follow verb_noun patterns (files, map, view, brief, git, gh, aws, etc.), the implementation reveals significant quality gaps: (1) Many parameter descriptions lack detail about expected formats, ranges, and constraints. (2) Input schemas are present but inconsistently documented, some tools expose sparse parameter info (e.g., pnpm, docker, kubectl have empty input schemas {}). (3) Output schemas are completely undocumented, no tool returns a documented structure describing what the LLM receives. (4) Error handling descriptions are absent; tools do not indicate what errors they may return or how to recover. (5) Three tools (pnpm, docker, kubectl) have ZERO input parameters defined, which blocks meaningful schema validation. (6) Descriptions are present for all tools (good) but often generic and lack context about when to use each tool vs. alternatives. (7) The server is STDIO-only, which is a hard transport cap of 50/100 regardless of definition quality.
AWS CLI with compact output (force JSON, compress)
Generate 2-line technical summary (heuristic-based)
Run tests and show only failures
Run command and show heuristic summary
Docker commands with compact output
Run command and show only errors/warnings
Download with compact output (strips progress bars)
Three tools (pnpm, docker, kubectl) have empty input schemas ({}). This prevents input validation and forces LLMs to guess at valid parameters. Per the HARD SCORING RULES, tools with no input schema must score 0 on schema dimension.
No output schemas documented for any tool. LLMs cannot plan downstream calls or extract specific fields without knowing what structure each tool returns. This violates the pattern that tools must document their response structure.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | C | 60 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 21 | - | v1 |
List directory contents with token-optimized output (proxy to native ls)
GitHub CLI (gh) commands with token-optimized output
Git commands with compact output
Summarize project dependencies
Initialize clov instructions in CLAUDE.md
Kubectl commands with compact output
Filter and deduplicate log output
Directory tree with token-optimized output (proxy to native tree)
Ultra-condensed diff (only changed lines)
pnpm commands with ultra-compact output
PostgreSQL client with compact output (strip borders, compress tables)
Find files with compact tree output (accepts native find flags like -name, -type)
Show JSON structure without values
Compact grep - strips whitespace, truncates, groups by file
Show environment variables (filtered, sensitive masked)
Read file with intelligent filtering
Parameter descriptions for many tools lack actionable detail. Examples: 'args' is described as 'Arguments passed to ls' but does not specify what flags are safe, what output format is used, or how arguments are escaped.
No error handling guidance documented. Tools do not indicate what errors they may return, whether errors are retryable, or how LLMs should recover. This violates the error-handling pattern which requires clear guidance.
Tool descriptions are generic and lack context about when to use each tool vs. alternatives. Example: 'Git commands with compact output' does not explain what scenarios call for the git tool vs. gh (GitHub CLI) or other tools.
Two destructive tools (hook with uninstall flag, fetch) lack confirmation or dry-run patterns. Tools that modify state should support a confirmation step or preview mode to prevent accidental execution. Per the pattern:confirmation-request, irreversible operations should offer a way to preview consequences before committing.