@tinify-ai/mcp-server
This MCP server lets you optimize images and manage your GlassyPic account from an MCP client.
Optimize images with smart compression, typically reducing size by 60–80%.
Resize proportionally or to exact dimensions using pad or smart crop.
Upscale images 2× or 4× with AI, including automatic upscaling when resizing beyond 1.2× the source.
Convert between JPG, PNG, WebP, AVIF, GIF, SVG, and ICO; HEIC/TIFF/BMP inputs auto-convert to JPG.
Handle animated GIFs with frame limits and cost confirmation.
Generate SEO metadata: alt text, keywords, and SEO filename slug.
Set a target maximum output file size.
Save outputs to a chosen file path or directory, or auto-save near the original.
Accept absolute local paths or remote URLs, depending on mode.
Check account status/credits, log in, log out, and open the pricing/upgrade page.
Use without signup as a guest with daily free credits.
Allows login via Facebook account to authenticate and access tinify.ai credits.
Allows login via Google account to authenticate and access tinify.ai credits.
Allows login via email/magic link (Magic authentication) to access tinify.ai credits.
Supports SVG as an input and output format, with vector optimization and raster-to-vector conversion.
Uses SVGO for SVG optimization when processing SVG files.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@@tinify-ai/mcp-server Optimize /Users/me/photo.jpg with SEO metadata"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
@glassypic/mcp-server
MCP server for GlassyPic. One tool that turns raw images into production-ready assets: upscaling, resizing and cropping, compression, file format conversion, and SEO filename and alt text generation. Describe the outcome you want in natural language.
Quick Start
Add to your MCP client config:
{
"mcpServers": {
"glassypic": {
"command": "npx",
"args": ["-y", "@glassypic/mcp-server@latest"]
}
}
}No signup required. Works out of the box with 20 free daily credits.
Windows users: If the server doesn't appear after editing a JSON config, your client likely can't resolve
npxfrom PATH (a common, silent failure). Wrap the command withcmd /c:{ "mcpServers": { "glassypic": { "command": "cmd", "args": ["/c", "npx", "-y", "@glassypic/mcp-server@latest"] } } }This applies to the hand-edited JSON configs below (Claude Desktop, Cursor, Windsurf, Cline). The CLI commands (Claude Code, Gemini CLI, Codex CLI) are unaffected.
Client-Specific Setup
Edit ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):
{
"mcpServers": {
"glassypic": {
"command": "npx",
"args": ["-y", "@glassypic/mcp-server@latest"]
}
}
}claude mcp add glassypic -- npx -y @glassypic/mcp-server@latestAdd to .cursor/mcp.json in your project root:
{
"mcpServers": {
"glassypic": {
"command": "npx",
"args": ["-y", "@glassypic/mcp-server@latest"]
}
}
}Edit ~/.codeium/windsurf/mcp_config.json:
{
"mcpServers": {
"glassypic": {
"command": "npx",
"args": ["-y", "@glassypic/mcp-server@latest"]
}
}
}Open Cline settings → MCP Servers → Add, then paste:
{
"mcpServers": {
"glassypic": {
"command": "npx",
"args": ["-y", "@glassypic/mcp-server@latest"]
}
}
}gemini mcp add --transport stdio glassypic npx -y @glassypic/mcp-server@latestOr edit ~/.gemini/settings.json (global) or .gemini/settings.json in your project root:
{
"mcpServers": {
"glassypic": {
"command": "npx",
"args": ["-y", "@glassypic/mcp-server@latest"]
}
}
}Verify it's running inside Gemini CLI with /mcp list.
codex mcp add glassypic -- npx -y @glassypic/mcp-server@latestOr edit ~/.codex/config.toml manually:
[mcp_servers.glassypic]
command = "npx"
args = ["-y", "@glassypic/mcp-server@latest"]Related MCP server: pruna-mcp-server
Tool: optimize_image
One tool that turns a supplied image into a production-ready asset through a fixed server-side pipeline (typically 60-80% size reduction), with optional resize, upscale, format conversion, and SEO metadata generation. Inputs include JPEG, PNG, WebP, AVIF, GIF, SVG, ICO, HEIC, TIFF, and BMP. Outputs are JPEG, PNG, WebP, AVIF, GIF, SVG, and ICO. Accepts absolute local file paths or remote URLs.
Parameters
Parameter | Type | Required | Default | Description |
| string | Yes | — | Absolute local file path or remote URL |
| string | No | auto | File path or directory (ending in |
| string | No | original |
|
| int | No | — | Target width in pixels |
| int | No | — | Target height in pixels |
| int | No | — | AI upscale factor: |
| string | No | pad |
|
| bool | No | true | Generate SEO metadata and rename file to SEO slug. Costs 1 extra credit |
| int | No | — | Target maximum output file size in bytes. Server attempts to meet this via additional compression. Not guaranteed |
| int | No | 100 | Max frames to process for animated GIFs (1–100). Reduces credit cost by sampling fewer frames |
| bool | No | — | Set to |
Resize Behavior
Dimensions provided | Behavior |
|
Width only | Proportional scale | N/A |
Height only | Proportional scale | N/A |
Width + Height | Exact dimensions, white padding |
|
Width + Height | Exact dimensions, smart crop |
|
Examples
Basic compression — just compress, keep format and dimensions:
{ "input": "/Users/me/photos/hero.png" }Convert to WebP:
{ "input": "/Users/me/hero.png", "output_format": "webp" }Resize proportionally — set one dimension, the other scales:
{ "input": "/Users/me/hero.png", "output_width_px": 1200 }Exact dimensions with padding — white bars fill the gap:
{ "input": "/Users/me/hero.png", "output_width_px": 1080, "output_height_px": 1080 }Exact dimensions with smart crop:
{ "input": "/Users/me/hero.png", "output_width_px": 1080, "output_height_px": 1080, "output_resize_behavior": "crop" }AI upscale 4x:
{ "input": "/Users/me/icon.png", "output_upscale_factor": 4 }From URL, save to directory:
{ "input": "https://example.com/photo.jpg", "output_path": "/Users/me/assets/" }Skip SEO to save 1 credit:
{ "input": "/Users/me/hero.png", "output_seo_tag_gen": false }Output
Returns a text summary and structured metadata:
Optimized: /Users/me/photos/modern-office-workspace.webp
Size: 142.3 KB
Compression: 73%
Format: webp
Dimensions: 1920x1080
Alt text: Modern office workspace with laptop and coffee cup on wooden deskStructured output fields:
{
"output_path": "/Users/me/photos/modern-office-workspace.webp",
"output_size_bytes": 145715,
"output_width_px": 1920,
"output_height_px": 1080,
"output_format": "webp",
"compression_ratio": 0.27,
"seo_alt_text": "Modern office workspace with laptop and coffee cup on wooden desk",
"seo_keywords": ["office", "workspace", "laptop", "desk", "modern"],
"seo_filename": "modern-office-workspace"
}Supported Formats
Format | Input | Output | Notes |
JPG | Yes | Yes | |
PNG | Yes | Yes | |
WebP | Yes | Yes | |
AVIF | Yes | Yes | |
GIF | Yes | Yes | Animated GIFs preserved when output is GIF |
SVG | Yes | Yes | SVG→SVG optimized via SVGO; raster↔SVG conversion supported |
ICO | Yes | Yes | Smart rebuild: generates 16, 24, 32, 48, 256px favicon set |
HEIC/HEIF | Yes* | No | Auto-converted to JPG at upload |
TIFF | Yes* | No | Auto-converted to JPG at upload |
BMP | Yes* | No | Auto-converted to JPG at upload |
GlassyPic supports high-quality conversion between any input and output format combination. Converting an animated GIF to a non-GIF format (JPG, PNG, WebP, AVIF) preserves only the first frame. Converting an animated GIF to a GIF format supports upscaling/resizing while preserving the animation and quality. You may also reduce animated GIF file size by decreasing the number of output frames.
Max upload file size: 50 MB.
SVG & ICO Examples
# Optimize an SVG file (keeps as vector)
Optimize logo.svg and keep it as SVG
# Convert SVG to raster
Convert icon.svg to a 512x512 PNG
# Trace raster to vector SVG
Convert my logo.png to a vector SVG
# Generate favicon set from any image
Convert logo.png to an ICO favicon
# Generate single-size ICO
Convert logo.png to a 32x32 ICO
# Extract largest icon from ICO
Convert favicon.ico to PNGHow It Works
Local file or URL
→ Upload to GlassyPic API
→ Optional AI upscale (explicit, or automatic when a resize target exceeds the source by more than 1.2×)
→ Optional resize
→ Compression
→ Optional SEO metadata
→ Download optimized file
→ Save with the SEO filename slug, or a `.polished` suffix when SEO is off or returns no slugAll processing happens server-side via the GlassyPic API. The MCP server is a thin client that orchestrates the pipeline.
Credits
Guests can use the tool with no signup. Logging in links your GlassyPic account and shares its credits with the web app. Allowances differ by plan and change over time: run the status tool for your live balance, or see glassypic.com/pricing for plans. A default run (compress + SEO tags) costs 4 credits per image.
Session data is stored locally at ~/.glassypic/session.json and persists across invocations.
Automatic upscaling
When a resize target exceeds the source image by more than 1.2×, GlassyPic
automatically runs an AI upscale before resizing, so enlargements ship sharp
instead of blurred. This happens without output_upscale_factor being set and
adds 2 credits.
A resize-only call therefore costs the same as a full pipeline when the source is smaller than the target:
Call | Credits |
Compress only, no SEO tags | 3 |
Compress + SEO tags (defaults) | 4 |
Resize down + SEO tags | 5 |
Resize up past 1.2× + SEO tags | 7 |
Compress + resize + explicit upscale + tags | 7 |
SVG or ICO output | 1 (flat, overrides the above) |
Animated GIFs are billed per frame — see the confirm_gif_cost parameter.
Account & Credits
Log in to unlock more credits and share them across the web app and MCP server:
Use the login tool to sign in.
Use the status tool to check your current credits.
Use the upgrade tool to open the pricing page.
Use the logout tool to sign out.login
Opens a browser window to complete login (Google, Facebook, or email/magic link). After approval, your account is linked and credits are shared with the web app.
Login complete: user@example.com (Pro tier, 3,150 of 3,300 credits remaining)status
Check your current account status and credits before batch processing:
Logged in as user@example.com (Pro tier)
Credits: 3,150 of 3,300 remaining
Resets: 03/01/2026, 12:00 AM PSTlogout
Revokes the session and reverts to guest mode.
upgrade
Opens glassypic.com/pricing in your browser.
Tips for AI Agents
Paste this into your CLAUDE.md or system prompt to help agents use the tool effectively:
## GlassyPic MCP
Tools: optimize_image, login, logout, status, upgrade
- Use status to check credits before batch processing
- Credits: 3 to compress (always), +1 if width/height is set, +2 to upscale, +1 for SEO tags (default). A full pipeline is 7 credits. SVG/ICO output is a flat 1 credit.
- Resizing up past 1.2x the source triggers an automatic AI upscale (+2 credits) even without output_upscale_factor set — a resize-only call on a small image can cost 7, not 5.
- Allowances vary by plan; call status for the live balance instead of assuming a number.
- Always use absolute file paths, not relative.
- Set only width OR height for proportional resize. Set both for exact dimensions.
- When both dimensions are set, use output_resize_behavior: "crop" for photos, "pad" for logos/icons.
- output_seo_tag_gen (default true) renames the file to an SEO slug and generates alt text + keywords.
- Set output_seo_tag_gen: false to save 1 credit when SEO metadata is not needed.
- GIF is supported for both input and output; animated GIFs stay animated when output_format is "gif".
- Converting an animated GIF to jpg/png/webp/avif preserves only the first frame.
- HEIC, TIFF, BMP inputs are auto-converted to JPG.
- For batch processing, call optimize_image once per file.
- If credits run out, use login to sign in or upgrade to open pricing.Troubleshooting
Server not appearing in tool list:
Restart your MCP client after editing the config
Ensure Node.js >= 18 is installed:
node --versionTry running directly:
npx -y @glassypic/mcp-server@latest(should start without errors)On Windows: if the server silently never loads, wrap the command with
cmd /c("command": "cmd","args": ["/c", "npx", "-y", "@glassypic/mcp-server@latest"]) — see the Windows note under Quick Start
"Insufficient credits" error:
Use the
statustool to check remaining creditsUse the
logintool to sign in for more creditsUse the
upgradetool to open the pricing page and compare plansDisable SEO tags (
output_seo_tag_gen: false) to save 1 credit; note that resizing up past 1.2× the source still adds an automatic 2-credit upscale regardless
Login browser window doesn't open:
Open this URL manually:
https://glassypic.com/mcp/authorizeand enter the code shown in the terminalEnsure a browser is installed and accessible
Session token issues:
Session data is stored at
~/.glassypic/session.jsonDelete this file to reset and start fresh
Use
logoutthenloginto re-authenticate
File not found:
Use absolute paths for local files
For URLs, ensure the image is publicly accessible
Timeout errors:
Large images or AI upscaling can take 30-60 seconds
The server has a 60-second timeout per job
Privacy Policy
Full policy: https://glassypic.com/privacy/
What is transmitted. Images you optimize are uploaded to the GlassyPic API
(https://api.glassypic.com) for processing, along with your authentication
token. Images are retained according to your account tier and then deleted —
both the original upload and the processed version. See the policy for the
retention schedule.
When you pass a remote URL to the tool, the GlassyPic API fetches it server-side; the URL itself is sent to GlassyPic, and the request to the image host originates from GlassyPic's servers rather than from your machine.
What is stored locally. When you use the login tool, your access token and
account email are written to ~/.glassypic/session.json with file mode 0600
(owner read/write only). If you optimize an image without logging in, the
first upload mints a guest session token, which is written to that same file
so subsequent calls stay attached to the same guest session's credits — no
account, email, or personal information is attached to it. Running the
logout tool removes the file's token. See also
Account & Credits and Troubleshooting.
What is not collected. When run as a local connector, this server sends no telemetry and makes no network call other than to the GlassyPic API. (The remote HTTP transport additionally calls Supabase for authentication.)
Configuration
Variable | Default | Purpose |
|
| API endpoint. Development and self-hosting only — most users never set it. |
The value must be an https URL. Plain http is accepted only for localhost
and 127.0.0.1, because your images and Bearer token are sent to this host. An
invalid value produces a clear error naming the variable rather than a silent
request to the wrong endpoint.
Requirements
Node.js >= 18
An MCP-compatible client (Claude Desktop, Claude Code, Cursor, Windsurf, Cline, OpenAI Codex CLI, Gemini CLI, etc.)
Security
Report vulnerabilities privately. See SECURITY.md. Do not file a public issue for an unfixed security report.
License
MIT - see LICENSE.
Available Tools
5 toolsloginLog InAInspect
Log in to your GlassyPic account via browser to unlock more credits. Opens a browser window where you complete login (Google, Facebook, or email). After login, MCP automatically picks up your account with shared credits across web and MCP. Registered accounts receive a larger credit allowance than guest sessions; use the status tool to read the account's actual tier and remaining credits. Your access token and email are stored locally at ~/.glassypic/session.json (file mode 0600) until you run logout.
Inputs: no named parameters.
logoutLog OutADestructiveIdempotentInspect
Log out of your GlassyPic account. Reverts to guest session. Your web app account is not affected.
Inputs: no named parameters.
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.
Inputs: input (required), output_path, output_format, gif_frame_limit, +8 more. Returns: output_path, seo_alt_text, seo_filename, seo_keywords, +6 more
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 5 tools
Each tool targets a clearly distinct purpose: account session (login/logout), account status (status), plan management (upgrade), and the core image operation (optimize_image). There is no overlap in intent, so an agent can easily select the right tool.
Most names are simple lowercase verbs (logout, login, upgrade), with one verb_noun (optimize_image) and one noun (status). The pattern is mostly consistent but has minor deviations in structure and part of speech, though still very readable.
Five tools are well-scoped for an image optimization service: one primary action plus four account management helpers. Each tool earns its place and the set is neither bloated nor thin.
Core image optimization and account management are covered, but the optimize_image description references a 'confirm_gif_cost' tool that is not present, creating a dead end for animated GIF workflows. Batch processing is also mentioned but no dedicated tool exists.
Maintenance
Related MCP Connectors
Hosted MCP server for AI photo editing: nothing to install, no desktop photo editor needed.
MCP server for Qwen Image 3 AI image generation
MCP server for Midjourney AI image generation and editing
MCP server for Wan AI video generation
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceA lightweight MCP server for image processing and cloud uploads that automates resizing, converting, optimizing, and uploading images to services like AWS S3, Cloudflare R2, and Google Cloud Storage.14 npm18MIT
- AlicenseAqualityDmaintenanceMCP server for Pruna AI — ultra-fast image generation, editing, upscaling, and video generation directly from your AI assistant.875 PyPI5MIT
- AlicenseNot gradedqualityDmaintenanceMCP server for image optimization, conversion, AI generation, and gallery management via SnapiX API.19 npmMIT
- AlicenseNot gradedqualityCmaintenanceMCP server for generating, editing, and processing images via multiple providers including Kilo, OpenRouter, OpenAI, and Gemini, with local tools for background removal, resizing, and cropping.27 npm3MIT