MCP server for executing R scripts and rendering ggplot2 visualizations
Two tools with reasonable naming (verb_noun format) and complete input schemas, but descriptions are minimal and output schemas are not documented. The render_ggplot tool has good parameter constraints (width/height/resolution bounds, output_type options implied), but both tools lack actionable descriptions that explain WHEN to use them, WHAT they return, or error recovery guidance. execute_r_script accepts arbitrary R code with no validation guidance or output schema. No error handling patterns present.
Execute an R script and return the result
Render a ggplot2 visualization
Output schemas not documented. LLMs cannot infer what render_ggplot returns (image base64? file path? URL?). execute_r_script output structure undefined.
execute_r_script description (12 chars) is below 20-char minimum. Provides no context on WHAT the tool does (execute arbitrary R? structured R? data frames? plots?), WHEN to use it vs render_ggplot, or what output format to expect.
render_ggplot description (34 chars) is minimal. Does not explain: What does it return (image data, file path, URL)? Is it idempotent (can it be retried)? Does it write to disk? What happens if ggplot code is invalid?
No error handling or recovery guidance. If R code fails to parse or execute, the LLM gets no actionable message (e.g., 'Syntax error at line X: ...'), only raw R error output or a generic failure.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 45 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 36 | - | v1 |
execute_r_script parameter 'code' has no validation guidance or constraints in description. LLMs cannot determine if they should pass raw R, commented R, R with data frame definitions, or multi-line scripts. No format, length, or safety hints provided.
No mutual exclusivity or dependency hints between tools. LLM cannot infer: when is execute_r_script the right choice vs render_ggplot? Can you pass ggplot code to execute_r_script? What happens if you do?
No documented output schema for render_ggplot parameters (output_type enum not explicit). The description says 'Output format (png, jpeg, pdf, svg)' but does not state: is this list exhaustive? Are there other formats? What does the tool return, raw bytes, base64, file path?
No idempotency declaration. Are these tools safe to retry? If render_ggplot is called twice with identical code and parameters, does it overwrite the previous image or return the cached result?