Skip to main content
Glama
605,004 tools. Updated 2026-09-23 22:08

"A tool for finding details about a photo using reverse image search" 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
  • Submit the user's ID photo for identity verification. Ways in: (a) image data you hold programmatically (e.g. the user sent the photo in this chat and your platform exposes its bytes) — pass front_base64 (and back_base64 for a license back; its barcode reads most accurately); (b) local (stdio) mode — pass file_path/back_file_path and the file is read from disk; (c) neither — you get a secure upload link to hand the user. Do NOT ask the user what kind of document it is or where it was issued — the type and country are detected automatically from the photo; only relay a question if the result says the type could not be determined. Returns the fields read off the document — SHOW THEM TO THE USER for confirmation before continuing — plus whatever is still missing. If the result says NO identity details could be read, the image did not read as an ID at all: never insist to the user that it was their ID. Supported: JPEG/PNG/WebP up to 12MB (convert HEIC or HEIF photos first).
    ConnectorNo auth
  • Plan a complete product-photo workflow: two image directions from one original product photo, user selection, then a short video. Returns exact account prices, prompts, budget guidance and output checks. Free: never starts a generation. Use before making product ads or product videos.
    ConnectorOAuth
  • Return a 360° profile of one active Evlek listing by UUID or listing number: title, description, price, location, size, amenities, features, cover image, per-photo captions/tags, and AI virtual-staging before/after pairs (always AI-disclosed). Contact details omitted. Use when: a UUID or listing number is already known. Don't use for: discovery — use search_listings first. The legacy `property_id` parameter name is still accepted as an alias of `propertyId`.
    ConnectorNo auth
  • Present a selection of tours or activities to the traveler as a visual list of cards (photo, rating, price, booking button) rendered inline in the conversation. Showing cards is the default way to present tours to the traveler: whenever your reply features specific tours (recommendations, a shortlist, availability results), call this tool alongside your text instead of waiting to be asked. Don't re-render a selection you already showed unless it changed. Call it AFTER finding tours with the search tools — it is a presentation tool, not a search tool. If you already checked availability with get_product_availability, you can pass each item's sessions (date and start time) and the cards will highlight them with booking links preselecting the date. For clients without UI support the same data is returned as structured text.
    ConnectorNo auth

Matching MCP Servers

  • A
    license
    B
    quality
    C
    maintenance
    Provides A-share (Chinese stock market) quantitative analysis through tools for stock screening, northbound capital flow tracking, dragon-tiger list analysis, margin trading, sector analysis, technical indicators, IPO info, and limit-up/down statistics using akshare data.
    11
    2
    MIT

