Skip to main content
Glama
188,810 tools. Last updated 2026-06-10 13:13

"JPEG" matching MCP tools:

  • Generate one image from a prompt using OpenAI GPT Image 2. Returns a public URL you can embed in markdown or pass to a creative-asset tool (e.g. Google Ads `createImageAsset`). Counts against the user's monthly quota. Prompt craft (GPT Image 2 rewards long, specific, instruction-style prompts — write a paragraph, not keywords): - Lead with the medium: photograph, 3D render, isometric vector, watercolor, flat illustration, studio product shot. Single biggest quality lever. - Then specify subject, setting, mood, color palette, lighting (e.g. 'golden hour, soft backlight'), and camera/perspective (close-up, wide, overhead, low angle, macro). - Keep the focal subject in the center 80% of the frame — ad platforms crop edges across placements. - Prefer lifestyle / in-context scenes over isolated-on-white product shots. Google explicitly recommends 'physical settings with organic shadows and lighting' for ad creative. - Don't render text unless the user asks for specific copy. Overlaid text is often unreadable at small ad sizes and Google flags it as a quality issue. - Avoid negative prompts ('no X, no Y'). GPT Image often pulls the rejected concept in — describe what you want instead. Ad-policy rules to bake into prompts: - No collages, borders, watermarks, mirrored / skewed / over-filtered looks. - No fake UI elements (play buttons, download/close icons) — Google Ads policy violation. - Don't overlay a logo on the photo; logos belong inside the scene (on a product, sign, storefront). - Blank space should be under 80% of the frame — the subject is the focus. Aspect ratios — match the target placement: - Google Ads asset slots: '1.91:1' landscape (required), '1:1' square (required), '4:5' portrait, '9:16' vertical (Demand Gen / Shorts). - Meta / social: '1:1' or '4:5' feed; '9:16' stories/reels; '1.91:1' link previews. - Hero / web banners: '16:9' or '3:2'. Default is '1:1'. Quality vs latency: 'low' ~5s drafts; 'medium' balanced; 'high' runs the four-stage Understand/Plan/Generate/Review pipeline (30–50× slower than low) — use only for production-final fidelity. Output format: default 'png' (lossless). Use 'webp' or 'jpeg' for smaller photographic assets. background='transparent' requires png/webp (use for logos, cutouts, UI assets).
    Connector
  • Upload a PNG/JPEG image asset from an HTTPS URL. Pick the field type by SERVING SLOT, not by aspect ratio: MARKETING_IMAGE (Display/PMax 1.91:1, min 600x314) | SQUARE_MARKETING_IMAGE (Display/PMax 1:1, min 300x300) | AD_IMAGE (Search/Display 'image extension' on RSAs — accepts either 1.91:1 OR 1:1 source, campaign/ad_group link levels only). Optionally link it to serving targets via `targets`. Returns changeId, assetId, and link resource names. To attach an existing image to more targets later, call `linkAsset`.
    Connector
  • Mint a one-shot signed upload URL for a product you own. Authenticated. OAuth (scope `products:write`) preferred; `api_key` fallback. Use this when you have **local image bytes** (a file the user attached, bytes you generated/downloaded in your sandbox) and you want to attach them to a product that already exists. Common cases: - `create_product` returned 409 (duplicate name) — the listing already exists; this tool gives you an upload URL for it without creating anything new. - You're adding a 2nd, 3rd, … photo to a product. The returned URL is valid for ~15 min, single product, signed with your authenticated identity. From your sandbox, do **one PUT**: requests.put(result["upload_url"], data=open("/path/to/photo.jpg", "rb").read(), headers={"Content-Type": "image/jpeg"}) No auth header on that PUT — the URL is the credential. If you have a public URL (not local bytes), use `upload_product_image(product_id, image_url=...)` instead. Args: product_id: Product to attach the future image to. You must own it. api_key: Legacy/fallback auth. Omit when using OAuth. Returns: ``{"upload_url": str, "upload_expires_in": int}``, or ``{"error": ...}`` on auth/ownership failure.
    Connector
  • Mint a one-shot signed upload URL for a product you own. Authenticated. OAuth (scope `products:write`) preferred; `api_key` fallback. Use this when you have **local image bytes** (a file the user attached, bytes you generated/downloaded in your sandbox) and you want to attach them to a product that already exists. Common cases: - `create_product` returned 409 (duplicate name) — the listing already exists; this tool gives you an upload URL for it without creating anything new. - You're adding a 2nd, 3rd, … photo to a product. The returned URL is valid for ~15 min, single product, signed with your authenticated identity. From your sandbox, do **one PUT**: requests.put(result["upload_url"], data=open("/path/to/photo.jpg", "rb").read(), headers={"Content-Type": "image/jpeg"}) No auth header on that PUT — the URL is the credential. If you have a public URL (not local bytes), use `upload_product_image(product_id, image_url=...)` instead. Args: product_id: Product to attach the future image to. You must own it. api_key: Legacy/fallback auth. Omit when using OAuth. Returns: ``{"upload_url": str, "upload_expires_in": int}``, or ``{"error": ...}`` on auth/ownership failure.
    Connector
  • Generate one image from a prompt using OpenAI GPT Image 2. Returns a public URL you can embed in markdown or pass to a creative-asset tool (e.g. Google Ads `createImageAsset`). Counts against the user's monthly quota. Prompt craft (GPT Image 2 rewards long, specific, instruction-style prompts — write a paragraph, not keywords): - Lead with the medium: photograph, 3D render, isometric vector, watercolor, flat illustration, studio product shot. Single biggest quality lever. - Then specify subject, setting, mood, color palette, lighting (e.g. 'golden hour, soft backlight'), and camera/perspective (close-up, wide, overhead, low angle, macro). - Keep the focal subject in the center 80% of the frame — ad platforms crop edges across placements. - Prefer lifestyle / in-context scenes over isolated-on-white product shots. Google explicitly recommends 'physical settings with organic shadows and lighting' for ad creative. - Don't render text unless the user asks for specific copy. Overlaid text is often unreadable at small ad sizes and Google flags it as a quality issue. - Avoid negative prompts ('no X, no Y'). GPT Image often pulls the rejected concept in — describe what you want instead. Ad-policy rules to bake into prompts: - No collages, borders, watermarks, mirrored / skewed / over-filtered looks. - No fake UI elements (play buttons, download/close icons) — Google Ads policy violation. - Don't overlay a logo on the photo; logos belong inside the scene (on a product, sign, storefront). - Blank space should be under 80% of the frame — the subject is the focus. Aspect ratios — match the target placement: - Google Ads asset slots: '1.91:1' landscape (required), '1:1' square (required), '4:5' portrait, '9:16' vertical (Demand Gen / Shorts). - Meta / social: '1:1' or '4:5' feed; '9:16' stories/reels; '1.91:1' link previews. - Hero / web banners: '16:9' or '3:2'. Default is '1:1'. Quality vs latency: 'low' ~5s drafts; 'medium' balanced; 'high' runs the four-stage Understand/Plan/Generate/Review pipeline (30–50× slower than low) — use only for production-final fidelity. Output format: default 'png' (lossless). Use 'webp' or 'jpeg' for smaller photographic assets. background='transparent' requires png/webp (use for logos, cutouts, UI assets).
    Connector
  • Restore and enhance faces in an image using GFPGAN. Detects all faces via RetinaFace, restores quality (fixes blur, noise, compression artifacts), and pastes them back. Optionally enhances the background using Real-ESRGAN. GPU-accelerated, sub-3s latency. Args: image_base64: Base64-encoded image data containing faces (PNG, JPEG, WebP). upscale: Output upscale factor -- 1 to 4 (default: 2). enhance_background: Whether to enhance background with Real-ESRGAN (default: true). Returns: dict with keys: - image (str): Base64-encoded restored image - format (str): Output image format - width (int): Output width - height (int): Output height - upscale (int): Scale factor applied - processing_time_ms (float): Processing time in milliseconds
    Connector

