Skip to main content
Glama
630,351 tools. Updated 2026-10-02 19:27

"Basic Image Editing Operations like Resizing, Cropping, and Blurring" matching MCP tools:

  • Enumerate and inspect the validated operations scene_apply accepts — call this BEFORE reaching for scene_script. The DSL is large (mesh editing, booleans, lathe/loft/sweep, curves, UV unwrap, modifiers, materials, lights, cameras, render settings, geometry nodes, batch and query ops), so most modelling does NOT need raw bpy. No args: every namespace with counts. guide=true (or op="guide" for older connector catalogs): full operating guide. namespace="mesh": that namespace's operations. Repeated details are object.radial_array or object.array_along_curve (no "pattern" namespace). Use world.update for the environment; validation is the separate scene_validate tool. search="boolean": ranked matches. op="mesh.bevel": the full JSON Schema with types, ranges and defaults. Schemas are introspected from the validator itself, so they are always exactly what scene_apply will accept. Full schemas are returned once in structuredContent; format="text" returns them in text instead. This tool is READ ONLY and free — it queues no job, spends no compute and changes nothing — so it is always safe to retry, including after a transport-level error.
    ConnectorAPI key
  • Discover sheet names and used dimensions before reading or editing a WorkPaper. Returns metadata only; use read_range or read_cell for values.
    ConnectorNo auth
  • Read-only. Use to find workflows in a project by name, description, or trigger type before inspection or editing. Trigger filters include database, auth email, repeating, broadcast, and no-trigger workflows. Returns paginated workflow summaries, published/sandbox state, trigger type, workflow URLs, totalCount, hasMore, and nextOffset. Do not use as the final source of truth before editing; call get_workflow_and_preview_url for full structure.
    ConnectorNo auth
  • Render a DXF drawing to a PNG image you can look at. Use this to answer visual questions (what does it look like, where is a feature) — it returns an image, not text. For structural facts and measurements, prefer describe_dxf; never measure pixels. Some chat UIs do not display the returned image to the user: for URL sources the result also includes a direct image link — show it to the user (e.g. as a markdown image) when they need to see the render. When the user wants to see or explore the drawing themselves, prefer view_dxf (interactive viewer) — if your platform gates it behind user approval, offer it and ask rather than substituting a static render.
    ConnectorNo auth
  • Convert one base64-encoded image to PNG, JPEG, WebP, or AVIF. Use input_mime_type with a real image MIME such as image/png or image/jpeg; common aliases like image/jpg, jpg, png, svg, and application/octet-stream with a filename are accepted. Use the REST API for source images larger than 5 MB. On every call, pass telemetry.agent_thinking with your reasoning for this specific call. Pass telemetry.user_intent only on the first tool call after a new user message.
    ConnectorNo auth
  • Verify a single image's authenticity when the user asks whether it is genuine, AI-generated, manipulated, or carries Content Credentials, and only the image is available (no RAW camera file). Not for feedback on a photo (composition, editing, colour) or for anything that is not a still image. Checks its embedded Content Credentials (C2PA) for capture provenance and AI-generation flags, and runs advisory forensic screens (error-level analysis, double-JPEG artifacts, EXIF timestamp consistency, editing-software traces, screen recapture). Free: it does not consume your verification quota. Provide the image as an attachment (image_file), inline as image_base64, or — for large files without attachments — call create_verification_upload and pass the returned image_object_key. Returns a verification id at once; the analysis runs in the background and takes from about a minute to 10 minutes or more, so call get_verification with the id repeatedly until status is completed; the completed result includes a structured evidence_report (verdict, per-check findings, coverage). For the strongest forensic check, use verify_photo with a RAW + JPEG pair instead.
    ConnectorOAuth

Matching MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Provides a suite of deterministic tools for time calculations, math, and string manipulation that LLMs often struggle to perform accurately. It also includes utilities for secure randomness, data validation, and basic network operations like DNS lookups.
    8 npm
    MIT

