Intelligent skill resolver for Claude Code — discover, compose, and evolve your AI toolkit.
vault-mcp has 12 tools with basic schemas and descriptions, but significant quality gaps. Tool names lack consistent verb-noun structure (vault_resolve, vault_search are acceptable; vault_dashboard, vault_profile are vague). Descriptions are present but generic, most are 20-80 chars, below the 50-200 char LLM-optimized baseline. Parameter descriptions exist but lack actionable constraints (no enums, ranges, or format specs). Output schemas are not documented, responses are JSON-stringified text, not structured objects. Error handling returns raw error messages without recovery guidance. No tool annotations (readOnlyHint/destructiveHint). Risk classifications are declared but not enforced in schema.
Approve a candidate and forge it into a skill
Get or update vault configuration
Generate and open an interactive HTML dashboard of the vault
List all pending skill candidates in the forge pipeline
Load an asset by ID or load all assets from a squad
Detect and load project profile for auto-loading skills
Reject a candidate without forging it
Task description to find relevant skills for
Output schemas not documented. All tools return JSON-stringified text in a generic {content: [{type: 'text', text: JSON.stringify(...)}]} wrapper. LLMs cannot parse structured fields or plan downstream tool calls. Responses should return typed objects with documented fields.
Parameter descriptions lack actionable constraints. E.g., 'Filter by asset type: agent, task, command, skill' should be an enum constraint, not a free-form string. 'Maximum number of results (default 10)' lacks min/max bounds. No format specs, regex patterns, or length limits.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 43 | 2026-07-28+ | v2 |
Scan configured directories and update the catalog
Search query
Submit a skill candidate to the forge pipeline
Unload an asset by ID or unload all assets from a squad
Error handling returns raw error messages without recovery guidance. E.g., 'Provide id or squad' does not tell the LLM what to do next. Errors should categorize as retryable/user-fixable/fatal and suggest next steps.
Tool names lack consistent verb-noun structure. 'vault_dashboard' (noun-only), 'vault_profile' (noun-only), 'vault_config' (noun-only) are ambiguous. Should be 'generate_dashboard', 'detect_profile', 'get_config' or 'set_config'. LLMs infer intent from verb-noun names.
No tool annotations (readOnlyHint/destructiveHint/idempotentHint). Risk classifications are declared in metadata but not exposed in schema. Tools like vault_approve_candidate and vault_reject_candidate should have destructiveHint=true to signal irreversibility.