PaperBanana-CN
PYPI · PAPERBANANA-CN · SCANNED SEP 22
Generate and evaluate academic diagrams and plots with independent model connections.
Available components
How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →
Supply Chain Security49
- Malware scan not yet available for this package.Unverified
- No known CVEs affecting this package version or its production dependencies.Pass
- Runs hatchling.build at install time, a recognised native-build step with no shell scripting around it. View diagnostics → Pass
- 9 of 88 dependencies flagged as unhealthy. View diagnostics → Partial
Provenance & Transparency35
- Source repository is publicly reachable at the declared URL. View diagnostics → Pass
- Provenance check failed: no build-provenance attestation is published. See how to fix → View diagnostics → Fail
- License check failed: the license (MIT License) isn't a recognized OSI-approved license. See how to fix → Fail
- Actively maintained (last published 60 days ago).Pass
- Publishes a security disclosure policy (SECURITY.md).Pass
Schema Quality & AI Usability54
- AI-judged instruction clarity (good).Pass
- Context-footprint check failed: tool/resource definitions use about 2502 tokens (~227/item across 11 items; 11 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management90
- Stability observed for 27 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage79
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 25% of tool parameters carry a description.Partial
- Structured output schemas are declared (73% of tools); any adoption earns full credit.Pass
Tool Safety100
- No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
- We read all 11 captured tool definition(s), and no name or description among them implies an irreversible operation.Pass
- An AI judge read all 11 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
- Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
How do I install the PaperBanana-CN MCP server?
PaperBanana-CN runs locally as a PyPI package, launched with uvx paperbanana-cn. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.
pypi · paperbanana-cn
claude mcp add mituan-ai-paperbanana-cn -- uvx paperbanana-cn
{
"mcpServers": {
"mituan-ai-paperbanana-cn": {
"command": "uvx",
"args": [
"paperbanana-cn"
]
}
}
} {
"servers": {
"mituan-ai-paperbanana-cn": {
"command": "uvx",
"args": [
"paperbanana-cn"
]
}
}
} codex mcp add mituan-ai-paperbanana-cn -- uvx paperbanana-cn
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"mituan-ai-paperbanana-cn": {
"type": "local",
"command": [
"uvx",
"paperbanana-cn"
],
"enabled": true
}
}
} openclaw mcp add mituan-ai-paperbanana-cn --command uvx --arg paperbanana-cn
mcp_servers:
mituan-ai-paperbanana-cn:
command: "uvx"
args: ["paperbanana-cn"] {
"McpServers": {
"mituan-ai-paperbanana-cn": {
"Transport": "stdio",
"Command": "uvx",
"Arguments": [
"paperbanana-cn"
]
}
}
} assistant mcp add mituan-ai-paperbanana-cn -t stdio -c uvx -a paperbanana-cn
{
"mcpServers": {
"mituan-ai-paperbanana-cn": {
"command": "uvx",
"args": [
"paperbanana-cn"
]
}
}
} Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 21 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 83 to 87. That category is still filling its 30-day observation window: 25 days of observed history at the previous scan, 26 at this one. The score rises as the window fills, whether or not the server changes.
- 19 Sept 26 −3
- Stability: pass → 0.80 functional
- 18 Sept 26 +2
- Install scripts: partial → pass ▲ security
- Stability: 0.97 → pass security
- The scripts that run when this package is installed changed: build_backend security
- 17 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 93 to 97. That category is still filling its 30-day observation window: 28 days of observed history at the previous scan, 29 at this one. The score rises as the window fills, whether or not the server changes.
- 16 Sept 26 −1
- Install scripts: pass → partial ▼ security
- The scripts that run when this package is installed changed: build_backend security
- 14 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 83 to 87. That category is still filling its 30-day observation window: 25 days of observed history at the previous scan, 26 at this one. The score rises as the window fills, whether or not the server changes.
- 13 Sept 26 −15
- Malware scan: pass → unverified ▼ security
- 12 Sept 26 +12
- Malware scan: unverified → pass ▲ security
- Stability: pass → 0.80 functional
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 22 Sept 2026 · Analysed pypi/paperbanana-cn@2.0.1
Provenance No attestation
The registry publishes no build provenance for this version, so there is nothing to verify.
| Result | No attestation |
|---|---|
| Ecosystem | pypi |
Background: How many MCP packages publish verified provenance →
Install scripts 1 script
| Hook | Tier | Command |
|---|---|---|
| build_backend | allowlisted | hatchling.build |
Background: Why install scripts are a supply-chain risk →
Dependencies 88 packages
| Packages resolved | 88 |
|---|---|
| Stale | 9 |
| Tree resolution | Complete |
Background: SBOMs and build attestations, explained →
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →
batch_diagrams ~239
Run methodology diagram batch from a manifest (YAML or JSON). Each manifest item needs ``input`` (text or PDF path) and ``caption``. Paths are resolved relative to the manifest file directory. Returns JSON with ``batch_dir``, ``batch_report_path``, per-item summary, ``composite_path`` when configured, and ``strict_success`` (false if any item failed).
| Name | Type | Req | Description |
|---|---|---|---|
| auto | boolean | – | – |
| auto_download_data | boolean | – | – |
| concurrency | integer | – | – |
| config | – | – | – |
| format | string | – | – |
| image_connection | – | – | – |
| image_model | – | – | – |
| image_provider | – | – | – |
| iterations | – | – | – |
| legacy_connections | boolean | – | – |
| manifest_path | string | yes | – |
| max_iterations | – | – | – |
| max_retries | integer | – | – |
| optimize | boolean | – | – |
| output_dir | string | – | – |
| resume_batch | – | – | – |
| retry_failed | boolean | – | – |
| save_prompts | – | – | – |
| venue | – | – | – |
| vlm_connection | – | – | – |
| vlm_model | – | – | – |
| vlm_provider | – | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
batch_plots ~229
Run statistical plot batch from a manifest (YAML or JSON). Each item needs ``data`` (CSV or JSON path) and ``intent``. When ``vlm_provider`` is omitted, defaults to ``gemini`` (same as CLI plot-batch). Returns JSON with ``batch_dir``, ``batch_report_path``, item summary, and ``strict_success``.
| Name | Type | Req | Description |
|---|---|---|---|
| aspect_ratio | – | – | – |
| auto | boolean | – | – |
| concurrency | integer | – | – |
| config | – | – | – |
| format | string | – | – |
| image_model | – | – | – |
| image_provider | – | – | – |
| iterations | – | – | – |
| legacy_connections | boolean | – | – |
| manifest_path | string | yes | – |
| max_iterations | – | – | – |
| max_retries | integer | – | – |
| optimize | boolean | – | – |
| output_dir | string | – | – |
| resume_batch | – | – | – |
| retry_failed | boolean | – | – |
| save_prompts | – | – | – |
| venue | – | – | – |
| vlm_connection | – | – | – |
| vlm_model | – | – | – |
| vlm_provider | – | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
continue_diagram ~329
Continue a methodology diagram run under ``output_dir`` / ``run_id``. Loads ``run_input.json`` and the latest iteration from an existing ``run_*`` directory (same as ``paperbanana-cn generate --continue-run``). Runs more visualizer–critic rounds without redoing retrieval / planner / stylist.
| Name | Type | Req | Description |
|---|---|---|---|
| auto_refine | boolean | – | If true, loop until the critic is satisfied (capped by ``max_iterations`` or settings default). |
| config | – | – | Optional path to YAML config (same as other MCP tools). |
| feedback | – | – | Optional notes for the critic (same as CLI ``--feedback``). |
| generate_caption | boolean | – | – |
| image_connection | – | – | – |
| image_model | – | – | – |
| image_provider | – | – | – |
| iterations | – | – | Extra refinement rounds when ``auto_refine`` is false; also sets ``refinement_iterations`` in settings when provided. When omitted, uses the configured default iteration count. |
| legacy_connections | boolean | – | – |
| max_iterations | – | – | Cap when ``auto_refine`` is true. |
| optimize | boolean | – | Passed through to settings (normally unused for continue). |
| output_dir | string | – | Base output directory containing the run folder. |
| output_format | string | – | png, jpeg, or webp. |
| run_id | string | yes | Directory name (e.g. ``run_20250109_120000_abc``). |
| save_prompts | – | – | – |
| venue | – | – | – |
| vlm_connection | – | – | – |
| vlm_model | – | – | – |
| vlm_provider | – | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
continue_plot ~164
Continue a statistical-plot run (same contract as ``continue_diagram``). Use when ``run_input.json`` has ``diagram_type`` ``statistical_plot``.
| Name | Type | Req | Description |
|---|---|---|---|
| auto_refine | boolean | – | – |
| config | – | – | – |
| feedback | – | – | – |
| generate_caption | boolean | – | – |
| image_model | – | – | – |
| image_provider | – | – | – |
| iterations | – | – | – |
| legacy_connections | boolean | – | – |
| max_iterations | – | – | – |
| optimize | boolean | – | – |
| output_dir | string | – | – |
| output_format | string | – | – |
| run_id | string | yes | – |
| save_prompts | – | – | – |
| venue | – | – | – |
| vlm_connection | – | – | – |
| vlm_model | – | – | – |
| vlm_provider | – | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
continue_run ~273
Continue refinement for a previous diagram or plot run (CLI: ``generate --continue-run``). Loads state from ``<output_dir>/<run_id>/`` (default ``outputs/`` from settings), then runs additional visualizer/critic iterations in the same run directory. Optional ``feedback`` is passed to the critic, matching ``--feedback`` on the CLI.
| Name | Type | Req | Description |
|---|---|---|---|
| auto_refine | boolean | – | When True, loop until the critic is satisfied (capped by ``max_iterations``). |
| config | – | – | – |
| feedback | – | – | Optional user notes for the critic (layout, labels, style). |
| generate_caption | boolean | – | When True, generate a caption after continuation (same as ``generate_diagram``). |
| image_connection | – | – | – |
| iterations | integer | – | Extra refinement iterations when ``auto_refine`` is False (default 3). |
| legacy_connections | boolean | – | – |
| optimize | boolean | – | Passed to settings for symmetry with ``generate_diagram``; continuation does not re-run Phase 0 input optimization. |
| output_dir | string | – | – |
| run_id | string | yes | Directory name of the run (e.g. ``run_20260218_125448_e7b876`` under ``outputs/``). |
| vlm_connection | – | – | – |
No output schema declared.
No examples provided.
download_references ~105
Download the PaperBananaBench reference set. Downloads ~254 MB of reference diagrams (~298 examples) from the project-hosted GitHub release mirror (SHA256-verified) and caches them locally. The Retriever agent uses these for better in-context learning during diagram generation. Only needs to be run once — subsequent calls detect the cached data and return immediately. Use force=True to re-download.
| Name | Type | Req | Description |
|---|---|---|---|
| force | boolean | – | Re-download even if already cached. |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
evaluate_diagram ~138
Evaluate a generated diagram against a human reference on 4 dimensions. Compares the model-generated image to a human-drawn reference using Faithfulness, Conciseness, Readability, and Aesthetics scoring with hierarchical aggregation.
| Name | Type | Req | Description |
|---|---|---|---|
| caption | string | yes | Figure caption describing what the diagram communicates. |
| config | – | – | – |
| context | string | yes | Original methodology text used to generate the diagram. |
| generated_path | string | yes | File path to the model-generated image. |
| legacy_connections | boolean | – | – |
| reference_path | string | yes | File path to the human-drawn reference image. |
| vlm_connection | – | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
evaluate_plot ~106
Evaluate a generated statistical plot against a human reference on 4 dimensions.
| Name | Type | Req | Description |
|---|---|---|---|
| config | – | – | – |
| data_json | string | yes | JSON string containing the source data used to generate the plot. |
| generated_path | string | yes | File path to the model-generated plot. |
| intent | string | yes | Communicative intent used for plot generation. |
| legacy_connections | boolean | – | – |
| reference_path | string | yes | File path to the human reference plot. |
| vlm_connection | – | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
generate_diagram ~312
Generate a publication-quality methodology diagram from text.
| Name | Type | Req | Description |
|---|---|---|---|
| aspect_ratio | – | – | Target aspect ratio. Supported: 1:1, 4:3, 3:2, 5:4, 16:9, 21:9, 4:5, 3:4, 2:3, 9:16. |
| auto_refine | boolean | – | Let critic loop until satisfied (default True, max 30 iterations). Set False to use fixed iteration count for faster results. |
| caption | string | yes | Figure caption describing what the diagram should communicate. |
| config | – | – | – |
| generate_caption | boolean | – | Auto-generate a publication-ready figure caption after generation. When True, the caption is embedded in the image metadata (PNG tEXt chunk, key "Caption") and logged. |
| image_connection | – | – | – |
| input_images | – | – | Optional file paths to user-provided reference/sketch images (hand-drawn sketch, whiteboard photo, prior figure) that guide the layout and content of the generated diagram. |
| iterations | integer | – | Number of refinement iterations (default 3, used when auto_refine=False). |
| legacy_connections | boolean | – | – |
| optimize | boolean | – | Enrich context and sharpen caption before generation (default True). Set False to skip preprocessing for faster results. |
| output_resolution | string | – | – |
| source_context | string | yes | Methodology section text or relevant paper excerpt. |
| vlm_connection | – | – | – |
No output schema declared.
No examples provided.
generate_plot ~295
Generate a publication-quality statistical plot from JSON data.
| Name | Type | Req | Description |
|---|---|---|---|
| aspect_ratio | – | – | Target aspect ratio. Supported: 1:1, 4:3, 3:2, 5:4, 16:9, 21:9, 4:5, 3:4, 2:3, 9:16. |
| auto_refine | boolean | – | Let critic loop until satisfied (default True, max 30 iterations). Set False to use fixed iteration count for faster results. |
| config | – | – | – |
| data_json | string | yes | JSON string containing the data to plot. Example: '{"x": [1,2,3], "y": [4,5,6], "labels": ["a","b","c"]}' |
| generate_caption | boolean | – | Auto-generate a publication-ready figure caption after generation. When True, the caption is embedded in the image metadata (PNG tEXt chunk, key "Caption") and logged. |
| intent | string | yes | Description of the desired plot (e.g. "Bar chart comparing model accuracy"). |
| iterations | integer | – | Number of refinement iterations (default 3, used when auto_refine=False). |
| legacy_connections | boolean | – | – |
| optimize | boolean | – | Enrich context and sharpen caption before generation (default True). Set False to skip preprocessing for faster results. |
| vlm_connection | – | – | – |
No output schema declared.
No examples provided.
orchestrate_figures ~312
Plan and optionally generate a multi-figure publication package from a paper. Mirrors ``paperbanana-cn orchestrate``. Use ``dry_run=True`` to write ``orchestration_plan.json`` only (no API generation). For continuation, pass ``resume_orchestrate`` with an orchestration id or package directory path. Returns: JSON string with orchestration_id, paths to ``figure_package.json``, ``figures.tex``, ``captions.md``, ``orchestration_plan.json``, counts, ``strict_success``, and ``failures`` when applicable.
| Name | Type | Req | Description |
|---|---|---|---|
| auto | boolean | – | – |
| concurrency | integer | – | – |
| config | – | – | – |
| data_dir | – | – | – |
| dry_run | boolean | – | – |
| format | string | – | – |
| image_connection | – | – | – |
| image_model | – | – | – |
| image_provider | – | – | – |
| iterations | – | – | – |
| legacy_connections | boolean | – | – |
| max_iterations | – | – | – |
| max_method_figures | integer | – | – |
| max_plot_figures | integer | – | – |
| max_retries | integer | – | – |
| optimize | boolean | – | – |
| output_dir | string | – | – |
| paper | – | – | – |
| pdf_pages | – | – | – |
| resume_orchestrate | – | – | – |
| retry_failed | boolean | – | – |
| save_prompts | – | – | – |
| venue | – | – | – |
| vlm_connection | – | – | – |
| vlm_model | – | – | – |
| vlm_provider | – | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
What is the PaperBanana-CN MCP server?
PaperBanana-CN is an MCP server listed in the public MCP registry as io.github.mituan-ai/paperbanana-cn. Generate and evaluate academic diagrams and plots with independent model connections. This page covers its PyPI package (paperbanana-cn).
Is the PaperBanana-CN MCP server safe to use?
PaperBanana-CN scores 60 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 22 September 2026. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.
What tools does the PaperBanana-CN MCP server expose?
PaperBanana-CN exposes 11 tools: generate_diagram, continue_run, generate_plot, continue_diagram, continue_plot, and 6 more. Their descriptions and schemas cost roughly 2,502 tokens of context every time the server is loaded.
Is the PaperBanana-CN MCP server still maintained?
PaperBanana-CN is still listed as active in the MCP registry. We last reached this channel on 22 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.