Skip to main content
Glama

Server Details

Production-ready images in one pass: resize, crop, compress, convert format, upscale, tag for SEO

If you are the author of this connector, you can claim ownership by verifying the domain or GitHub account it belongs to. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Uptime
100.0% over 75 days
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL
Repository
One-Punch-Technology-Inc/glassypic-mcp-server
GitHub Stars
2
Server Listing
@tinify-ai/mcp-server

TDQS

A4.3/5.0

Scored across 3 tools

Disambiguation5/5

The three tools have clearly distinct purposes: optimize_image processes images, status reports account/credit state, and upgrade opens the pricing page. An agent can easily pick the right tool with no overlap.

Naming Consistency4/5

All names are lowercase snake_case, but the pattern is mixed: optimize_image is verb_noun while status (a noun) and upgrade (a verb) are single words. Still readable and predictable enough overall.

Tool Count4/5

Three tools is a tight, focused set for an image-optimization service, with one core action plus two account utilities. It is slightly thin, especially since the descriptions reference tools that are not present.

Completeness3/5

The optimize_image description references a login tool and a confirm_gif_cost tool that do not exist in the set, and there is no separate batch tool despite heavy batch-processing guidance. Core optimization plus account status/upgrade is covered, but these notable gaps will cause dead ends.

Available Tools

3 tools
optimize_imageOptimize ImageAInspect

Optimize an image: smart lossy compression (typically 60-80% size reduction), optional resize/upscale/format conversion, and AI-generated SEO metadata. Accepts absolute local file paths or remote URLs. In remote/API mode, only remote URLs are supported. Supported input formats: JPG, PNG, WebP, AVIF, GIF, SVG, ICO, HEIC, TIFF, BMP (max 50 MB). Supported output formats: JPG, PNG, WebP, AVIF, GIF, SVG, ICO. Credits: 3 to compress (always), +1 if width or height is set, +2 to upscale, +1 for SEO tags (on by default). A full pipeline is 7 credits. Upscale is charged whether you request it or the server adds it automatically — it does so whenever a resize target exceeds the source by more than 1.2x, so a resize-only call on a small image also costs 7. SVG or ICO output is a flat 1 credit, overriding everything above. Animated GIFs are billed per frame: (per-frame operations x frames) + 1 if tags, up to 601 credits at the 100-frame limit — confirm_gif_cost gates that path. GIFs are excluded from automatic upscaling. Works as a guest with no signup. Log in with the login tool for more credits. Use status tool to check remaining credits before batch processing.

NameRequiredDescriptionDefault
inputYesAbsolute local file path or remote URL of the image to optimize. Note: in remote/API mode, only remote URLs are supported (no local file paths). Supported inputs: JPG, PNG, WebP, AVIF, GIF (animated supported), HEIC, TIFF, BMP (max 50 MB). GlassyPic supports high-quality conversion between any input and output format.
output_pathNoWhere to save. Accepts a file path (/tmp/out.webp) or directory ending in / (/tmp/images/). If omitted: saves next to original, named with SEO slug when SEO is enabled or .polished suffix otherwise. URLs save to current working directory.
output_formatNoOutput format. Defaults to 'original' (keep input format). Animated GIFs stay animated when output is 'gif'; converting to other formats preserves only the first frame. SVG output from raster input uses vector tracing. ICO output generates a favicon set (16, 24, 32, 48, 256px) unless a specific size is given.
gif_frame_limitNoMaximum frames to process for animated GIFs (1-100, default 100). Reduces cost by sampling fewer frames while preserving animation.
output_width_pxNoTarget width in pixels. Set only width for proportional resize. Set both width and height for exact output dimensions (see output_resize_behavior). Costs 1 credit. If the target exceeds the source by more than 1.2x, the server also adds an AI upscale for a further 2 credits.
confirm_gif_costNoSet to true to proceed with animated GIF processing after seeing cost warning. Required for animated GIFs to prevent unexpected credit consumption.
output_height_pxNoTarget height in pixels. Set only height for proportional resize. Set both width and height for exact output dimensions (see output_resize_behavior). Costs 1 credit. If the target exceeds the source by more than 1.2x, the server also adds an AI upscale for a further 2 credits.
_gif_temp_file_idNoInternal: temp file ID from a previous GIF cost warning. Skips re-upload.
output_seo_tag_genNoGenerate SEO metadata (alt text, keywords, filename) and rename output file to SEO slug. Costs 1 extra credit. Default: true.
output_upscale_factorNoAI upscale factor: 2 (2×) or 4 (4×). Uses Real-ESRGAN for high-quality upscaling. Costs 2 credits. Note that upscaling also triggers automatically, without this parameter, whenever a resize target exceeds the source by more than 1.2x — the same 2 credits are charged either way.
output_file_size_limitNoTarget maximum output file size in bytes. The server will attempt to meet this limit through additional compression. Not guaranteed.
output_resize_behaviorNoWhen both width and height are set and aspect ratio differs: 'pad' adds white padding (default), 'crop' smart-crops to fill exact dimensions

