Catenary's multi-surface intelligence router: an MCP server providing IDE-grade code intelligence across many languages with smart routing and UTF-8 accuracy. Supports CLI search, LSP-multiplexing daemon, editing hooks, and observability TUI.
Catenary MCP exposes two filesystem tools (glob, grep) with reasonably complete schemas and descriptions. Both tools start with action verbs and have documented parameters. However, descriptions are moderately detailed but could better explain when/why to use each tool and what distinguishes them. Parameter descriptions are present but lack some specificity around constraints (e.g., regex syntax for 'pattern' in grep, depth limits for glob expansion). Output schemas are not explicitly documented in the provided source, only input parameters are visible. Error handling guidance is absent. Despite these gaps, the tools are functional and follow basic naming conventions.
Expand glob patterns and list filesystem entries with optional enrichment. Each resolved path is dispatched by type: File path shows header with line count and documentSymbol outline; Directory path shows immediate entries with child counts.
Search for patterns across files using gitignore-aware pattern matching with regex support
Output schemas not documented. LLMs cannot plan downstream calls or extract required fields from glob/grep results. Both tools return unspecified structures, forcing agents to guess at response shape.
Tool definitions are inferred from test file references (tests/file_tools_integration.rs) rather than directly visible in explicit tool registration/schema code.
No error handling or recovery guidance. When glob pattern fails to match or grep finds no results, what does the tool return? No guidance on user-fixable vs. retryable errors.
Parameter constraints underdocumented. 'pattern' parameter in grep lacks detail on regex dialect (Rust regex vs. PCRE?). 'paths' array in glob lacks guidance on depth limits, symlink handling, or expected filesystem behavior.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 56 | <=2025-11-25 | v2 |
Descriptions do not explain when to use glob vs. grep or how they complement each other. 'Expand glob patterns' (glob) and 'Search for patterns' (grep) are vague, LLMs may conflate them or call the wrong tool.
No pagination or result limits declared. If glob expands a broad pattern (e.g., '**/*.rs') or grep searches a large codebase, response could exceed context limits. No mention of max results or pagination parameters.
Tool composition unclear. glob returns 'paths with enrichment' but what enrichment? If downstream tools need specific IDs or metadata, the response must provide them. Current description leaves this ambiguous.