Skip to main content
Glama
782,755 tools. Updated 2026-11-14 19:48

"Generating an image for a cursor design or customization" matching MCP tools:

  • Attach an image to an existing product by giving Partle a public URL to download the image from. Authenticated. OAuth (scope `products:write`) preferred; `api_key` fallback. **When to use this tool**: the image is already hosted at a public URL (a scraped product page, an Imgur link, a CDN URL the user provided). Partle's server fetches it and stores it. **When NOT to use this tool**: you have local image bytes (a file the user attached, or bytes you generated/downloaded in your sandbox). Sending those bytes through a tool argument blows past conversation context limits — phone-photo-sized payloads can be 6+ MB of base64. Instead, in your code-execution sandbox, POST the file directly to the HTTP endpoint with multipart encoding: requests.post( "https://partle.rubenayla.xyz/v1/external/products/{product_id}/images", files={"file": open("/path/to/photo.jpg", "rb")}, headers={"X-API-Key": "pk_..."}, ) Or, to create the listing and attach an image in one HTTP request: requests.post( "https://partle.rubenayla.xyz/v1/external/products", data={"metadata": json.dumps({"name": ..., "price": ...})}, files={"image": open("/path/to/photo.jpg", "rb")}, headers={"X-API-Key": "pk_..."}, ) Args: product_id: ID of the product to attach the image to. image_url: Publicly fetchable URL of the image. Server fetches it and stores it. api_key: Optional API key (`pk_*`, generate at /account). Used when there is no OAuth token, and also when the OAuth token lacks the required scope — an explicitly passed key overrides an ambient token that is scoped too narrowly. An invalid or revoked token still fails regardless. Omit when using OAuth. Returns: The created `ProductImage` record with its `id` (use for deletion) and storage path, or ``{"error": ...}`` on validation/auth failure.
    ConnectorNo auth
  • Attach an image to an existing product by giving Partle a public URL to download the image from. Authenticated. OAuth (scope `products:write`) preferred; `api_key` fallback. **When to use this tool**: the image is already hosted at a public URL (a scraped product page, an Imgur link, a CDN URL the user provided). Partle's server fetches it and stores it. **When NOT to use this tool**: you have local image bytes (a file the user attached, or bytes you generated/downloaded in your sandbox). Sending those bytes through a tool argument blows past conversation context limits — phone-photo-sized payloads can be 6+ MB of base64. Instead, in your code-execution sandbox, POST the file directly to the HTTP endpoint with multipart encoding: requests.post( "https://partle.rubenayla.xyz/v1/external/products/{product_id}/images", files={"file": open("/path/to/photo.jpg", "rb")}, headers={"X-API-Key": "pk_..."}, ) Or, to create the listing and attach an image in one HTTP request: requests.post( "https://partle.rubenayla.xyz/v1/external/products", data={"metadata": json.dumps({"name": ..., "price": ...})}, files={"image": open("/path/to/photo.jpg", "rb")}, headers={"X-API-Key": "pk_..."}, ) Args: product_id: ID of the product to attach the image to. image_url: Publicly fetchable URL of the image. Server fetches it and stores it. api_key: Optional API key (`pk_*`, generate at /account). Used when there is no OAuth token, and also when the OAuth token lacks the required scope — an explicitly passed key overrides an ambient token that is scoped too narrowly. An invalid or revoked token still fails regardless. Omit when using OAuth. Returns: The created `ProductImage` record with its `id` (use for deletion) and storage path, or ``{"error": ...}`` on validation/auth failure.
    ConnectorNo auth
  • Check the build status of an EXISTING artifact (from artifact-create). Read-only. Generation is asynchronous, so this is how you find out it finished. Call it with { sessionId, wait: true } and it WAITS for you: the call returns as soon as status is 'ready' or 'failed', or after about 45 seconds still 'generating'. Then, you can call it again. This tool is meant to be called right after artifact-create, before replying to the user, and keep getting called until status is no longer 'generating'. ONLY when you want an instant snapshot, this tool can be called without wait (or false); the idea is to never spin on wait: false. Requires sessionId — the id returned by artifact-create (or the last path segment of an artifact URL like https://app.agentgrid.io/artifacts/<sessionId> or https://dev.animaapp.com/chat/<sessionId>). **Returns:** { success, sessionId, status: 'generating' | 'ready' | 'failed', progress (0–100, while generating), name, artifactUrl (generating/ready only), playgroundUrl (app and knowledge artifacts only, generating/ready only), previewUrl (app, knowledge and markdown artifacts only, generating/ready only), error (when failed), nextStep (when a wait returned still generating) }
    ConnectorOAuth
  • Everything created, updated or deleted since a cursor (from the workspace digest/map or a previous call) or an ISO time — pages, databases, rows and deletions, oldest first. Omit both to bootstrap. Always keep nextCursor for the next call: this is how to catch up instead of re-reading the tree. An entry stamped in the cursor's own second may appear once more — dedupe by id.
    ConnectorOAuth
  • Remove the background from a single image, returning the subject isolated on a transparent background. Supply the source image (URL or base64); optionally set crop to trim the result to the content, and creative_edit (default true) for higher-quality output that may not match the input pixel-for-pixel - set it false when the subject must stay pixel-identical, e.g. an existing sprite you will animate. The job result is a single image result with a url (not an array). The image is uploaded and validated, and an image larger than 15MB is rejected with HTTP 400. Credits are held when the job is accepted and refunded if it fails or is cancelled. Use removeBackground for this dedicated cutout task; editImage can also remove backgrounds via a prompt but is better for broader edits, while createImage and generateWithStyle produce new images rather than process an existing one. Pass an optional request_id to tag the result so you can retrieve it later via listGenerations (type image). Async generation job: returns `{id, status}` - poll `getApiJob` (job and credit contract: see the server instructions). Credits: This endpoint consumes 0.5 credits per result.
    ConnectorNo auth
  • Generate a CDN-cached image variant for a file stored in UploadKit Cloud. Requires a paid plan, a live API key in the MCP process environment as UPLOADKIT_API_KEY, and an image key returned by UploadKit. BYOS files are not supported. Use signed delivery for private or temporary content and public delivery for stable URLs in websites, apps, srcset, CSS, or stored application data. Explicit formats consume 1 transformation unit; auto consumes 3 units. When to use: after an image is uploaded and the user wants a resized, cropped, optimized, or converted delivery URL. The returned URL is safe to send to browsers; the API key remains server-side. Returns: JSON { url, expiresAt, delivery, transform, usage }. Has the side effect of reserving monthly transformation units for a new unique variant.
    ConnectorNo auth

Matching MCP Servers

  • A
    license
    Not graded
    quality
    B
    maintenance
    Provides local MCP tools for Cursor Agent to manage a live HTML artboard preview, including opening the artboard and revealing the design folder.
    MIT
  • A
    license
    B
    quality
    D
    maintenance
    An open-source MCP server that automates project customization by analyzing your codebase and generating AI-ready configuration files based on industry best practices.
    4
    11 npm
    MIT

Matching MCP Connectors

  • Crypto scam checks (tokens, sites, wallets), chain reads, web page to Markdown, email checks.

  • A design harness for AI coding agents: design systems, design principles, icons and UI review.

  • 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
  • Upload files to Clueso. Pick a mode by client and where the file lives: - `files` (ChatGPT only): the user's attachments, filled by ChatGPT; pass them instead of asking for a re-upload. - `file_name` (default for agents/scripts: Claude Code, Cursor, Claude Desktop): returns an upload URL on Clueso's own domain (not S3; works where cloud storage is blocked) + a ready curl that PUTs one local file; you or the user run it. - `file_names` (without request_hosted_upload): the same for many files, one token + URL each and ONE curl for all; run it from the folder the names are relative to (edit_animation upload_ids: the page site's root, e.g. 'index.html', 'js/scene.js'). - `file_url`: a public https URL; the server fetches it; mcp_upload_id returned at once. - `request_hosted_upload` (only when a human should pick files in a browser, or no shell/PUT): one upload_token + upload_page link covering every file dropped; the user drops files and clicks Done; then check_uploads(upload_token). Call once for all files. The mcp_upload_id (`mup_…`) goes to: - add_elements / update_elements: an image/video ON a clip (or a source swap) as `type_data.mcp_upload_id`; an animation's image slot inside `type_data.parameter_values` on update_elements only (stripped on add). - add_audio (project music track) · add_clips(kind='video') (video/audio → clip with transcription) · add_clips(kind='pptx') · add_article_media · analyze_audio · edit_animation (`files: [{path, upload_id}]` or `upload_ids` named by path, so big files never go inline). purpose: 'font' (any mode; display_name optional) adds it to this workspace's brand fonts once it arrives: the curl's reply (this reply for file_url/files, check_uploads for the hosted page) carries `font: {name, family, format, converted_from}` or `font_error`. TTF, OTF, WOFF, WOFF2 (WOFF/WOFF2 stored as TTF). Name = display_name, else the family without build dates/versions ("Cursor Mono 260406" → "Cursor Mono"); use it exactly in font_setting.font and pages. One face per name; an existing name is refused. Needs editor/admin and a plan with custom fonts.
    ConnectorNo auth
  • Quick pre-publish compliance gate before generating a listing. Fast, free scan for obvious red-line words and category risks. Returns a shallow pass/fail-style result, not a full audit. Use this as a cheap pre-check right before generation. Do NOT use it for a complete risk report - use compliance_scan for the deep knowledge-base audit. Read-only; requires an API key; no credits deducted. Args: text: listing copy (required). lang: zh or en (default en). category: optional category hint, e.g. electronics or apparel.
    ConnectorNo auth
  • Generate an executive-level strategic review report for an idea, synthesising all available validation data (market research, competition, SWOT, revenue model, VC score) into a concise go/no-go assessment with actionable recommendations. Requires prior validation data (run request_revalidation first if none exists). Returns cached report instantly if one exists, otherwise generates fresh analysis. Spends 2 credits only when generating new content. Not read-only; pass an ideaId you own.
    ConnectorNo auth
  • Repoint an existing image layer at a different uploaded asset — keeps the layer's id, position, size, animations, and styles; only the bitmap changes. The image must already be uploaded (upload_image for a web URL or a file attached in the chat; the editor for a file from the person's disk); pass the `filename` the upload returned, and its `name` as the label. Use this to swap a layer's image WITHOUT losing its keyframes — `remove_layer` + `add_image_layer` would mint a new id and drop the animations.
    Connector
    Destructive
    No auth
  • Fetch one page of an X account's timeline. identifier is a screen name, profile URL, or numeric id (auto-detected). mode picks the view: posts (default) is the account's own tweets, posts_and_replies includes their replies, highlights is the account's pinned highlights tab. include_retweets (default true) filters retweets out when false. Costs 4 credits per page; a cursor page is a NEW call priced the same way. Returns tweet summaries with engagement counts and a cursor for older tweets. Use this for 'what has X been posting', voice checks before outreach, or drafting replies in an account's register. For keyword search across all of X use x_search; for one specific tweet you already have, x_get_tweet.
    ConnectorOAuth
  • Adds, replaces, or removes hosted images on an existing Carryo website without replacing its HTML. Reusing a path replaces that image without consuming another image slot; new paths are subject to the website image allowance. Returns hosted-image metadata and URLs. New paths appear in the page when referenced by its HTML. Pass attached images through imageFiles. For one attachment, assets needs only its relative website path; Carryo matches the attachment automatically. For multiple attachments, use fileIndex (0 for the first imageFiles entry). Do not invent file IDs or ask for a public URL when attachment upload is available. Known fileId references and fetchable HTTP(S) sourceUrl imports also work. Carryo imports and hosts its own copy. Base64 image bytes and data URLs are unsupported.
    Connector
    Destructive
    No auth
  • Adds, replaces, or removes hosted images on an existing Carryo website without replacing its HTML. Reusing a path replaces that image without consuming another image slot; new paths are subject to the website image allowance. Returns hosted-image metadata and URLs. New paths appear in the page when referenced by its HTML. Pass attached images through imageFiles. For one attachment, assets needs only its relative website path; Carryo matches the attachment automatically. For multiple attachments, use fileIndex (0 for the first imageFiles entry). Do not invent file IDs or ask for a public URL when attachment upload is available. Known fileId references and fetchable HTTP(S) sourceUrl imports also work. Carryo imports and hosts its own copy. Base64 image bytes and data URLs are unsupported.
    Connector
    Destructive
    No auth
  • Lists saved versions of one template, newest first, with their content and rendering settings in data. Use this to inspect a template before updating it or select an older version for create_templated_image. Pass pagination.next_page_start as max_version to continue; stop when data is empty or the cursor is null.
    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
  • Only for anonymous callers when guest access is enabled. If this AI app is already connected through InkFE customer sign-in (OAuth) or a provisioned integration key, skip this tool and omit guestToken on design/checkout calls. Before guest designing, tell the customer: unpaid, unsaved guest drafts expire 30 days after the design request starts; save through verified sign-in to keep them. Checkout or unresolved purchase records are protected. Returns a private guestToken valid for seven days; token expiry is separate from draft retention. Pass it to create_business_card_design and create_checkout in this conversation. Claimed designs require an AI connection authorized by the same InkFE account. Starting a session does not place or pay for an order.
    ConnectorNo auth
  • Uploads a PUBLIC workspace image and returns its URL, to use as the `src` of an image block or inside a campaign's html. Source: base64 `content` or a public https `url`. Png, jpeg, gif or webp, max 5 MB. Do NOT confuse it with upload_attachment: an attachment travels inside the message and lives in private storage, while an image is downloaded by the mail client and therefore must be on a public URL. An attachment id used as `src` would give a broken image in every inbox.
    ConnectorAPI key
  • Put a picture behind an `assetKey`, so an `asset/image` node naming that key draws it instead of a placeholder. Send the PNG, JPEG, GIF or WebP bytes base64-encoded in `imageBase64`; the server stores them by content digest and pins {mediaType, contentDigest, source: uploaded} into the design's `assets` map under the key. This moves the design's revision, and the reply carries the new one to quote as `baseRevision`. Idempotent by content — the same bytes under the same key change nothing. Put the picture first, then insert the `asset/image` node with ui_builder_apply: the reducer refuses a key that is neither pinned in the design nor in the catalog's own registry. A pinned key whose bytes a lane cannot show renders as a visible placeholder, never as an error.
    ConnectorNo auth
  • Wait for the discussion to move past `afterSequence` and return it, rather than polling for it. Returns as soon as anybody — a designer in the browser or another agent — posts, resolves or deletes; returns a `timedOut` reply if nothing happens within `waitSeconds`, which you answer by calling again with the same cursor. This is how you hold a conversation about a design: post, wait, read, act.
    ConnectorNo auth