JSONata transform plugin for mcpg. Applies an operator-supplied JSONata expression to a JSON value — usable as a global pre/post-dispatch transform and (via the pipeline plugin_transform bridge) as a pipeline step that reshapes the previous step's output into the next step's input.
Single tool 'transform' has a clear, specific name and reasonable description (145 chars). Input schema is present with three parameters, all typed and described. However, the tool lacks output schema documentation, LLMs cannot predict what fields to expect from the transformed JSON. Error handling is basic (returns error messages but no recovery guidance). The tool is stateless and read-only, which is good for composition, but the description could better explain when to use it vs. other transformation approaches. No tool annotations (readOnlyHint, etc.) despite being explicitly read-only.
Applies a configured JSONata expression to a JSON value. Stateless apart from the manifest — the expression + options arrive per call in config, so one instance serves both the global transform chain (pre/post dispatch) and the pipeline plugin_transform bridge. Pure compute; no host calls.
No output schema documented. LLMs cannot predict the structure of transformed JSON or plan downstream tool calls. The description says 'Applies a configured JSONata expression to a JSON value' but does not specify what the output looks like.
Error messages lack recovery guidance. When JSONata parsing fails or output exceeds max_output_bytes, the tool returns a raw error string. LLMs need actionable next steps: 'Check JSONata syntax at https://docs.jsonata.org' or 'Reduce output size by filtering fields'.
Missing tool annotations. The tool is explicitly read-only (no side effects) and idempotent (same input → same output), but does not declare readOnlyHint or idempotentHint. This forces LLMs to infer safety properties.
Parameter 'phase' is confusing. Description says 'Ignored by the pipeline bridge' but does not explain what 'arguments' vs 'result' vs 'both' mean in the context of a global transform chain. Requires domain knowledge to use correctly.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 49 | 2026-07-28+ | v2 |
No guidance on when to use this tool. Description does not explain: Is this for data reshaping? Filtering? Aggregation? When should an LLM call transform vs. a general-purpose data manipulation tool? Weak discovery signal.