Skip to main content
Glama
607,312 tools. Updated 2026-09-24 16:25

"A platform for locating illustration images for website design" matching MCP tools:

  • Upload a base64-encoded file to a site's container. Use this for binary files (images, archives, fonts, etc.). For text files, prefer write_file(). Requires: API key with write scope. Args: slug: Site identifier path: Relative path including filename (e.g. "images/logo.png") content_b64: Base64-encoded file content Returns: {"success": true, "path": "images/logo.png", "size": 45678} Errors: VALIDATION_ERROR: Invalid base64 encoding FORBIDDEN: Protected system path
    ConnectorNo auth
  • Get the Designesy Design Review framework — an 8-dimension rubric (Purpose, Clarity, Context, Inclusion, System coherence, Durability, Delight, Responsibility) plus the agent prompt, output format, and verification checklist for a qualitative design critique. Use this when you want a structured rubric to critique a design holistically, rather than a numeric compliance score. When NOT to use: for a deterministic numeric score, use designesy_score; this tool gives you a rubric, not a number. Read-only — returns the rubric + prompt. The calling agent performs the actual critique (this tool does not evaluate the design for you). Returns JSON: { rubric, dimensions[8], agent_prompt, output_format, verification_checklist }. Pass artifact/purpose/context/rules to get a pre-filled critique prompt; omit all four to get the blank framework.
    ConnectorNo auth
  • LEGACY-ONLY — DO NOT CALL WHEN create-design IS AVAILABLE. If create-design is in the tool list, you MUST NOT call this tool. Call create-design instead. All instructions below apply only when create-design is absent from the tool list. A failed create-design call does not make it unavailable. Generate professionally designed content in Canva including visual designs (posters, social media posts, presentations, flyers) and text-based documents (memos, articles, newsletters, proposals, reports, business plans, requirements documents). Each extra slide adds significant latency (e.g. 15 slides can take 3x longer than 5). Keep to 1-5 slides unless the user explicitly requests more. Use this tool when the user asks you to write, create, generate, or draft ANY document or visual design. Examples: - "Write a memo..." → use this tool to create a Canva Doc - "Generate a business proposal..." → use this tool to create a Canva Doc - "Draft a product overview..." → use this tool to create a Canva Doc DO NOT use this tool for fixed-format visual designs when prepare-design-generation is available. Do NOT use this tool when the user just wants advice, explanations, or information. DO NOT use this tool when the user's message contains a URL and their intent is to create a design FROM that URL — use import-design-from-url instead. Use the 'query' parameter to tell AI what you want to create. The tool doesn't have context of previous requests. ALWAYS include details from previous queries for each iteration. The tool provides best results with detailed context. ALWAYS look up the chat history and provide as much context as possible in the 'query' parameter. Ask for more details when the tool returns this error message 'Common queries will not be generated'. The generated designs are design candidates for users to select from. Ask for a preferred design and use 'create-design-from-candidate' tool to add the design to users' account. The IDs in the URLs are not design IDs. Do not use them to get design or design content. When using the 'asset_ids' parameter, assets are inserted in the order provided. For small designs with few image slots, only supply the images the user wants. For multi-page designs like presentations, supply images in the order of the slides. The tool will return a list of generated design candidates, including a candidate ID, preview thumbnail and url. Before editing, exporting, or resizing a generated design, follow these steps: 1. call 'create-design-from-candidate' tool with 'job_id' and 'candidate_id' of the selected design 2. call other tools with 'design_id' in the response For presentations, target 1-5 slides by default (length: "short"). Format the query string with these sections in order (use the headers exactly): 1. **Presentation Brief** Include: * **Title** (working title for the deck) * **Topic / Scope** (1–2 lines; include definitions if terms are uncommon) * **Key Messages** (3–5 crisp takeaways) * **Constraints & Assumptions** (timebox, brand, data limits, languages, etc.) * **Style Guide** (tone, color palette, typography hints, imagery style) 2. **Narrative Arc** A one-paragraph outline of the story flow (e.g., Hook → Problem → Insight → Solution → Proof → Plan → CTA). Keep transitions explicit. 3. **Slide Plan** Provide numbered slides with **EXACT titles** and detailed content. For each slide, include all of the following subsections in this order (use the labels exactly): * **Slide {N} — "{Exact Title}"** * **Goal:** one sentence describing the purpose of the slide. * **Bullets (3–6):** short, parallel phrasing; facts, examples, or specifics (avoid vague verbs). * **Visuals:** explicit recommendation (e.g., "Clustered bar chart of X by Y (2022–2025)", "Swimlane diagram", "2×2 matrix", "Full-bleed photo of <subject>"). * **Data/Inputs:** concrete values, sources, or placeholders to be filled (if unknown, propose realistic ranges or example figures). * **Speaker Notes (2–4 sentences):** narrative details, definitions, and transitions. * **Asset Hint (optional):** reference to an asset by descriptive name or index if assets exist (e.g., "Use Asset #3: 'logo_dark.svg' as corner mark"). * **Transition:** one sentence that logically leads into the next slide. > Ensure the Slide Plan forms a **cohesive story** (each slide's Goal and Transition should support the Narrative Arc). **Quality checklist (the model must self-check before finalizing)** * Titles are unique, concise (≤ 65 characters), and action-or insight-oriented. * Each slide has 3–6 bullets; no paragraph walls; numbers are specific where possible. * Visuals are concrete (chart/diagram names + variables/timeframes); tables are used only when necessary. * Terminology is defined once and used consistently; acronyms expanded on first use. * Transitions form an intelligible narrative; the story arc is obvious from titles alone. * No placeholders like "[TBD]" or "[insert]". If data is unknown, propose realistic figures and label as "example values". * All required headers and subsections are present, in the exact order above.
    ConnectorOAuth
  • Use this when the user wants Lemonvite's design engine to create the invitation artwork — because this assistant cannot produce images itself, or because the user asked for a Lemonvite design. Describe the look in design_brief (theme, colours, mood, motifs); the event date, time and venue are lettered onto the design automatically unless include_event_details is false. A reference_image from the conversation guides the engine's style. Each call spends one of the host's design generations (new accounts start with 5; every purchased account credit adds 5) and REPLACES the current artwork (the previous design stays in the event's design history on the website), so confirm with the user before calling it. If this assistant already made an image in the conversation, attach it with invitation_image on lemonvite_update_invitation instead. Never call it merely because designs or themes are being discussed.
    Connector
    Destructive
    OAuth
  • Use this when the user wants a change to the invitation's CURRENT artwork rather than a new design — "make the sky a sunset", "change the balloons to gold", "remove the banner at the bottom". Lemonvite's design engine applies the request to the existing artwork and leaves everything else as it is. Put the user's request in edit_request in their own words; do not rewrite it into a design brief. Each call spends one of the host's design generations (same as lemonvite_generate_design) and REPLACES the current artwork (the previous version stays in the event's design history on the website), so confirm with the user before calling it. The invitation must already have artwork that is not a GIF and has no text or image layers added in the web editor (those are edited on the website); to create artwork from scratch use lemonvite_generate_design, and to attach an image this assistant made use invitation_image on lemonvite_update_invitation.
    Connector
    Destructive
    OAuth
  • List the user's saved Sensefold items, newest first. Use for recency questions ('what did I save this week') or date-range browsing, optionally filtered by provenance. The keyword filter is literal and matches the FULL text of items (strict AND, no semantic matching); the returned topSnippet shows the document opening, not the match location - for topic lookup or locating matches use search_hub instead. Provide start and end together as an ISO date range.
    ConnectorOAuth

Matching MCP Servers

  • A
    license
    B
    quality
    C
    maintenance
    Provides tools to fetch IIIF manifests and retrieve specific image regions or scaled images for analysis. This server enables detailed interaction with International Image Interoperability Framework resources, supporting tasks like image description and transcription.
    3
    6
    MIT

Matching MCP Connectors

  • Put a REAL photo or illustration on the site by describing it — no image bytes to send. Give a vivid `prompt` and a `public/` `path` (e.g. public/hero.jpg); Kleap generates it with Cloudflare FLUX.2 and stores it as a proper binary asset, exactly like write_files with encoding:"base64" but with NO base64 to transmit (a real image's base64 is too big for a model to emit reliably — this is the ONLY dependable way to add a generated picture). Use it for hero photos, section illustrations, onboarding images, OG images, or to replace a broken/ugly image. Square 768×768 by default; pass width/height (256–1440) for other ratios; hd:true uses the premium model (sharper, slower). ⚠️ To REPLACE an existing image, generate to a NEW filename (e.g. hero-2.jpg) and point the markup at it — overwriting the same path can be served stale from CDN/R2 cache. After it returns, call publish_app to deploy it live.
    Connector
    Destructive
    OAuth
  • Put a REAL photo or illustration on the site by describing it — no image bytes to send. Give a vivid `prompt` and a `public/` `path` (e.g. public/hero.jpg); Kleap generates it with Cloudflare FLUX.2 and stores it as a proper binary asset, exactly like write_files with encoding:"base64" but with NO base64 to transmit (a real image's base64 is too big for a model to emit reliably — this is the ONLY dependable way to add a generated picture). Use it for hero photos, section illustrations, onboarding images, OG images, or to replace a broken/ugly image. Square 768×768 by default; pass width/height (256–1440) for other ratios; hd:true uses the premium model (sharper, slower). ⚠️ To REPLACE an existing image, generate to a NEW filename (e.g. hero-2.jpg) and point the markup at it — overwriting the same path can be served stale from CDN/R2 cache. After it returns, call publish_app to deploy it live.
    Connector
    Destructive
    No auth
  • Starts durable AI generation. Requires ai:generate AND posts:write. Quote first; pass maxCredits and a stable idempotencyKey. Ask before spending unless already delegated. kind=carousel creates 2–10 AI-designed slides, words set in one design system (optional design: a style id, or auto; a style reference image is followed), for 2+10*count credits. kind=outline uses text and optional own photos for 2 credits. cover/illustration creates one image for 10; illustration on a designed carousel redesigns that slide in its saved style. References must belong to this profile. For illustration supply projectId and slideId. Failures refund once and retain completed material; the same key never charges twice. Poll studio_job. A ready result with applied=false is saved separately because newer user edits were retained. Export and publishing are separate actions.
    ConnectorOAuth
  • Applies the buyer's field values (and logo, if the template needs one) to a template, fits the text to its printable area, renders both sides as preview images, and returns a design token. Before creating a guest design, explain: unpaid, unsaved drafts expire 30 days after the design request starts. Verified saving keeps the draft; checkout and unresolved purchase artwork is protected. Seven-day token expiry is separate from deletion. Call list_business_card_templates first and collect a non-blank value for every field it lists, keyed by `attribute`; a blank or missing value fails with missing_required_fields. Pass a public https PNG or JPEG URL as `logoUrl` only when the template has an imageUrl field; omit it otherwise. Returns designToken, designId, templateId, revisionId, expiresAt (7 days out), previews (a 300-second signed URL plus width/height for each side; the pixels are also attached as image content blocks), and any text_shrunk warnings from fitting a value to its layer. Present both attached proof images directly, or provide labeled front/back links to the exact preview URLs if the host cannot display them. Do not require computer setup, downloads or re-uploading for proof review. Refresh expired links rather than creating another design. An accountOwned result identifies a verified customer, not an integration key. Results also include a private saveUrl for browser ownership verification; offer it only when the buyer wants to save. Saving requires sign-in; subsequent checkout of that design requires an AI connection authorized by the same InkFE account. If customer OAuth is unavailable, complete checkout before saving. Use a stable requestId; retry the same request after a timeout. Revise with revise_business_card_design and refresh expired links with refresh_design_proof. Show both previews and warnings, get exact print options and get_quote, then record explicit customer approval with approve_design_proof before create_checkout. Fails with unknown_template, missing_required_fields {attributes}, unknown_field {attribute}, value_too_long {attribute}, unsupported_characters {attribute}, logo_required, logo_fetch_failed, logo_unsupported, rate_limited {retryAfterSeconds} (too many designs from this API key in a short time), or connector_unavailable.
    ConnectorNo auth
  • Use this when the user needs an existing stock photo, illustration, background, wallpaper or texture — for a website, slide, blog post, app, video or design — rather than a newly generated image. Searches BudgetPixel's free image library: AI-generated images, each reviewed before listing (no real people, logos or text), licensed CC BY 4.0 for commercial use. Works on EVERY plan, including Free. Costs 10 credits per search, charged even when nothing matches, so write one specific query rather than many vague ones. It never generates: if nothing fits, say so (on a paid plan, generate_image can make one). LICENCE: wherever an image is used, include its credit line exactly as returned (the `attribution` text; `attribution_html` for web pages). Download from the returned URLs rather than hotlinking them in production.
    ConnectorNo auth
  • Free. Mints a public no-login link that anyone can open, including someone with no account. THIS IS THE TOOL FOR 'send me the designs' or 'I want to forward this to my client'. Never hand over a dashboard or app link for that: the recipient hits a login wall and sees nothing. Pass concept_id to share a DESIGN, which comes back as one page with every band stacked in order, so it reads as a whole design rather than a folder of separate images, and it prints to PDF from the browser if they want a file. Pass build_run_id to share a finished BUILT page. One or the other, not both. export_page is the one for a user who wants the source files instead. For a build, minting a new link revokes the previous one, so reuse the link rather than calling this repeatedly. A design link is stable and safe to call again.
    ConnectorNo auth
  • Upload images directly to Metadata platform library to create image creatives. Downloads images from provided URLs and uploads them to the platform. REQUIRED STEP IN AD CREATION WORKFLOW: This tool MUST be called between generate_brand_creative and create_update_image_ad. **WORKFLOW INTEGRATION:** This tool is part of the ad creation workflow and should be used: 1. BEFORE creating ads with create_update_image_ad (which requires imageLibraryId/creativeID) 2. IN COMBINATION with generate_brand_creative to create AI-generated images first, then upload them 3. When you need to upload existing images from external sources **COMMON WORKFLOWS:** - Upload existing images → Get imageLibraryId → Use in create_update_image_ad - Generate image with generate_brand_creative → Download generated image → Upload with this tool → Use in create_update_image_ad - Batch upload multiple creative assets for campaign preparation **IMPORTANT:** The returned image ID (imageLibraryId/creativeID) is REQUIRED when creating ads. Every ad needs a creative asset, so you must upload images first before calling create_update_image_ad. REQUIRED PARAMETERS: - images: Array of image URLs to upload IMAGE REQUIREMENTS: - URLs must be valid and publicly accessible - Supported formats: PNG, JPG, JPEG, GIF, WebP, and others - Images will be downloaded and then uploaded to platform - Filenames with spaces will have spaces replaced with underscores EXAMPLES: Single Image: upload_image([ "https://my-bucket.s3.amazonaws.com/images/sample-image.png" ]) Multiple Images: upload_image([ "https://my-bucket.s3.amazonaws.com/images/logo.png", "https://example-assets.s3.us-west-2.amazonaws.com/photos/banner.jpg", "https://content-bucket.s3.eu-west-1.amazonaws.com/uploads/hero image.webp" ]) RESPONSE FORMAT: Returns array of objects for each image: [ { "url": "https://original-url.com/image.png", "name": "image.png", "id": 12345, "success": true }, { "url": "https://failed-url.com/bad.png", "name": "bad.png", "id": null, "success": false, "error": "Download failed: Connection timeout" } ] ERROR HANDLING: - If one upload fails, others will continue - Each result includes success status - Failed uploads include error message - Successful uploads include platform image ID USE CASES: - Upload creative assets before creating ads - Import images from external sources - Batch upload multiple campaign images - Migrate images from other platforms
    ConnectorAPI key
  • Admin only. Latest teasers plus already-generated images. Use ticker for all current items on a symbol, type for one content_type across symbols, or since for the worker poll. Then call marketing_graphics(content_id) for live formats. Reuse items[].images[] when the option you want is already rendered. Args: since: ISO timestamptz — inbox newer than this ticker: Current items for this symbol type: allowlisted content_type or research_drop limit: 1–200 (default 50)
    ConnectorNo auth
  • List hosted images owned by the caller, with optional filters. ``source`` filters by upload origin: ``"upload"`` for directly uploaded images, ``"generated"`` for images created via the image generation tools. Omit to return all sources. ``visibility`` filters by access level: ``"public"`` or ``"private"``. Omit to return both. Pagination: pass ``next_cursor`` from a previous response as ``cursor`` to retrieve the next page. Returns ``{items: [...], next_cursor: str | null}``.
    ConnectorOAuth
  • Get an indicative forward FX rate for a currency pair at a specific tenor. Rates are derived from interest rate differentials, rounded, and for illustration purposes only — not for execution. Returns: forwardRate (indicative mid outright = spot + forward points), forwardPoints (in pips, e.g. -3.1 means the forward rate is 3.1 pips below spot), spotMid (indicative spot mid rate for comparison), settlementDate (the resolved business date for the tenor). Negative forward points mean the forward rate is below spot; positive means above. Example: base=GBP, quote=USD, tenor=3M returns the 3-month GBPUSD indicative forward rate.
    ConnectorNo auth
  • Download the external images a site references (e.g. from the old site it was rebuilt from), store them on this VibeDeploy site under assets/img/, and rewrite the HTML <img> references to local paths so the site no longer depends on the original. Call this once AFTER deploying a site rebuilt with the Website Converter. Auto-detects the external image URLs from the site's own HTML; downloads are SSRF-guarded, size/count/time capped, and applied atomically (patch mode). Images already hosted on vibedeploy.be are skipped.
    Connector
    Destructive
    No auth
  • Store a Roastify design JSON in your library (a commit in your GitHub repo). The browser courier reads a saved product's design and calls this to shuttle it up. On the way in, the design's fonts[] is REPAIRED — Roastify's own schema migration leaves a lossy fonts[] (a dropped family, a bad weight), so a stashed design would otherwise carry that damage; the repair rebuilds fonts[] from the families the text actually uses so it renders in its intended fonts. Only the load list changes; the text and its fonts are untouched. Inline images are de-duplicated. This does NOT touch Roastify.
    ConnectorNo auth
  • Generate a video from a text prompt, optionally driven by reference images (image-to-video, first/last frame). This is asynchronous: it returns a task_id you poll with get_task(platform='video'). Generation usually takes 30-180 seconds. Pass wait_seconds to have the server poll for you. Video generation is the most expensive capability here — confirm the prompt with the user before spending on retries.
    ConnectorNo auth
  • Manage AND report on Meta, Google, TikTok, Reddit, X, LinkedIn, Microsoft, and ChatGPT Ads. Reporting & analytics — campaign performance, results, spend, ROAS, impressions, clicks, conversions, CPC/CPA: use entity:"results" (Google also supports action:"placements" and "search-terms"). Answers "how are my ads doing" / "what's my spend" / "show campaign performance". Management — connect project accounts and create, edit, or publish supported ad resources. ChatGPT Ads supports normalized account assignment; its advertiser operations use entity:"platform-api-request". Coverage differs per platform — the exact entities, actions, and params for each platform are documented under adkit_help({ path: "manage <platform>" }). Most mutations create drafts by default; publish:true sends changes live and requires explicit user approval. Use AdKit field names in params (not raw platform fields); pass full request bodies as top-level data. Use platformOverrides for raw fields on supported resources. Unsupported native platform resources and workflows are reachable via the raw platform API: entity:"platform-api-request" action:"mutate" (project opt-in); adkit_feedback is the channel for reporting these AdKit gaps. File uploads: entity:"media" action:"request_upload_url" → PUT the bytes → reference the returned uploadId. For creatives/variants/images inside an ad set, use entity:"ads".
    Connector
    Destructive
    API key
  • Convenience tool: generates a post with AI (postType 'CAROUSEL' by default, 'IMAGE' for a single-image post, or 'VIDEO' for a video), waits for it to finish, then creates a scheduled post that attaches the resulting design. May take 30-180 seconds (longer for a rendered video). templateId, brandId, presetId, and responseType are optional if saved via postnitro_set_defaults. The design that gets attached is the completed carousel's design ID (result.designId from the generation output) — NOT the generation job ID. You normally don't set designId; it's resolved automatically. Pass designId only to attach a pre-existing design instead of the freshly generated one. If scheduling fails after the carousel is already generated (e.g. an invalid platform-settings combination), this tool returns the generated designId so you can fix the inputs and retry with postnitro_create_scheduled_post — WITHOUT regenerating (which would burn credits again). Provide the scheduling fields (status, scheduledAt, selectedAccounts, captions, and any required per-platform settings) just as you would for postnitro_create_scheduled_post.
    ConnectorAPI key