Output Schema

NameRequiredDescription
output_pathYesLocal server: absolute path where the optimized file was saved. Remote server: an https download URL that works without credentials until it expires (see download_expires_in_seconds); download it promptly.
seo_alt_textYesAI-generated image alt text for accessibility and SEO
seo_filenameYesAI-generated SEO filename slug without extension
seo_keywordsYesAI-generated keywords describing the image
output_formatYesOutput format: jpg, png, webp, avif, gif, svg, or ico
output_width_pxYesWidth of the output image in pixels
output_height_pxYesHeight of the output image in pixels
compression_ratioYesOutput-to-input size ratio, e.g. 0.35 means 65% smaller
output_size_bytesYesFile size of the optimized image in bytes
download_expires_in_secondsNoRemote server only: seconds until the output_path download URL expires

TDQS

A4.5/5.0
Behavior5/5

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

Annotations only declare write/non-idempotent/open-world; the description adds substantial behavior: the automatic upscale trigger (target >1.2x source, charged even if unrequested), per-frame animated-GIF billing up to 601 credits, GIF exclusion from auto-upscaling, flat SVG/ICO credit override, the remote-mode URL-only restriction, and the 50 MB cap. This is exactly the beyond-annotation context the dimension rewards.

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

Conciseness3/5

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

Purpose is front-loaded and the format/limit facts are efficient, but the middle billing paragraph is a dense run-on ('A full pipeline is 7 credits... up to 601 credits at the 100-frame limit') that is hard to parse and partially duplicates cost notes already in the schema's parameter descriptions.

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

Completeness5/5

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

For a 12-parameter mutation tool, the description covers modes, formats, size limits, cost model, GIF edge cases, and guest/auth behavior. An output schema exists, so return values need no explanation, and nothing an agent needs to invoke it correctly is missing.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3; the description earns above that by explaining cross-parameter cost interactions (width/height +1, upscale +2, SEO +1) and the resize-triggers-upscale rule that ties output_width_px/output_height_px to output_upscale_factor. It clarifies parameter economics rather than merely restating field names.

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?

States a specific verb+resource ('Optimize an image') and enumerates the concrete operations (smart lossy compression, resize/upscale/format conversion, AI SEO metadata). It is trivially distinguishable from the sibling tools (login/status/logout/upgrade), which handle account/credits rather than image work.

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

Usage Guidelines4/5

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

Routes the agent to siblings: 'Log in with the login tool for more credits' and 'Use status tool to check remaining credits before batch processing,' plus the guest-mode note and the confirm_gif_cost gate. It gives clear usage context but no explicit when-not-to-use guidance (there is no competing image tool, so that omission is minor).

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

statusAccount StatusA
Read-onlyIdempotent
Inspect

Check your GlassyPic account status: login state, tier, credits remaining, and credit reset time. Use this before batch processing to verify sufficient credits.

NameRequiredDescriptionDefault

No parameters

TDQS

A4.3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, and openWorldHint, covering the safety profile. The description adds the specific status fields and a use-case tip, but does not disclose additional behavioral traits such as authentication requirements or rate limits. With annotations present, this is adequate but not rich.

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 two concise sentences, front-loaded with the purpose and followed by actionable usage advice. No unnecessary words or repetition.

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

Completeness5/5

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

For a simple status-check tool with no parameters, the description is complete. It explicitly lists the return fields, compensating for the lack of an output schema, and provides a clear usage scenario.

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

Parameters4/5

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

The tool has zero parameters, so the input schema covers everything trivially. The description adds no parameter details, which is appropriate. Per the rubric, a 0-parameter tool gets a baseline of 4.

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 clearly states the tool's function with a specific verb ('Check') and resource ('GlassyPic account status'), and enumerates the exact data returned (login state, tier, credits remaining, credit reset time). It distinguishes itself from sibling tools like login/logout/upgrade by being the read-only status checker.

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

Usage Guidelines4/5

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

The description provides a concrete usage context: 'Use this before batch processing to verify sufficient credits.' It does not explicitly mention when not to use or name alternatives, but the guidance is clear and practical for the intended workflow.

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

upgradeOpen Pricing PageA
Idempotent
Inspect

Open the GlassyPic pricing page in the user's browser, where the account's plan can be reviewed and changed. Call this only when the user asks to change or review their plan.

NameRequiredDescriptionDefault

No parameters

TDQS

A4.7/5.0
Behavior4/5

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

Annotations already indicate the tool is open-world, idempotent, and non-destructive. The description adds valuable context that it opens a page (not directly modifying the plan) and that the plan can be changed from that page. This goes beyond the annotations without contradicting them.

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 a single, well-structured sentence that front-loads the core action and then provides the usage condition. Every word earns its place with no redundancy.

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

Completeness5/5

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

For a tool with no parameters and no output schema, the description is completely sufficient: it explains what the tool does, what page it opens, and when to call it. There are no gaps in understanding.

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

