academic-figures-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| OLLAMA_MODEL | No | Ollama model name | |
| GOOGLE_API_KEY | No | Google API key for Gemini image generation | |
| OPENAI_API_KEY | No | OpenAI API key for gpt-image-2 | |
| OLLAMA_BASE_URL | No | Base URL for Ollama server | |
| AFM_MANIFEST_DIR | No | Directory to store generation manifests (optional) | |
| AFM_IMAGE_PROVIDER | No | The image provider to use: google, openrouter, openai, ollama | |
| OPENROUTER_API_KEY | No | OpenRouter API key |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| plan_figureA | Plan the best figure type, route, and guardrails before generation. This tool returns a structured plan so an MCP host can decide whether to use direct image generation, SVG-style rendering, or deterministic chart routes. Provide either pmid or a generic source brief. Generic planning supports preprints, repositories, and freeform briefs by passing source_title plus optional source_summary and source_identifier. output_format: Optional final raster delivery type such as png, gif, jpeg, or webp. The planner stores this preference inside planned_payload for downstream rendering. expected_labels: Optional list of exact text labels (especially CJK) the figure must contain. Enables CJK text fidelity guardrails and model escalation. |
| generate_figureA | Generate a publication-ready visual asset. Single high-level entrypoint: callers may provide planned_payload directly, or pass a PMID / generic source brief and let the use case plan internally before rendering. output_format: Optional final raster delivery type such as png, gif, jpeg, or webp. MCP applies the conversion internally after generation when possible. figure_type: auto | flowchart | mechanism | comparison | infographic | anatomical | timeline | data_visualization |
| edit_figureA | Refine an academic figure using natural language feedback. output_format: Optional final raster delivery type such as png, gif, jpeg, or webp. Examples: "箭頭改紅色", "標題字大一點", "Add PMID in footer" |
| prepare_publication_imageA | Resize a raster image and write publication DPI metadata using code only. This tool never calls image-generation providers. To truly meet 600 DPI for final publication size, pass width_mm and/or height_mm. Without a final print size it preserves pixel dimensions and writes target_dpi metadata only. output_format: Optional raster delivery type: png, jpeg, or tiff. |
| evaluate_figureC | Evaluate an academic figure using the 8-domain quality checklist. Domains: text accuracy, anatomy, color, layout, scientific accuracy, legibility, visual polish, citation. |
| batch_generateA | Generate academic figures for multiple PMIDs in sequence. Batch mode validates the full PMID list up front and propagates language, output size, and output directory into every generation request. |
| composite_figureC | Composite multiple panel images into a publication-ready figure. |
| replay_manifestC | Replay a previously saved manifest using the same prompt. |
| record_host_reviewB | Record a host-side visual review back into a persisted manifest. Use this when Copilot or another host model inspects the generated image directly and needs to write its verdict back into the review harness. |
| retarget_journalA | Apply a new journal profile to an existing manifest and regenerate the figure. |
| list_manifestsA | List recent manifests for replay or retargeting. |
| get_manifest_detailA | Load one manifest with full review history and lineage context. |
| verify_figureA | Run the automated quality gate on a generated figure. Uses vision self-check to evaluate 8 quality domains and verify CJK text rendering accuracy. Returns pass/fail verdict, domain scores, and any missing or garbled labels. expected_labels: Exact text strings (e.g. CJK labels) the figure should contain. |
| multi_turn_editA | Iteratively refine a figure through a multi-turn editing session. Sends multiple editing instructions turn-by-turn to fix CJK labels, adjust layout, or improve details. Each turn builds on the previous result for precise iterative corrections. instructions: List of natural language editing instructions applied in order. Examples: ["修正標題為「急性冠心症處置流程」", "箭頭改紅色", "加大字體"] |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| plan_figure_request | Reusable planning prompt for a PMID-driven academic figure request. |
| transform_figure_request | Reusable prompt template for style conversion on an existing figure. |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| inventory_resource | Server inventory for MCP hosts and agent discovery. |
| provider_capabilities_resource | Provider capability matrix for MCP hosts and extension discovery. |
| gemini_image_baseline_resource | Official Gemini image-generation defaults used by this repo. |
| renderer_ecosystem_resource | Tracked open-source renderer and editor ecosystem. |
TDQS
Scored across 14 tools
Several tools have overlapping purposes—notably verify_figure vs evaluate_figure and edit_figure vs multi_turn_edit—but the descriptions provide some distinguishing criteria. Most other tools target distinct actions (plan, generate, composite, prepare) and are easy to separate.
All names use lowercase snake_case and the majority follow a verb_noun pattern (list_manifests, generate_figure, edit_figure). A few names like multi_turn_edit and batch_generate deviate slightly but the style is still predictable and readable.
14 tools is a well-scoped size for an academic figures server, covering the full pipeline without excessive redundancy or overwhelming volume. Each tool serves a clear segment of the workflow.
The surface covers the entire lifecycle from planning and generation through editing, verification, compositing, publication preparation, and batch processing. Manifest management and replay/retargeting add useful depth, with no obvious gaps that would block typical workflows.