Intelligent context management for AI coding agents. Load, lint, measure, and sync rules across Cursor, Claude Code, Copilot, and any AI tool.
The server provides 10 tools with moderate schema coverage and brief descriptions. However, critical gaps exist: (1) Input schemas lack required type definitions and constraints, most parameters are minimally typed; (2) Descriptions are present but brief and lack context on WHEN to use each tool or what prerequisites exist; (3) No error handling guidance or recovery patterns documented; (4) No output schemas visible in the provided code; (5) Parameter descriptions are inconsistent, some missing, others generic; (6) Composition issues: tools like 'lint', 'measure', and 'select' operate on rule arrays but lack clear guidance on dependencies or sequencing. This is typical of a CLI tool ported to MCP without agent-centric design. The tools are READ_ONLY safe, but schema completeness and descriptions need substantial work to enable confident LLM usage.
Detect rule file format based on path and filename
Estimate token count for text content
Create starter rule files in specified format
Lint rules for quality issues, conflicts, and token waste
Load rule files from filesystem
Measure token cost of all rules
Parse YAML frontmatter from rule file content
Parse a single rule file with frontmatter and content extraction
Input schemas lack proper type definitions and constraints. Parameters like 'rules' are typed as arrays but lack itemType, minItems, maxItems; 'options' in select() is an untyped object with no schema details visible. This forces LLMs to guess parameter structure.
Output schemas are completely undocumented. No visible type definitions for return values (MeasureReport, LintReport, RuleFile, SyncResult, etc.). LLMs cannot plan downstream tool calls or extract required fields without empirical discovery.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 41 | 2026-07-28+ | v2 |
Select and filter rules based on task, tags, includes/excludes, and token budget
Sync rules across formats (Cursor, Claude, Copilot, etc.)
Descriptions are too brief (35 - 55 chars) and lack WHEN context. E.g., 'detectFormat' (35 chars) does not explain when to call it instead of letting parseRule infer format automatically. Descriptions should be 50 - 200 chars and include dependency hints.
No error handling guidance. No documented error codes, recovery paths, or actionable error messages. E.g., if 'sync' fails to write to a target, is it retryable? User-fixable? This forces LLMs to blindly retry or give up.
Tool composition is underdocumented. The typical workflow is: loadRules → lint/measure → select → sync. But there are no hints in descriptions about dependencies, prerequisites, or suggested sequencing. LLMs must infer this experimentally.
Parameter 'options' in select() is an untyped object. The description mentions 'SelectOptions with task, budget, tags, include, exclude filters' but does not specify the type contract, allowed values for tags, format of filters, or whether filters are AND/OR combined.
No distinction between required and optional parameters. E.g., 'rootDir' in loadRules() is marked optional with a default, but this is not explicit in the schema. JSON Schema should use 'required' array.
'format' parameter in init() lacks an enum constraint. Description says 'cursor-rules, claude-md, agents-md' but does not enforce these as valid values. LLMs may invent formats like 'copilot-rules' or 'openai-md'.
No documented idempotence for write tools. 'sync' and 'init' are destructive (WRITE risk). The 'dryRun' parameter on 'sync' suggests safety, but there is no explicit guarantee that calling sync twice with the same params produces the same result without side effects.