Skip to main content
Glama
ScientificFigureLibrary

ScientificFigureLibrary

by xuzhougeng

Search all matching scientific figure Providers

figure_library_search
Read-onlyIdempotent

Search scientific figure templates by keyword across local, FigureYa, open modules, and opted-in providers to locate named chart types or template names.

Instructions

Keyword search over Local Published, FigureYa, Open Figure Modules and opted-in personal Providers; best for named templates or chart types. For a described need (data, scientific question, look) or no/poor matches, use figure_library_list_catalog and choose by meaning. Present candidates using host thumbnail resources/image tools or the optional App, then wait for selection. Community is explicit-only; Working, Capture and flat-v1 entries are excluded.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "query": "<query>"
    },
    "name": "figure_library_search"
  }
}

Input Schema

NameRequiredDescriptionDefault
limitNo
queryYes
languageNo
assetKindNo
codeStatusNo
plotFamilyNo
dataProfileNo
providerIdsNo
resultSetIdNoPresent the exact cached result set returned by an Open Figure PR Plan; keep its query, filters, providers and limit unchanged.
reviewStatusNo
visualProfileNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changedv0.6.8
    • addedInput schema / properties / resultSetId
      Added value: +{
      +  "description": "Present the exact cached result set returned by an Open Figure PR Plan; keep its query, filters, providers and limit unchanged.",
      +  "maxLength": 256,
      +  "minLength": 1,
      +  "type": "string"
      +}
  2. Changed1 schema field changedv0.4.0
    • removedInput schema / properties / providerIds / default
      Removed value: -[
      -  "org.scientificfigurelibrary.local",
      -  "org.figureya.module"
      -]
  3. Changed9 schema fields changed
    • removedInput schema / properties / assetKind / description
      Removed value: -"Filter reusable plotting templates separately from visual-only references."
    • changedInput schema / properties / codeStatus / enum
      Previous value: -[
      -  "none",
      -  "scaffold",
      -  "reviewed"
      -]New value: +[
      +  "none",
      +  "scaffold",
      +  "provided",
      +  "reviewed"
      +]
    • removedInput schema / properties / dataProfile / description
      Removed value: -"Compact shape, column/type, semantic-role, and missingness summary. No raw data."
    • addedInput schema / properties / providerIds
      Added value: +{
      +  "default": [
      +    "org.scientificfigurelibrary.local",
      +    "org.figureya.module"
      +  ],
      +  "items": {
      +    "maxLength": 200,
      +    "minLength": 1,
      +    "type": "string"
      +  },
      +  "maxItems": 16,
      +  "minItems": 1,
      +  "type": "array"
      +}
    • removedInput schema / properties / query / description
      Removed value: -"Plotting intent and scientific purpose, in Chinese or English."
    • changedInput schema / properties / reviewStatus / enum
      Previous value: -[
      -  "draft",
      -  "approved",
      -  "archived"
      -]New value: +[
      +  "not_reviewed",
      +  "draft",
      +  "approved",
      +  "archived"
      +]
    • removedInput schema / properties / sourceIds
      Removed value: -{
      -  "default": [
      -    "figureya",
      -    "user"
      -  ],
      -  "description": "Optional source filter. By default both FigureYa and the user library are searched.",
      -  "items": {
      -    "enum": [
      -      "figureya",
      -      "user"
      -    ],
      -    "type": "string"
      -  },
      -  "maxItems": 2,
      -  "minItems": 1,
      -  "type": "array"
      -}
    • removedInput schema / properties / visualProfile / description
      Removed value: -"Compact chart family, layout, axes, encodings, labels, and style summary."
    • changedOutput schema / (root)
      Previous value: -{
      -  "$schema": "http://json-schema.org/draft-07/schema#",
      -  "additionalProperties": false,
      -  "properties": {
      -    "candidates": {
      -      "items": {
      -        "additionalProperties": false,
      -        "properties": {
      -          "application": {
      -            "type": "string"
      -          },
      -          "assetKind": {
      -            "enum": [
      -              "plot_template",
      -              "visual_reference"
      -            ],
      -            "type": "string"
      -          },
      -          "codeFiles": {
      -            "items": {
      -              "type": "string"
      -            },
      -            "type": "array"
      -          },
      -          "codeStatus": {
      -            "enum": [
      -              "none",
      -              "scaffold",
      -              "reviewed"
      -            ],
      -            "type": "string"
      -          },
      -          "dataProfile": {
      -            "type": "string"
      -          },
      -          "description": {
      -            "type": "string"
      -          },
      -          "excerpt": {
      -            "type": "string"
      -          },
      -          "inputFiles": {
      -            "items": {
      -              "type": "string"
      -            },
      -            "type": "array"
      -          },
      -          "language": {
      -            "type": "string"
      -          },
      -          "license": {
      -            "type": "string"
      -          },
      -          "management": {
      -            "additionalProperties": false,
      -            "properties": {
      -              "adapter": {
      -                "enum": [
      -                  "direct",
      -                  "gallery",
      -                  "figure-transfer-package"
      -                ],
      -                "type": "string"
      -              },
      -              "canArchive": {
      -                "type": "boolean"
      -              },
      -              "canUpdate": {
      -                "type": "boolean"
      -              },
      -              "galleryId": {
      -                "type": "string"
      -              },
      -              "identityMode": {
      -                "enum": [
      -                  "stable-source",
      -                  "content-addressed"
      -                ],
      -                "type": "string"
      -              },
      -              "registrySourceId": {
      -                "type": "string"
      -              },
      -              "templateId": {
      -                "type": "string"
      -              },
      -              "updateVia": {
      -                "enum": [
      -                  "plan-apply",
      -                  "diff-upsert",
      -                  "gallery-sync"
      -                ],
      -                "type": "string"
      -              }
      -            },
      -            "required": [
      -              "templateId",
      -              "canArchive",
      -              "canUpdate"
      -            ],
      -            "type": "object"
      -          },
      -          "matchedTerms": {
      -            "items": {
      -              "type": "string"
      -            },
      -            "type": "array"
      -          },
      -          "materializable": {
      -            "type": "boolean"
      -          },
      -          "packages": {
      -            "items": {
      -              "type": "string"
      -            },
      -            "type": "array"
      -          },
      -          "plotFamily": {
      -            "type": "string"
      -          },
      -          "previewAvailable": {
      -            "type": "boolean"
      -          },
      -          "previewDataUrl": {
      -            "type": "string"
      -          },
      -          "reasons": {
      -            "items": {
      -              "type": "string"
      -            },
      -            "type": "array"
      -          },
      -          "reportUrl": {
      -            "type": "string"
      -          },
      -          "retrievalScore": {
      -            "type": "number"
      -          },
      -          "reviewStatus": {
      -            "enum": [
      -              "draft",
      -              "approved",
      -              "archived"
      -            ],
      -            "type": "string"
      -          },
      -          "sourceId": {
      -            "enum": [
      -              "figureya",
      -              "user"
      -            ],
      -            "type": "string"
      -          },
      -          "sourceLabel": {
      -            "type": "string"
      -          },
      -          "sourceUrl": {
      -            "type": "string"
      -          },
      -          "templateId": {
      -            "type": "string"
      -          },
      -          "title": {
      -            "type": "string"
      -          },
      -          "warnings": {
      -            "items": {
      -              "type": "string"
      -            },
      -            "type": "array"
      -          }
      -        },
      -        "required": [
      -          "templateId",
      -          "sourceId",
      -          "sourceLabel",
      -          "title",
      -          "retrievalScore",
      -          "matchedTerms",
      -          "reasons",
      -          "warnings",
      -          "excerpt",
      -          "description",
      -          "application",
      -          "dataProfile",
      -          "inputFiles",
      -          "codeFiles",
      -          "packages",
      -          "materializable",
      -          "previewAvailable",
      -          "assetKind",
      -          "language",
      -          "plotFamily",
      -          "reviewStatus",
      -          "codeStatus",
      -          "license",
      -          "management"
      -        ],
      -        "type": "object"
      -      },
      -      "type": "array"
      -    },
      -    "intentFamilies": {
      -      "items": {
      -        "type": "string"
      -      },
      -      "type": "array"
      -    },
      -    "libraryVersion": {
      -      "type": "string"
      -    },
      -    "query": {
      -      "type": "string"
      -    },
      -    "reviewRequired": {
      -      "type": "boolean"
      -    },
      -    "sources": {
      -      "items": {
      -        "additionalProperties": false,
      -        "properties": {
      -          "matched": {
      -            "maximum": 9007199254740991,
      -            "minimum": -9007199254740991,
      -            "type": "integer"
      -          },
      -          "sourceId": {
      -            "enum": [
      -              "figureya",
      -              "user"
      -            ],
      -            "type": "string"
      -          },
      -          "sourceLabel": {
      -            "type": "string"
      -          }
      -        },
      -        "required": [
      -          "sourceId",
      -          "sourceLabel",
      -          "matched"
      -        ],
      -        "type": "object"
      -      },
      -      "type": "array"
      -    }
      -  },
      -  "required": [
      -    "query",
      -    "libraryVersion",
      -    "intentFamilies",
      -    "reviewRequired",
      -    "sources",
      -    "candidates"
      -  ],
      -  "type": "object"
      -}New value: +null
  4. First observedv0.3.0

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already establish read-only, idempotent, non-destructive, closed-world behavior. The description adds useful behavioral context beyond annotations: source eligibility, Community explicit-only access, and exclusions for Working, Capture, and flat-v1 entries. It does not explain ranking, result shape, or limit behavior, so it is strong but not complete.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with purpose and routing, then adds presentation workflow and exclusions. Every sentence carries relevant information with no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For an 11-parameter search tool with no output schema and very low schema description coverage, the description is materially incomplete. It covers purpose, alternatives, and exclusions, but omits filter semantics and return-value expectations that an agent would need to invoke it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 11 parameters and only 9% schema description coverage, the description does almost nothing to explain filter semantics. It does not clarify limit, language, assetKind, codeStatus, plotFamily, dataProfile, providerIds, reviewStatus, visualProfile, or resultSetId, leaving the agent dependent on bare schema fields.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: keyword search over named scientific figure Provider sources. It also distinguishes the tool from figure_library_list_catalog by saying this is best for named templates or chart types, while list_catalog is for described needs.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explicitly names the alternative figure_library_list_catalog and the condition for using it: a described need or no/poor matches. It also gives workflow guidance to present candidates and wait for selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Deploy Server

Other Tools