JSON Schema validation transform plugin for mcpg. Validates a JSON value against an operator-supplied inline JSON Schema; a valid value passes through unchanged, an invalid value yields a precise transform error listing the failing instance paths. Usable as a global pre/post-dispatch transform and as a pipeline `plugin_transform` step; an optional JSON Pointer validates a sub-field. Pure compute, fully offline (no remote $ref fetch); the gateway core never depends on it.
Single tool with complete input schema and reasonable description. Schema is well-structured with proper types, enums, and defaults. However, description is terse (145 chars, below the 194-char baseline), lacks WHEN/WHY guidance, and omits error recovery hints. Parameter descriptions are present but minimal. Output schema is not documented, LLMs cannot predict the structure of TransformResult::Error messages or understand what 'Unchanged' means in context. No guidance on idempotency, side effects, or composition with other tools.
Validates a JSON value against an inline JSON Schema. A valid value passes through unchanged; an invalid value yields a TransformResult::Error listing the failing instance paths bounded by max_errors.
Output schema not documented. LLMs cannot predict TransformResult structure (Unchanged vs Error vs Modified). Requires explicit documentation of return type and field meanings.
Tool description lacks WHEN/WHY context. 145 chars is below 194-char baseline. Does not explain when to use this vs other validation approaches, prerequisites, or error recovery paths.
Parameter 'pointer' description is vague ('JSON Pointer (RFC 6901) to the sub-value'). Does not explain what happens if pointer is invalid, whether empty string means root, or how to construct pointers for nested objects.
No error handling guidance. Error messages are raw (e.g., 'pointer not found in value'). LLMs cannot determine if error is retryable, user-fixable, or fatal. No recovery suggestions.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 47 | 2026-07-28+ | v2 |
Tool is stateless and read-only but description does not explicitly state this. LLMs benefit from knowing a tool is safe to retry and has no side effects.