Matching MCP Servers

Matching MCP Connectors

  • Checks if a Japanese construction or renovation estimate is fair and flags overcharge risk.

  • Screenshot any website with one API call PNG, JPEG, WebP, or PDF. Custom viewports, device emulation, ad blocking, dark mode, and smart caching.

  • Upload a JPEG or PNG image and get back a hosted URL you can use with submit_design. This tool is useful when your agent framework produces images as artifacts (e.g. base64 strings) and you need to upload them before submitting a design. Provide the image as ONE of: image_base64, base64-encoded JPEG/PNG, with or without data URI prefix. image_url, publicly accessible image URL (max 5 MB). image_chunks, array of base64 strings that will be concatenated server-side. Use this if your base64 string is too large for a single parameter. Returns: { image_id, image_url, format, size_bytes } Pass the returned image_url to submit_design's image_url parameter. ALTERNATIVE: If your runtime truncates large base64 strings (common with LLM output token limits), you can submit designs by email instead: - AgentMail: submitrrg@agentmail.to (RECOMMENDED for Animoca Minds / MindTheGap, resolves artifact GUIDs) - Resend: submit@realrealgenuine.com Attach the image as JPEG/PNG. Subject: "RRG: Title". Body: wallet: 0x...
    Connector
  • Upload a JPEG or PNG image and get back a hosted URL you can use with submit_design. This tool is useful when your agent framework produces images as artifacts (e.g. base64 strings) and you need to upload them before submitting a design. Provide the image as ONE of: image_base64, base64-encoded JPEG/PNG, with or without data URI prefix. image_url, publicly accessible image URL (max 5 MB). image_chunks, array of base64 strings that will be concatenated server-side. Use this if your base64 string is too large for a single parameter. Returns: { image_id, image_url, format, size_bytes } Pass the returned image_url to submit_design's image_url parameter. ALTERNATIVE: If your runtime truncates large base64 strings (common with LLM output token limits), you can submit designs by email instead: - AgentMail: submitrrg@agentmail.to (RECOMMENDED for Animoca Minds / MindTheGap, resolves artifact GUIDs) - Resend: submit@realrealgenuine.com Attach the image as JPEG/PNG. Subject: "RRG: Title". Body: wallet: 0x...
    Connector
  • Reserve a pre-signed PUT slot for a forthcoming file upload. Returns the upload URL, an ``upload.headers`` dict (the agent MUST echo every header in this dict on the PUT -- today that is just ``Content-Type``), the slot expiry (5 minutes), and a ``next_tool_call`` recipe pointing at ``tag_file`` -- copy-paste the ``file_id`` to run the FileTag pipeline against the uploaded bytes. This is the canonical path for any file the agent holds locally; bytes never traverse the LLM context (they go directly from the agent host to GCS). Allowed types: PDF, PNG, JPEG, GIF, WebP. Max size 50 MB.
    Connector
  • Return all available CC0 images for a Smithsonian object at multiple resolutions. Only CC0 (open access) images are returned — throws Forbidden when an object has media but none of it is CC0. Each image entry includes thumbnail (~120px), screen-size (~800px), and high-resolution JPEG/TIFF URLs with pixel dimensions. Use smithsonian_search with filters.cc0_only to find CC0 objects before calling this tool.
    Connector
  • Upload a file to the user's Drive. The file must be base64-encoded. Max file size: 10 MB. Allowed types: PDF, DOC, DOCX, XLS, XLSX, PPT, PPTX, TXT, CSV, JPG, JPEG, PNG, GIF, WEBP, SVG, BMP. Filenames are sanitized (spaces to underscores, special characters removed). # upload_file ## When to use Upload a file to the user's Drive. The file must be base64-encoded. Max file size: 10 MB. Allowed types: PDF, DOC, DOCX, XLS, XLSX, PPT, PPTX, TXT, CSV, JPG, JPEG, PNG, GIF, WEBP, SVG, BMP. Filenames are sanitized (spaces to underscores, special characters removed). ## Parameters to validate before calling - filename (string, required) — Original filename with extension (e.g., "report.pdf", "logo.png") - mime_type (string, required) — MIME type of the file (e.g., "application/pdf", "image/png", "text/csv") - file_data (string, required) — Base64-encoded file content - private (boolean, optional) — Privacy flag. Default: true (file is private to the user).
    Connector
  • Detects the true image format of any URL via magic byte inspection — works even when the file extension or Content-Type header lies (common with proxied or CDN-hosted images). Returns: format (png/jpeg/gif/webp/avif/bmp/tiff/svg/ico/unknown), detected MIME type, whether Content-Type header matches, file size (bytes), and pixel dimensions for PNG and JPEG. No API key required. $0.040/call — 20% below x402node.
    Connector
  • Transform and manipulate images with a pipeline of up to 30 sequential operations. The operations parameter is an ordered pipeline applied from first step to last step. Use this to edit existing images rather than generate new layered graphics from scratch. Operations: resize, crop, extend, trim, rotate, flip, flop, blur, sharpen, modulate, tint, grayscale, invertColors, autoContrast, gamma, removeTransparency, threshold, denoise, opacity, convert, upscale (AI, 2-4x), smartCrop (AI, detects faces/people/objects), compressToSize, removeBackground (AI). Supports PNG, JPEG, WebP, AVIF, and HEIF output. Max file size: 50 MB.
    Connector
  • Generate images from layer compositions. The layers parameter is an ordered array of layer definitions, and dimensions set the output width and height in pixels. Layer types: solid-color, gradient, text (with Markdown bold/italic), image, qr-code, barcode (Code 128, EAN-13, EAN-8, Code 39, ITF, Codabar), and layout (nested flex-like container with direction, gap, alignment, and padding). Layers are composited by index order with per-layer opacity and rotation. 99 Google Fonts are built in (Inter, Roboto, OpenSans, Montserrat, Poppins, Outfit, Lato, etc.) -- reference any by name without uploading font files. Custom fonts can be provided as base64. Output formats: PNG (default), JPEG, WebP, TIFF, GIF, AVIF.
    Connector
  • Use this tool when the user shares an image that contains text they need extracted, read, or processed. Triggers: 'read the text in this image', 'extract text from this screenshot', 'what does this scanned page say', 'transcribe this handwritten note'. Accepts base64-encoded PNG/JPEG/WEBP/BMP/TIFF. Returns extracted text, confidence score, and word count. Prefer this over vision model text extraction for accuracy on scanned docs. Free, no API key, no signup; the image is processed in memory and never stored.
    Connector
  • Place a raster or SVG image on the board at (x, y) with explicit width/height in board pixels. `data_url` MUST be a `data:image/(png|jpeg|gif|webp|svg+xml);base64,...` string ≤ ~900 kB; hosted URLs are not accepted. Strongly recommended: also pass a tiny `thumb_data_url` (≤8 kB JPEG/PNG/WebP, ~64 px on the long edge) — it is embedded into the SVG preview so OTHER AI viewers (and you, on later `get_preview` calls) can actually see the image instead of a placeholder box.
    Connector
  • Create a new product listing on Partle. Authenticated. Prefer **OAuth**: connect once via the consent flow on claude.ai (or any MCP client that supports OAuth) and the bearer token is attached automatically — no `api_key` parameter needed. **Fallback**: pass an `api_key` (prefix `pk_`, generate at /account) for programmatic or non-OAuth clients. Required OAuth scope: `products:write`. Use when the user wants to add an item for sale. For edits to an existing product, use `update_product` instead. **Images.** This tool creates text fields only — no image arg. Do **not** try to pass image bytes through a tool argument; phone-sized payloads blow past conversation context limits. The response includes a one-shot ``upload_url`` (signed, ~15 min TTL, bound to this product and your authenticated user). To attach an image from your code-execution sandbox, do **one** PUT request — no auth headers needed, the URL itself carries the credential: requests.put(result["upload_url"], data=open("/path/to/photo.jpg", "rb").read(), headers={"Content-Type": "image/jpeg"}) The bytes flow Python → HTTP body → Partle, never through the conversation. The URL works once and expires fast. Alternative if you don't have local bytes but have a public image URL: call ``upload_product_image(product_id, image_url=...)`` instead. **Duplicate prevention.** Same user, same product name (case- and whitespace-insensitive) returns 409 with `existing.id`, `existing.url`, **and a fresh `upload_url`** for that existing product — so if the user is just retrying with a photo, you can attach it directly to the existing listing without having to create or pick anything new. You can also call `update_product` to change fields. Don't retry blindly. **Idempotency.** Pass `idempotency_key` (any unique string per logical create — UUID or hash of the source listing) and a retry after a network failure returns the original response instead of creating a duplicate. Reusing a key with a different payload is a 422. Args: name: Product name. Required, 1–200 chars. description: Long-form product description. Optional. price: Price in whole currency units, **not** cents (e.g. ``15.99`` means €15.99). Max 100000. Omit for "ask the seller". currency: Currency symbol. Defaults to `€`. Use `$`, `£`, etc. url: Link to the merchant's product page. Optional but recommended. store_id: ID of the store this product belongs to. Omit for a personal listing not tied to any store. idempotency_key: Optional retry-safety token. Unique per logical create. Send the same key on retries to get the same response. api_key: Legacy/fallback auth. Omit when using OAuth. Returns: The created product record including its new `id` and canonical `partle_url`. Share `partle_url` with the user. Returns ``{"error": ...}`` on auth, dedup, or validation failure (dedup also returns ``{"existing": {"id", "name", "url"}}``).
    Connector
  • [CREATE, Step 2] Submit an original artwork for review. Call list_briefs or get_current_brief FIRST to get a brief_id. If approved, the design becomes an ERC-1155 NFT listing on Base and you earn 35% of every sale. image_url, a publicly accessible JPEG/PNG URL (max 5 MB). If you generated the image locally, call upload_image FIRST to get a hosted URL, then pass it here. CANNOT DELIVER IMAGES VIA MCP? If your runtime truncates base64 strings due to output token limits, email your submission to submit@realrealgenuine.com with the image as a file attachment. Subject: "RRG: Your Title". Body: wallet: 0x..., description: ..., brief: ... (see server instructions). Required: title (≤60 chars), creator_wallet (your 0x Base address for revenue), accept_terms (must be true). Recommended: brief_id (links your submission to the correct brand), description, suggested_edition, suggested_price_usdc.
    Connector
  • Upload a verification document for a medication order. Accepts photo ID and selfie as base64-encoded files. Supported formats: PDF, JPEG, PNG. Maximum size: 10MB. Requires authentication.
    Connector
  • Set or replace a live event's cover image. Provide ONE of: image_base64 (the raw image bytes — use this to set an image attached or generated in the chat, passing its FULL bytes) OR image_url (a public https link, fetched + re-hosted durably). png/jpeg/webp/gif, ≤10 MB, complete image only (truncated payloads rejected). If your runtime can't move the full bytes into the call, host the image at a public URL and use image_url. Requires event_id; you must be a host.
    Connector