MCP Server for Elastic Weight Consolidation EWC Skill - implements diagonal Fisher Information Matrix importance scoring for continual learning to prevent catastrophic forgetting
Two tools with minimal documentation and incomplete schemas. register_task and compute_penalty have basic descriptions (60-80 chars) but lack parameter descriptions entirely. Input schemas present but parameters lack type information beyond object/array containers. No output schema documented. No error handling guidance. Tool names lack action verbs (register_task vs. freeze_task_weights; compute_penalty vs. calculate_ewc_penalty). No indication of idempotency, destructiveness, or recovery paths. Composition is reasonable (two distinct concerns) but parameter naming is generic (weights, sample_gradients, w, g).
Compute EWC quadratic penalty and its gradients. Calculates the elastic weight consolidation penalty as (lambda/2) * sum_i F_i * (theta_i - theta_A,i)^2 and returns penalty gradients for backpropagation.
Freeze current task optimal weights and compute its Fisher importance. Registers a completed task by storing its optimal weights and computing the diagonal Fisher Information Matrix from sample gradients.
Parameters lack type definitions and descriptions. 'weights' and 'sample_gradients' have no per-parameter type info (e.g., is weights.value a float or int?). LLMs cannot infer valid input format.
Tool names lack action verbs. 'register_task' and 'compute_penalty' are vague. Better: 'freeze_task_weights', 'calculate_ewc_penalty'. LLMs infer intent from verb-noun structure.
No output schema documented. Callers cannot plan downstream steps. register_task returns {status, total_tasks}; compute_penalty returns {ewc_penalty, penalty_gradients}. Document these formally.
No error handling or recovery guidance. What if sample_gradients is empty? What if weights keys don't match prior tasks? No actionable error messages.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 36 | 2026-07-28+ | v2 |
No tool annotations (destructiveHint, idempotentHint, readOnlyHint). register_task modifies state; compute_penalty is read-only. Annotations guide agent planning.