Ship-ready MCP server for Gemini + Imagen diagram/plot generation. Runs on Claude, ChatGPT, VSCode Copilot, Cursor.
figurify-mcp demonstrates solid definition quality with comprehensive tool descriptions and well-structured schemas. All 10 tools have detailed descriptions (100-300+ chars) explaining WHAT they do, WHEN to use them, and WHEN NOT to use them, exemplary for LLM selection. Input schemas are complete with typed parameters and enums. However, output schemas are not explicitly documented in the visible code, and error handling guidance is minimal. Tool naming is clear and verb-driven (create_*, search_*, estimate_*, etc.). The meta-tools (search_tools, describe_tool, recommend_model, estimate_cost) follow the deferred-disclosure pattern well, reducing token overhead for large catalogs.
Topic -> VLM designs layout -> Imagen renders. 1 VLM + 1 Imagen call. **Use this when** the user asks for an "infographic", "poster", "visual summary", or a structured information graphic with sections, icons, and data callouts. **Do NOT use** for: free-form artwork (use create_simple_diagram), precise data charts (use create_statistical_plot), or formal paper figures (use create_methodology_diagram). **Size**: Always pass size="1K" (the default) unless the user's message explicitly requests "2K", "4K", or "high resolution". Do NOT upgrade on your own — 1K is sufficient for inline display and saves cost.
Condensed 5-agent pipeline: plan -> N x (visualize + critique). Heaviest tool. **Use this when** the user supplies a methodology section + figure caption from a paper, or explicitly asks for a NeurIPS / ICML / ICLR / publication-ready figure. Takes 30-90s depending on iterations. **Do NOT use** for: quick illustrations (use create_simple_diagram), infographics (use create_infographic). For a fast single-shot academic figure without critique, set iterations=1. **Size**: Always pass size="1K" (the default) unless the user's message explicitly requests "2K", "4K", or "high resolution". Do NOT upgrade on your own — 1K is sufficient for inline display and saves cost.
Direct prompt -> image. One Imagen call, zero VLM orchestration. **Use this when** the user wants a quick diagram, sketch, illustration, or picture and does NOT need academic styling, multi-iteration critique, or data-driven charts. **Do NOT use** for: academic paper figures (use create_methodology_diagram), tabular data charts (use create_statistical_plot), or structured posters with distinct sections (use create_infographic). **Size**: Always pass size="1K" (the default) unless the user's message explicitly requests "2K", "4K", or "high resolution". Do NOT upgrade on your own — 1K is sufficient for inline display and saves cost.
Output schemas not documented in visible code. Tools return images, JSON, or structured data, but return type definitions are not explicitly declared in tool metadata. LLMs cannot plan downstream operations without knowing response structure.
Error handling guidance missing. Tools do not document what errors can occur, whether they are retryable, or what the LLM should do next. E.g., if Imagen API rate-limits, should the agent retry? Wait? Fall back to a cheaper model?
list_available_models has minimal description (likely <50 chars in actual code). Description should explain what fields are returned (cost, latency, capabilities, context window) and when to call it (before generate_* to pick the right model).
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 68 | <=2025-11-25 | v2 |
VLM writes matplotlib code -> subprocess runs it -> PNG returned. **Use this when** the user provides numeric / tabular data and wants a chart or plot. Publication-quality matplotlib output in a few seconds. **Do NOT use** for: illustrations without data (use create_simple_diagram) or conceptual process diagrams (use create_methodology_diagram).
Fetch the full JSON schema for a specific tool by name. Progressive disclosure: search returns slim cards, describe returns the full schema.
Per-tool cost estimate so clients can decide before calling. Returns breakdown of VLM + image generation costs.
VLM-as-Judge comparison on 4 dimensions: faithfulness, readability, conciseness, aesthetics. **Use this when** the user has two diagrams (generated + reference) and wants to score them. Returns per-dimension winners plus overall verdict as JSON.
Enumerate the full Gemini model catalog (VLM + image generation) with specs: cost, latency, capabilities, context window.
Map a free-form task description to a recommended Gemini model + cost estimate. Saves token budget by routing clients to the right model without exposing every variant as a separate tool.
Rank this server's tools by relevance to a natural-language query. Saves token budget by letting clients skip loading every schema upfront.
No pagination or result-limiting guidance for list_available_models. If the Gemini model catalog grows, returning all models could bloat context. Should document max result count or offer filtering.
Tool composition: search_tools and describe_tool are discovery helpers, but no guidance on when to call them vs. calling generation tools directly. Should document: 'Call search_tools first if unsure which tool fits; it returns only relevant cards and saves context.'