Parameters4/5

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

The tool has zero parameters, and the schema covers everything (100% coverage). The description still contributes by clarifying the action's intent, though no parameter details are needed. This aligns with the baseline for parameterless tools.

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 uses a specific verb ('Open') and specifies the resource ('GlassyPic pricing page'), clearly distinguishing this from sibling tools like login, logout, status, and optimize_image. It states exactly what the tool does and why it exists.

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?

The description gives explicit when-to-use guidance: 'Call this only when the user asks to change or review their plan.' This is a clear directive that also implies when not to use it, making it easy for an agent to decide.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 3 tool updates
    • Changedoptimize_image2 fields changed
      • addedOutput schema / properties / download_expires_in_seconds
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "number"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "description": "Remote server only: seconds until the output_path download URL expires"
        +}
      • changedOutput schema / properties / output_path / description
        Previous value: -"Absolute path where the optimized file was saved"New value: +"Local server: absolute path where the optimized file was saved. Remote server: an https download URL that works without credentials until it expires (see download_expires_in_seconds); download it promptly."
    • Changedstatus1 field changed
      • removedInput schema / additionalProperties
        Removed value: -false
    • Changedupgrade1 field changed
      • removedInput schema / additionalProperties
        Removed value: -false
  2. 1 tool update
    • Changedoptimize_image17 fields changed
      • changedInput schema / properties / output_height_px / description
        Previous value: -"Target height in pixels. Set only height for proportional resize. Set both width and height for exact output dimensions (see output_resize_behavior)."New value: +"Target height in pixels. Set only height for proportional resize. Set both width and height for exact output dimensions (see output_resize_behavior). Costs 1 credit. If the target exceeds the source by more than 1.2x, the server also adds an AI upscale for a further 2 credits."
      • changedInput schema / properties / output_path / description
        Previous value: -"Where to save. Accepts a file path (/tmp/out.webp) or directory ending in / (/tmp/images/). If omitted: saves next to original, named with SEO slug when SEO is enabled or .tinified suffix otherwise. URLs save to current working directory."New value: +"Where to save. Accepts a file path (/tmp/out.webp) or directory ending in / (/tmp/images/). If omitted: saves next to original, named with SEO slug when SEO is enabled or .polished suffix otherwise. URLs save to current working directory."
      • changedInput schema / properties / output_upscale_factor / description
        Previous value: -"AI upscale factor: 2 (2×) or 4 (4×). Uses Real-ESRGAN for high-quality upscaling."New value: +"AI upscale factor: 2 (2×) or 4 (4×). Uses Real-ESRGAN for high-quality upscaling. Costs 2 credits. Note that upscaling also triggers automatically, without this parameter, whenever a resize target exceeds the source by more than 1.2x — the same 2 credits are charged either way."
      • changedInput schema / properties / output_width_px / description
        Previous value: -"Target width in pixels. Set only width for proportional resize. Set both width and height for exact output dimensions (see output_resize_behavior)."New value: +"Target width in pixels. Set only width for proportional resize. Set both width and height for exact output dimensions (see output_resize_behavior). Costs 1 credit. If the target exceeds the source by more than 1.2x, the server also adds an AI upscale for a further 2 credits."
      • addedOutput schema / properties / compression_ratio / anyOf
        Added value: +[
        +  {
        +    "type": "number"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • removedOutput schema / properties / compression_ratio / type
        Removed value: -[
        -  "number",
        -  "null"
        -]
      • addedOutput schema / properties / output_format / anyOf
        Added value: +[
        +  {
        +    "minLength": 0,
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedOutput schema / properties / output_format / description
        Previous value: -"Output format: jpg, png, webp, avif, or gif"New value: +"Output format: jpg, png, webp, avif, gif, svg, or ico"
      • removedOutput schema / properties / output_format / type
        Removed value: -[
        -  "string",
        -  "null"
        -]
      • addedOutput schema / properties / output_height_px / anyOf
        Added value: +[
        +  {
        +    "type": "number"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • removedOutput schema / properties / output_height_px / type
        Removed value: -[
        -  "number",
        -  "null"
        -]
      • addedOutput schema / properties / output_width_px / anyOf
        Added value: +[
        +  {
        +    "type": "number"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • removedOutput schema / properties / output_width_px / type
        Removed value: -[
        -  "number",
        -  "null"
        -]
      • addedOutput schema / properties / seo_alt_text / anyOf
        Added value: +[
        +  {
        +    "minLength": 0,
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • removedOutput schema / properties / seo_alt_text / type
        Removed value: -[
        -  "string",
        -  "null"
        -]
      • addedOutput schema / properties / seo_filename / anyOf
        Added value: +[
        +  {
        +    "minLength": 0,
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • removedOutput schema / properties / seo_filename / type
        Removed value: -[
        -  "string",
        -  "null"
        -]
  3. 3 tool updates
    • First observedoptimize_image
    • First observedstatus
    • First observedupgrade

Related MCP Connectors

Related MCP Servers

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.