CLI para instalar, listar, atualizar e expor skills da HealthDev para agentes de IA.
This STDIO-only MCP server implements 4 read-only tools for browsing a local skills catalog. Tool naming is clear and action-oriented (search_, read_, fetch_, list_), and all tools have descriptions. However, descriptions are generic and lack LLM-optimized guidance. Input schemas are present but minimal, most parameters lack descriptions. Output schemas are undocumented, making it unclear what fields downstream tools should expect. Error handling is absent; the code would crash on invalid skillId without guidance for recovery. No security-sensitive operations, so permission gating is not applicable. The tool set is cohesive and read-only, reducing risk.
Lista ou lê arquivos de uma skill específica.
Lista todas as skills do catálogo local.
Retorna o manifesto e o conteúdo principal de uma skill.
Busca skills pelo catálogo local.
Output schemas are not documented. LLMs cannot predict what fields to expect in responses, forcing downstream tools to guess at return structure. For example, search_skills returns JSON with id, name, version, category, description, tags but this structure is undocumented in the tool definition.
Parameter descriptions are missing or trivial. The 'query' param in search_skills says 'Search query for skills' (17 chars), below the 20-char minimum. No guidance on format, case sensitivity, or what fields are searched. The 'skillId' param provides minimal context. The 'mode' enum in fetch_skill_files has good values but no description of when to use 'list' vs 'all'.
No error handling or recovery guidance. If skillId is invalid, getSkillDescriptor() would throw an error, but the tool provides no actionable error message, no suggestion of valid IDs, and no recovery path. LLMs receive a raw exception instead of 'Skill not found. Try search_skills() to find a valid skill ID.'
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 49 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 13 | - | v1 |
list_skills has no input schema at all (empty object {}). Per HARD SCORING RULES, schema score must be 0. This is technically valid but unconventional, consider adding optional params like limit or filter for future extensibility.
Descriptions are generic and lack LLM-optimized context. 'Busca skills pelo catálogo local' (Portuguese, ~23 chars) does not explain WHEN to call search_skills vs list_skills, what fields are indexed, or what happens if no results match. Baseline is 194 chars for good descriptions.
No pagination or result limits documented. fetch_skill_files in 'all' mode could return thousands of files as JSON strings, exhausting the context window. No limit is enforced or documented.