Matching MCP Connectors

  • AI agents hire a human to observe, log or film on site. Typed results, feasibility before payment.

  • Permit-verified ADU rentals, pre-approved plans and cited ADU rules for LA, San Diego, SF and NYC.

  • Get a browser link the user opens to upload real image FILES to their site -- the reliable way to add actual photos, drawings, logos, or several images at once, and the tool to reach for the INSTANT a user pastes, attaches, uploads, or mentions an image they want used. Call this and hand the user the link ANY time they have an image -- they have no other way to know the upload option exists, so always surface it; do not try to ingest a pasted/attached image yourself. You cannot carry image bytes yourself -- a tool call is text you have to type out, so a real photo either will not fit or arrives corrupted. This returns an upload_url instead: give that link to the user, tell them it works from their phone too and is valid for about an hour. On that page they can upload their own files, pick from images they already uploaded, or search a free stock photo gallery -- all without leaving the browser. KEEP the returned token_id. When the user says they are done, call check_upload_link(token_id) to get back the EXACT images they chose and place those hosted URLs on the site with apply_dom_ops. role="logo" tags the link for a logo upload; "content" (default) for any other image. Requires an existing project_guid -- create_project first if there is no project yet.
    ConnectorOAuth
  • File a pending CONTACT draft from a business card YOU have read. Read the card image yourself and pass the fields — personName (required), company, role, phones, emails, address — AND the card image itself, which is REQUIRED: the owner checks your fields against the picture before approving, so a draft without the image cannot be verified and is refused. This does NOT add anyone to the address book: it creates a draft the owner reviews and approves in Taokeh, and only that tap files the contact person (under the company, matched to an existing customer/vendor or created as a new one) with the card image kept on the record. BE HONEST about what you could not read: leave a field EMPTY and say so in `notes` — never guess a phone digit, an email spelling or a company name. If the photo is blurry, is not a business card, or lists two people, say that in `notes` and set needsReview. Attach the image with attachmentBase64 + attachmentMediaType (a card photo is usually small enough to inline; send attachmentBytes with it so a truncated base64 is rejected instead of filed), or for a large photo or a PDF use request_attachment_upload → PUT the bytes → pass the returned attachmentToken (never both). Say which side of the book it is with partyKind ('customer' for someone you sell to, 'vendor' for someone you buy from) — default customer — and pass partyName if the user tells you the company is really an existing one under a different spelling. Report the fields back to the user in chat so they can spot a misread before they tap.
    ConnectorOAuth
  • Submit a photo or PDF of a receipt for processing. Covers requests phrased as 'log this', 'log this receipt', 'save this receipt', 'expense this', or 'add this to my expenses', including when the user simply shares a photo of a receipt or invoice. The receipt image is validated, uploaded to cloud storage, and processed by AI to extract vendor, amount, date, tax, and category. The expense appears in the user's spreadsheet in about 1-3 minutes, and longer for PDFs or large batches. Handles images and PDFs, mixed together in one batch. TO SEND FILES (preferred, and required for PDFs): call this tool with filesToUpload listing every file the user gave you. It returns one signed upload URL per file. Upload them ONE AT A TIME with an HTTP PUT, telling the user which file you just finished and how many remain, then call this tool ONCE with uploadRefs for all of them — that processes the whole set as a single batch, like the ExpenseBot web app. Do not call this tool once per file. Use the photo parameter for one image or PDF attached in ChatGPT. MCP clients that cannot supply file references may use photoBase64 for one small image; use the upload flow for large files or batches. Optional note and tag values use the same receipt metadata path as ExpenseBot's camera, file uploader, and forwarded-email intake. The note is stored in the Notes column (L); the tag is stored in the Tag column (K). Batch defaults apply to every file, and each uploadRefs item may override either value for that file.
    ConnectorNo auth
  • File a pending CONTACT draft from a business card YOU have read. Read the card image yourself and pass the fields — personName (required), company, role, phones, emails, address — AND the card image itself, which is REQUIRED: the owner checks your fields against the picture before approving, so a draft without the image cannot be verified and is refused. This does NOT add anyone to the address book: it creates a draft the owner reviews and approves in Taokeh, and only that tap files the contact person (under the company, matched to an existing customer/vendor or created as a new one) with the card image kept on the record. BE HONEST about what you could not read: leave a field EMPTY and say so in `notes` — never guess a phone digit, an email spelling or a company name. If the photo is blurry, is not a business card, or lists two people, say that in `notes` and set needsReview. Attach the image with attachmentBase64 + attachmentMediaType (a card photo is usually small enough to inline; send attachmentBytes with it so a truncated base64 is rejected instead of filed), or for a large photo or a PDF use request_attachment_upload → PUT the bytes → pass the returned attachmentToken (never both). Say which side of the book it is with partyKind ('customer' for someone you sell to, 'vendor' for someone you buy from) — default customer — and pass partyName if the user tells you the company is really an existing one under a different spelling. Report the fields back to the user in chat so they can spot a misread before they tap.
    ConnectorOAuth
  • Display a holiday photo to the user by creating an HTML artifact that embeds the photo from its hosted URL. After calling this tool you MUST create an HTML artifact (type text/html) whose body is a single <img> tag pointing at the hosted URL returned in the result. Do not write a prose description, caption, or commentary — the user wants to view the photo, not read about it. Use list_photos first to discover valid IDs.
    ConnectorNo auth
  • Upload a photo to one of your Stay's photo areas. Supply EXACTLY ONE of 'url' (a public https:// link, e.g. a Google Drive or Dropbox share link — the server downloads it) or 'base64' (the raw image bytes, base64-encoded — use this when you already have the image data in hand, e.g. a user attached a photo in the conversation, and have nowhere public to host it first). The photo is validated against the same minimum specs as a manual upload: JPEG, PNG, or WebP, under 20MB, and a minimum resolution that depends on area. Most areas require at least 1920x1080 landscape; 'host' requires at least 1080x1350 PORTRAIT — a landscape photo will be rejected for that area. Every upload is downscaled to fit within 2560x1440 and re-encoded server-side as WebP (stripping metadata and anything that isn't genuine image data) before storage. Requires NOMADSTAYS_MCP_AGENT_TOKEN.
    ConnectorNo auth
  • Send an image to this hosted endpoint. There is no filesystem here, so instead of a path you upload the file once with image_upload and then pass its name as `path` (or inside `paths`) to image_info, image_resize, image_convert, image_compress, image_crop, image_thumbnails, image_batch_resize and image_dominant_colors. PNG, JPEG, BMP, GIF and TIFF are accepted and the format is read from the file's magic bytes, not from the name. Give exactly one of image_base64 or url. url: fetch a public file instead of pasting base64 (recommended above about 10 KB): writing out a real photo as base64 is a long tool call and 50 KB or more can stall the turn before the upload is sent, while a url costs one line and the fetch happens here (10 second timeout, at most 3 redirects, public http(s) hosts only, 2 MB cap). Uploads are kept for your token between calls; image_files lists them and image_delete_upload removes one. A file this server writes is named the same way and comes back as a download link valid for one hour, served with the real image content type. The request body cap is 256 KB, which is about 190 KB of image once base64-encoded.
    ConnectorNo auth
  • Read-only. Returns a paginated list of gallery photo summaries with captions, image URLs, model project references, section tags, and image metadata. Use this tool to browse gallery photos or filter them by model project and gallery section. Use get_build_details when the user needs vessel background, technical notes, or build-log content for the related model. Known section tags are: overall, hull, deck, rigging, details. Results are ordered by each project's gallery order. The response includes total matching photos, returned count, limit, offset, nextOffset, and hasMore. Use nextOffset from a response with hasMore=true to retrieve the next page. If no photos match a valid filter, returns an empty photos array. If project does not identify a gallery project, returns a not-found result.
    ConnectorOAuth
  • Render a batch of TikTok photo carousels from a template: swipeable 1080x1920 slides, real library photos, the copy composited as REAL text (never generated into the image, so it says exactly what you write). ASYNC — returns a jobId; poll get_job until completed, and the slide URLs come back on the job itself. SPENDS 1 CREDIT PER CAROUSEL. Max 12 per call. Keys in `values` must come from list_carousel_templates; unknown ones are reported in ignoredKeys, not rejected. Image slots take either a `collection:<pool>` key (stock photos, see the template's examples) or a direct image URL. For candid phone-shot backgrounds that match each slide's line, generate them first with studio_generate_image (modelKey 'replicate-pruna-p-image-ideogram', 1 credit, aspectRatio '9:16', prompt like 'candid iPhone photo of a laptop showing a blurred inbox at night, phone-camera grain, no people, no readable text, no logos') and pass the returned URL.
    Connector
    Destructive
    OAuth
  • Retrieve one known Lightdrift asset by the asset_id returned from search_images or find_similar_images. Returns an object with asset_id, title, source, dimensions, format, file and thumbnail URLs, and rights including attribution and provenance. Use this to inspect a selected image or retrieve a saved asset; use the search tools to discover images. Requires OAuth or an API key. Free: does not deduct search credits or modify the image; access is logged. An unknown asset_id returns a tool error. Inspect rights before using the file.
    ConnectorOAuth
  • Send an image to this hosted endpoint. There is no filesystem here, so instead of a path you upload the file once with image_upload and then pass its name as `path` (or inside `paths`) to image_info, image_resize, image_convert, image_compress, image_crop, image_thumbnails, image_batch_resize and image_dominant_colors. PNG, JPEG, BMP, GIF and TIFF are accepted and the format is read from the file's magic bytes, not from the name. Give exactly one of image_base64 or url. url: fetch a public file instead of pasting base64 (recommended above about 10 KB): writing out a real photo as base64 is a long tool call and 50 KB or more can stall the turn before the upload is sent, while a url costs one line and the fetch happens here (10 second timeout, at most 3 redirects, public http(s) hosts only, 2 MB cap). Uploads are kept for your token between calls; image_files lists them and image_delete_upload removes one. A file this server writes is named the same way and comes back as a download link valid for one hour, served with the real image content type. The request body cap is 256 KB, which is about 190 KB of image once base64-encoded.
    ConnectorNo auth
  • Use this to get full details for a quote. Returns complete attribution, sources, and metadata. When to use: User wants more details about a quote from search results. Use the short_code from previous results. Examples: - `quote("abc123")` - get details for quote with short_code - `quote("xyz789", response_format="detailed")` - with full metadata - `quote("abc123", include_relations=True)` - with translations and variants
    ConnectorNo auth
  • Resolve a place 'query' to coordinates (forward) or find nearest places to 'latitude'+'longitude' (reverse). Mediterranean-focused curated DB; forward falls back to OSM/Nominatim globally. Each result carries a 'source' discriminator ('local' for the curated marine DB, 'osm' for the global fallback). Returns name, type, coords, source, plus similarity (forward) or distance_m (reverse). Example forward: query="Portofino". Example reverse: latitude=44.3, longitude=9.21, radius_m=50000. Chain into nausika_marine_forecast, nausika_tides, nausika_search_places, or nausika_sea_route using the returned coords.
    ConnectorNo auth
  • Attach a photo to a listing you own directly from its public URL — one call, no separate sign/upload/confirm. The server fetches the image and ingests it with auto-generated thumbnail/hero/full variants. Only https image URLs whose host is publicly routable are accepted. The photo is content-moderated (must be real-estate related and safe) before it can appear publicly — the returned snapshot includes the moderation_status (approved / rejected / escalated) and moderation_reason. A rejected or escalated photo will not be publicly visible and will block publishing until removed or replaced.
    ConnectorNo auth
  • Every gallery image for a product with high-resolution URLs. Each image lists only renditions that actually exist, largest first — modern photography is 2048x2048 WebP at the 'original' size — plus the metal tone, band width, and finish the photo shows, and descriptive alt text. Identify the product by exactly one of slug, style_code, or url.
    ConnectorNo auth