Matching MCP Connectors

  • Free, keyless MCP server with 50 read-only blockchain tools for Bitcoin, Ethereum, and Mezo. No installation, no API key required -- just add the URL to your MCP client and start querying balances, transactions, blocks, ENS names, ERC-20 tokens, smart contracts, and more. Runs on Cloudflare's global edge network via Streamable HTTP. All tools are strictly read-only and stateless.

  • Background removal, upscaling, face restore, document OCR, table extraction, visual understanding.

  • Verify the API key and report which powers it has. Returns { userId, username, keyId, keyName, scopes, mapLimits }. mapLimits contains maxMapsPerProject (null means unlimited), maxAreaPx (width × height allowance per map), maxWidthPx and maxHeightPx (independent technical side limits), and canResizeMaps. Paid plans allow any aspect ratio within both area and side limits. Admin accounts receive Studio map capacity even without a subscription. Read effective limits and the saved map before recommending gameplay-sized dimensions; starter dimensions are not an account limit. Free is fixed at 720 × 480; saved larger maps remain editable/exportable, but resizing requires a subscription. Map creation and editing use the web editor. Call this first when a tool fails with a scope error — the scopes array tells you what this key can and cannot do.
    ConnectorNo auth
  • Use this to create or edit an AI image. Text-to-image from a prompt, OR image-to-image / editing / multi-reference by passing input_images (URLs, data URIs, or base64) — e.g. edit or restyle an image the user just generated by passing its URL. Input support is per-model: some take 1 image, some several, some none (check each model's max_input_images via list_models). Submits an async job and returns a job_id — then call check_generation_status to poll (usually ready in seconds); when complete it returns the finished image inline for you to display. Costs credits from the user's plan (their discounts and free-model perks apply automatically). Default model: seedream-5.0-pro; call list_models to see every available model with prices and input limits.
    ConnectorNo auth
  • Edit a feed's basic settings: rename (name) and/or enable/disable (enabled). Provide at least one. Returns {feedId, status, changed:[...], name, enabled, revisionBefore, revisionAfter}. status is 'updated' or 'no_changes'. feed_id from list_feeds / create_feed; project_id OPTIONAL. NOTE: attribute mapping and product-filter editing are NOT supported here yet — only name/enabled. For enable/disable only, pause_feed/resume_feed are equivalent; use update_feed when also renaming. Setting enabled:true can resume scheduled export/submission and change live listings. Confirm that effect before enabling; changing only the name does not publish.
    Connector
    Destructive
    OAuth
  • Overwrite fields on one location. Read it first (get_project_locations or get_location), then send ONLY the fields you changed — omitted fields are left untouched. IMPORTANT: a location is usually shared by several scenes across episodes, so this edit changes every scene that uses it. Check where it is used first; if the change is meant for one scene only, it needs a NEW location rather than an edit to this one. Editing name, short_description, visual_prompt, user_prompt, visual_style, aspect_ratio or spatial_layout marks the location stale, because its existing generated image no longer matches the description — regenerate the image if you want them back in sync. Editing mood, location_type, recurring or appears_in_episodes does not affect the image and leaves the stale flag alone. spatial_layout is the set bible: the named zones of the set and the fixed zone and height of each prop. Scenes must draw their spatial_geometry zones from it instead of inventing labels, so correcting it here fixes prop placement for every scene at once. Keep descriptions consistent with the owning character's status and the project's tone. This writes immediately and cannot be undone.
    Connector
    Destructive
    No auth
  • Downscales an image to fit within a maximum dimension (default 1600px on the longer side, never enlarges -- matching GO AI's browser compressor tool) and re-encodes it as JPEG, WebP or AVIF at a given quality (1-100 scale, default 75). Input is base64-encoded image bytes (any format sharp/libvips can decode: JPEG, PNG, WebP, AVIF, GIF, TIFF, ...), not a file path or URL, capped at this server's input size limit. Returns the compressed image bytes plus a stats object: original and compressed dimensions and byte sizes, and the percent size change (positive = smaller, negative = the re-encode came out bigger, which happens when compressing an already-small, already-compressed image). Re-encoding always strips EXIF/ICC metadata, exactly like the source tool.
    ConnectorNo auth
  • Create OR update an IMAGE (or GIF) ad on Facebook, Instagram, LinkedIn, and/or Reddit. TO UPDATE: include `id`; to CREATE: omit it. CREATIVE WORKFLOW: 1. Upload the image/GIF via `upload_image_creative` → response gives `id` (the imageLibraryId). 2. Pass that integer as `creativeID` here. - Need a new image? `generate_brand_creative` → `upload_image_creative` → `create_update_image_ad`. ALSO KNOWN AS: create image ad, update image ad, edit image ad, modify image ad, image creative, post image, image post, photo ad. KEYWORDS: image, gif, create, update, edit, modify, ad, ads, image ad, image ads, image creative, photo, picture, banner, image campaign, image upload, LinkedIn image, Facebook image, Instagram image, Reddit image, IG post. CLIENT-SIDE VALIDATION (refuses what the platform UI would also reject): - adName: required, max 50 chars, pattern `[a-zA-Z0-9 _.?,:'/+\-=&;%$#\[\]|()]`. - creativeID: required integer (imageLibraryId from `upload_image_creative`). - Landing-page URL is per channel (`facebookDisplayURL`, `instagramDisplayURL`, `linkedinDisplayURL`, `redditDisplayURL`). Required for FB/IG/LinkedIn, optional for Reddit. Per-channel caps: LinkedIn max 2000, Reddit max 100, FB/IG no length rule. URL format accepts both `metadata.io` and `https://metadata.io` for IMAGE ads. If only one channel's URL is set the server fans it across the other targeted channels; each channel's cap is then enforced per channel. - LinkedIn: linkedinText (required, max 3000), linkedinHeadline (required, max 200), linkedinDescription (optional, max 300 — IMAGE only), linkedinCTA (required, must be a valid LinkedIn CTA enum). - Facebook: metaCTA (required), facebookText (required, no length rule on Facebook), facebookHeadline (required, max 250), facebookDescription (optional, max 300). - Instagram: metaCTA (required), instagramText (required, max 125), instagramHeadline (required, max 40), instagramDescription (optional, max 30). - FB+IG ad with one body text: set just one of facebookText / instagramText and the server copies it across (capped at the receiving channel's limit). Set both explicitly only when you want per-channel copy. - Reddit: redditHeadline (required, max 300), redditCTA (required, must be a valid Reddit CTA enum). redditThumbnailLibraryId is optional and defaults to creativeID. COMMON CTA VALUES: - LinkedIn: LEARN_MORE, REGISTER, APPLY_NOW, DOWNLOAD, JOIN, SIGN_UP, GET_QUOTE, ATTEND, REQUEST_DEMO, SUBSCRIBE. (UNLOCK_FULL_DOCUMENT is DOCUMENT-only — use create_update_document_ad, not this tool.) - Facebook/Instagram: APPLY_NOW, DOWNLOAD, GET_QUOTE, LEARN_MORE, SIGN_UP, SUBSCRIBE. (SCREAMING_SNAKE form only; the platform supports a strict subset of Meta's native catalog. Out-of-set values like BOOK_NOW / GET_STARTED are rejected.) - Reddit: Apply Now, Contact Us, Download, Get a Quote, Learn More, Play Now, Sign Up, View More, Watch Now, Book Now, Listen Now, Read More, Subscribe. See `create_update_video_ad` for video-creative ads (different libraryId source + stricter URL format).
    Connector
    Destructive
    API key
  • Replaces the cover (main) image of a generated article with an image stored on the website's media host: either downloaded from a public URL (image_url) or uploaded from the user's machine (upload_id, see create_image_upload). Pass alt_text to describe the new image at the same time (recommended). Pass locale to change the cover of a translation only. Free. Editing an article that is already published (or published in draft) marks it Out of Sync until it is synced with sync_article_to_cms or published again. Inline images inside the body are part of the markdown: host them with upload_article_image and edit the body with update_article_content. Pass website_id when the account has several websites (see get_account).
    ConnectorOAuth
  • Generate a standalone image from a text prompt, or edit/restyle images supplied as references. **When to use:** Use this tool based on the requested output, not assumed model limitations such as an inability to render text. If the user explicitly asks for an image, picture, photo, illustration, artwork, sticker, icon, graphic, or 2d vector, use this tool. The explicitly named output takes priority over design-like content within it, including text, statistics, labels, callouts, or an infographic-like composition. For example, "create an image about coffee with bold stat callouts" uses generate-image. Use create-design when the requested output itself is an editable Canva page or layout, such as "create an infographic". "Create an image of an infographic" still uses generate-image. The verb "create" or "design" alone does not make the request a Canva design. **When not to use:** Do not use when the requested output itself is a designed page or layout, such as an infographic, poster, wallpaper, flyer, presentation, or social media post; use create-design. To add, position, resize, or replace content inside an existing design, use the design-editing workflow instead; the image is source media and the design page is the edit target. **Image references and attachments:** For image-to-image generation or editing, add one MEDIA entry to imageReferences for every reference image. Pass the ID of an existing Canva MEDIA content reference directly. Before using a user-provided attachment as a reference, upload it to Canva: call create-upload-url, then send the attachment's raw bytes to the returned upload URL exactly as instructed. Each upload URL is single-use, so call create-upload-url separately for every attachment. Wait for every upload to succeed, then use the mediaId from each upload response as a separate MEDIA entry in imageReferences. For example, after uploading two attachments (replace the illustrative IDs with their returned mediaIds): ```json { "prompt": "Restyle both reference images as watercolor illustrations", "imageReferences": [ {"type": "MEDIA", "id": "MAAAAAAAAAAA"}, {"type": "MEDIA", "id": "MBBBBBBBBBBB"} ] } ``` Use exactly one imageReferences entry per successfully uploaded attachment. Never combine multiple media IDs into one string or object, and never put an upload URL in imageReferences. Do not pass assistant-hosted attachment URLs directly to this tool. If any attachment cannot be uploaded, do not silently omit it; explain the failure to the user. Omit imageReferences for pure text-to-image generation. **Result:** This call returns only a jobId, not the finished image. When this tool's UI widget is shown, the widget polls get-generate-image-job itself and displays the image when ready - do not poll it yourself. Only when no widget is shown, pass the jobId to get-generate-image-job and keep checking until the job succeeds or fails.
    ConnectorOAuth
  • Patch one node (several: patch_site_bulk, one atomic write). classNamePatch merges Tailwind classes; propsPatch sets other props; typePatch swaps the component type. propsPatch deep-merges seo/root/background/overflow/design/inject/relation/richText/theme/company, but strings and arrays REPLACE (get_site_node returns the current value); unsetProps ["seo.jsonLd"] drops a branch. Image: src shadows content, so a new image needs both. ROOT inject.head/footer holds third-party code, not page content. Children are not accepted. More: get_style_reference({ topic: "editing" }).
    Connector
    Destructive
    API key
  • Generate a standalone image from a text prompt, or edit/restyle images supplied as references. **When to use:** Use this tool based on the requested output, not assumed model limitations such as an inability to render text. If the user explicitly asks for an image, picture, photo, illustration, artwork, sticker, icon, graphic, or 2d vector, use this tool. The explicitly named output takes priority over design-like content within it, including text, statistics, labels, callouts, or an infographic-like composition. For example, "create an image about coffee with bold stat callouts" uses generate-image. Use create-design when the requested output itself is an editable Canva page or layout, such as "create an infographic". "Create an image of an infographic" still uses generate-image. The verb "create" or "design" alone does not make the request a Canva design. **When not to use:** Do not use when the requested output itself is a designed page or layout, such as an infographic, poster, wallpaper, flyer, presentation, or social media post; use create-design. To add, position, resize, or replace content inside an existing design, use the design-editing workflow instead; the image is source media and the design page is the edit target. **Image references and attachments:** For image-to-image generation or editing, add one MEDIA entry to imageReferences for every reference image. Pass the ID of an existing Canva MEDIA content reference directly. Before using a user-provided attachment as a reference, upload it to Canva: call create-upload-url, then send the attachment's raw bytes to the returned upload URL exactly as instructed. Each upload URL is single-use, so call create-upload-url separately for every attachment. Wait for every upload to succeed, then use the mediaId from each upload response as a separate MEDIA entry in imageReferences. For example, after uploading two attachments (replace the illustrative IDs with their returned mediaIds): ```json { "prompt": "Restyle both reference images as watercolor illustrations", "imageReferences": [ {"type": "MEDIA", "id": "MAAAAAAAAAAA"}, {"type": "MEDIA", "id": "MBBBBBBBBBBB"} ] } ``` Use exactly one imageReferences entry per successfully uploaded attachment. Never combine multiple media IDs into one string or object, and never put an upload URL in imageReferences. Do not pass assistant-hosted attachment URLs directly to this tool. If any attachment cannot be uploaded, do not silently omit it; explain the failure to the user. Omit imageReferences for pure text-to-image generation. **Result:** This call returns only a jobId, not the finished image. When this tool's UI widget is shown, the widget polls get-generate-image-job itself and displays the image when ready - do not poll it yourself. Only when no widget is shown, pass the jobId to get-generate-image-job and keep checking until the job succeeds or fails.
    ConnectorOAuth
  • Runs the full art-direction review of a project: collisions (frame by frame for films), angles, floating versus resting devices, text overlap, cropping and contrast, composition and color. Use it while building to see every finding, including warnings edit_scene saves anyway; use finish once at the end for the final check, and render_preview to look at the result. Read-only. Every finding has a severity and a fix with ready-to-send edit_scene ops. Returns the findings, errors first, and whether the scene passes.
    ConnectorAPI key
  • Apply a free-text AI edit to a flexible creative's BACKGROUND image and return the edited image URL. Instruction-based image-to-image edit (like edit_brand_creative), scoped to the background so the crisp editable text/logo layers are never touched. It edits a flat image the same way, such as a library creative with its text baked in. WARNING: on a flat image the baked-in text is repainted with the rest and can come back altered or unreadable; to change a layered creative's text, change its text layers instead. USE FOR: "remove the glare", "make the sky warmer", "clean up the left side", "swap the desk for a laptop". OUTPUT: the URL of a NEW image, stored temporarily outside the creatives library. Nothing is edited in place: the source image, and the library creative and id it came from, stay exactly as they were. The editor swaps the new image in as a flexible creative's background. To keep an edit of a library image, upload the new URL with upload_image_creative, which gives it a NEW library id.
    ConnectorAPI key
  • Place an existing LIBRARY asset onto a video's timeline by id (deterministic — use this instead of asking instruct to "add a clip"). Track is inferred from the asset kind when omitted: video AND image → video track (an image is shown as a still for duration_sec, default 1s, like a slideshow frame), audio → voice track. Optional position = 0-based index on that track (default appends to the end). Returns clip_id.
    ConnectorAPI key
  • Render a preset with the user's text and return the image (shown inline). Free, no API key; the preview carries a small betterimage.io watermark and does not touch any quota. Use it to show the user what their card will look like before they commit. For a clean image: save_template + render_card on a paid API plan, or the one-off clean download in the editor.
    ConnectorNo auth
  • Replace exactly ONE table cell, addressed by 0-indexed row and column (row 0 is the header by convention). Works on the table's CURRENT state inside a transaction, so it cannot clobber concurrent edits and needs no revision token — prefer it over element_update when editing a cell of a whiteboard a human may also be editing. Cell content is CommonMark Markdown.
    Connector
    Destructive
    OAuth