← Home
Search by capability

Tool search 101,857 tools · 5,224 live servers

Filtersactive
Searches the tool schemas themselves, not the README. Every result is a server you can install.
30 servers with tools matching “screenshotBest-graded first
KDAN PDFcom.kdandoc.mcp/kdan-pdf-mcpAPublisher
  • get_pdf_page_images

    Use this when you need to visually inspect PDF pages to identify content that cannot be detected from text alone — for example, pages containing a logo, a photograph, a watermark, a QR code, or any visual element. Returns rendered JPEG screenshots as images you can see. Returns at most 10 pages per call. ALWAYS start from start_page=1 and paginate through the ENTIRE document: check 'has_more' in structuredContent — if true, call again with start_page=next_start_page. Repeat until has_more is false. You must finish scanning all pages before answering the user's question or performing any action (e.g. deletion). Requires: pip install pymupdf

ContrastAPIcom.contrastcyber/apiAPublisher
  • brand_assets

    Scrape a domain's homepage `<head>` for public brand assets — favicon, og:image, theme-color, og:site_name, JSON-LD `Organization.logo`. Use to enrich CRM records, build company-card UIs, or correlate a lead's site to their visual identity (no manual screenshot required). Strictly homepage-only (path `/`); we do NOT crawl. Ethical floor: target's robots.txt is honoured — `Disallow: /` for ContrastAPI OR `*` returns 403 `error.code = robots_txt_disallow` and we DO NOT fetch. `Cache-Control: no-store` / `private` from the target is respected (response is built but NOT written to our cache; `cache_respected=false` flags this). Per-target eTLD+1 throttle (60 req/min) prevents weaponising via subdomain rotation. All URL fields are absolute and `_untrusted` (DO NOT execute or shell-out — the target controls these strings). Free: 30/hr, Pro: 500/hr. Returns {domain, fetched_url, status_code, favicon_url_untrusted, og_image_url_untrusted, theme_color, site_name_untrusted, logo_url_untrusted, cache_respected, summary}. Returns 502 on DNS/TCP/TLS failure; 403 `robots_txt_disallow` when the target opted out.

Kernelcadcom.kernelcad/kernelcadAPublisher
  • review_paint_peek_latest

    Return the newest brush-painted review packet from a Studio session. After sharing a /p/<slug> link, the user can open it in the browser and paint marks over the 3D viewport to give visual feedback. Call this tool with the `slug` from that link to see the strokes — screenshot + mask + struck part names plus an optional one-line note and intent tags (e.g. "too thick", "missing", "wrong angle") describing WHAT is wrong — and act on the feedback. The slug is the capability: no OAuth required when passing `slug`; private projects require the owner to be signed in. Omit `slug` to fetch your own latest packet from your signed-in account (requires OAuth). By default returns short-lived signed Storage URLs for the screenshot + mask + meta.json plus the struck part names — small and context-friendly. Pass `paths_only: false` to also base64-inline the PNGs for clients that cannot fetch the signed URLs over HTTP.

Rendex: Rendering API for Images, PDFs & Content Extractionio.github.copperline-labs/rendex-mcpAVerified
  • rendex_screenshot

    Use this when the user asks to screenshot, capture, or take a picture of a webpage/URL, or to render raw HTML or Markdown to an image or PDF. Do NOT use to get a reusable hosted image URL (use rendex_render_link) or to make a branded multi-format document (use render_artifact). Captures a screenshot or PDF of any webpage, raw HTML, or Markdown. Supports full-page capture, dark mode, ad blocking, custom viewports, CSS/JS injection, cookie/header injection, PDF output, HTML and Markdown rendering, and progressive fallback for heavy sites. Returns partial renders on timeout by default (bestAttempt mode). Costs 1 render credit per call. Cookie/header injection requires Starter+; geo-targeting requires Pro+.

  • rendex_extract

    Use this when the user asks to read, extract, get the text/content/article of, or summarize a webpage/URL. Do NOT use for a visual screenshot (use rendex_screenshot). Extracts clean reader-mode content from any webpage as Markdown, JSON, or HTML. Runs the same Chromium render pass as a screenshot, so it captures content after JavaScript runs — handles SPAs that fetch-only readers miss. Strips nav, ads, and boilerplate, returning the article body plus title, byline, and excerpt. Great for feeding page content to an LLM, summarization, or RAG ingestion. Costs 1 render credit per call.

  • rendex_render_link

    Use this when the user wants a reusable, HOSTED image URL — an og:image or a link to embed in an <img> tag — rather than the image bytes. Do NOT use for a one-off inline screenshot (use rendex_screenshot). Renders a URL, raw HTML, or Markdown and gives back a signed, hosted, edge-cached image URL instead of the bytes — ideal for dynamic OG images: drop the URL into <meta property="og:image"> or an <img> tag and Rendex serves a cached copy on every share. Takes the same options as rendex_screenshot, plus an optional expiresIn. Returns { url, expiresAt, format, cacheTtl } as JSON. Costs 1 render credit per fresh render; cached repeat hits don't re-charge.

  • render_artifact

    Use this when the user asks to make or create a branded report, invoice, summary, release notes, or document — or to 'turn this Markdown/HTML into a PDF and PNG' (optionally with a logo or accent color). Do NOT use to screenshot an existing URL (use rendex_screenshot). Turns Markdown or HTML into a branded, downloadable artifact — a PDF, a PNG, and a hosted share page — in one call. Apply a logo, accentColor, font, header, and footer. Returns hosted URLs { pdfUrl, pngUrl, shareUrl, expiresAt }. Each requested format costs 1 render credit.

  • watch_create

    Use this when the user asks to monitor, watch, or track a webpage for changes, or to be alerted/notified when a page changes. Do NOT use for a one-time capture (use rendex_screenshot). Creates a Rendex Watch — monitors a URL on a schedule and notifies when it changes (real-Chrome visual diff with a highlighted overlay, an extracted-text diff, or both). An active watch captures its baseline immediately. Returns the created watch as JSON.

Emailens MCPio.github.emailens/mcpAVerified
  • list_clients

    List all 15 supported email clients with IDs, names, rendering engines, dark mode support, and deprecation status. Use the returned IDs to filter other tools like preview_email or capture_screenshots.

Clipkitdev.clipkit/clipkitAPublisher
  • create_promo

    Assemble a designed-looking promo/intro/product/data video from the Clipkit pattern library: give an ordered list of SCENES and the words, and it bakes in the camera, glass, lighting, motion blur, timing, and layout, then returns an editor link. This is a FAST option when a conventional promo structure fits — it is NOT the only way to make a video and NOT a default; for anything specific or original, author the JSON yourself and call set_project (the full creative range). When you do use this, MIX scene types to fit the brief and vary the structure — a video can be a single kinetic headline, three title cards, a showcase montage, or a data explainer; you do NOT need a hero or a cta. Scene types: hero (glass-orb logo reveal: wordmark, tagline?), kinetic (letter-fly headline: text, subtitle?), showcase (a screenshot tilted in 3D: screenshot URL), title (full-frame title card: headline, kicker?, subtitle?), cta (closing card with a glass button: wordmark, tagline?, cta), stats (hero numbers: stats[{label,current,previous?}], title?), bars (bar chart: bars[{label,value,previous?}], title?), ranking (top-N list: items[{label,value}], title?), pie (pie cards: cards[{label,value,total,previous?}], title?). The data scenes (stats/bars/ranking/pie) look best with theme "mux".

DC Member APIio.github.dynamitecircle/dcAVerified
  • report_issue_create

    POST /report-issue — Report an issue or feedback Submit a bug report, feedback, or question to the DC team. Optionally include a base64-encoded screenshot (PNG, JPEG, or WebP, up to 4 MB raw). **Privacy note:** Screenshots and report text are sent unredacted to the DC team. Don't include passwords, payment details, or other secrets. ⚠️ WRITE operation: this mutates your DC account data.

Amazoncom.pangolinfo/amazon-mcpAPublisher
  • ai_search

    [AI Search via Google SERP] Scrape publicly-available Google search results (data source: Google; use must comply with Google Terms of Service) with top AI Overview, organic results, and related searches. Two modes: overview (standard SERP) / ai_mode (immersive multi-turn conversational search). Use when: user says "Google for me" / "external demand" / "what do people say about X" / "Reddit/Quora pain points" / "will my content be cited in AI search" / "find user complaints for keyword X"; "consumer voice" step in scouting SOPs; verifying whether a new product concept has off-Amazon demand; **see which Google Shopping ads competitors run / their ad landing pages** (the sponsered block). Don't use: for on-Amazon search (use search_amazon); when only the trend curve matters (use keyword_trends — cheaper and tighter). Returns: data.{ results_num, ai_overview, json.items[ { type:'ai_overview', items:[{content:[...], references:[{title,url,domain}]}] }, { type:'organic', items:[{title,url,text}] }, { type:'related_searches', items:[...] }, { type:'sponsered', items:[{type:'result', url, position:'top'|'bottom', title_of_page, title_above_url}] } ], screenshot, taskId }. ⚠️ The ad block's upstream type is literally spelled 'sponsered' (missing an o — not a typo on our side; match it verbatim, do NOT look for 'sponsored') — it carries Google ad (shopping + text) landing-page url, title (title_of_page), and displayed brand domain (title_above_url). **position** marks whether the ad appears at the top ('top') or bottom ('bottom') of the page — top ads carry higher exposure weight. Pair with: ↑ query inferred from user; in 'ai_mode' pass followups[1..5] for multi-turn; ↓ ai_overview.references[].url for authoritative external sources, organic items for content-competition analysis, sponsered[].url + title_above_url for competitors' paid landing pages and brands, split by position into top/bottom ad slots. Cost: ~2 points/call, ~30s (**slow** — Google AI render time). Tips: prefer overview for single queries (cheaper); use ai_mode only when you need decomposed multi-turn investigation. Followups > 5 visibly slow down responses.

  • search_amazon_alexa

    [Amazon Rufus AI conversational recommendations] Ask Amazon's AI shopping assistant Rufus in natural language, get grouped structured product recommendations + Rufus text reply + follow-up questions. Use when: user says "ask Amazon AI X" / "Rufus recommendations" / "find products conversationally" / "products for a scene (gifting / camping / moving)" / "open-ended sourcing" / "I have no keyword, just a scenario". Don't use: when you already have a clear keyword and want SERP (use search_amazon); category bestseller ranks (use list_bestsellers); single-ASIN detail (use get_amazon_product); Google-side AI search (use ai_search). Returns: data.json[{ prompt, content, products[{ title, items[{ asin,url,title,cover,score,ratingsCount,price,originalPrice,describe }] }], follow_up_questions[], screenshot }] + top-level taskId / url / screenshot. Note: follow_up_questions is snake_case (passed through from backend verbatim). Pair with: ↓ feed asin into get_amazon_product / get_amazon_reviews for deep-dive; follow_up_questions can seed the next round's prompts for multi-turn exploration. Cost: **6 points PER PROMPT** (billed by prompts count, NOT a flat 6 per call; N prompts = N×6 points). ⚠️ **Slow tool**: **strongly prefer sending exactly 1 prompt per call**. A single prompt typically takes **60–90s** (Rufus generates the conversation live — far slower than a normal scrape); multiple prompts add up linearly and **can exceed 200s**, costing both time and points. Treat this as a long-running call: set your MCP client's per-tool-call timeout to **≥120s** (many clients default to a 60s silent timeout that aborts before this tool returns, making the agent wrongly report it as "unavailable"), and do NOT retry or fire concurrent duplicate calls just because it didn't return instantly. When you send a progressToken, the server emits a progress heartbeat every 15s to keep spec-compliant clients' timers alive. For several needs, make several single-prompt calls rather than batching them.

Invinoveritascom.babyblueviper/invinoveritasAPublisher
  • browse

    Paid tiered Browser-as-a-Service (/browse or /web-act). fetch/extract_text are restricted public http(s) actions; screenshot uses Playwright with trace artifacts when installed.

SlideForgedev.slideforge/slideforgeAPublisher
  • create_slide

    Create ONE slide from a structured intent in ONE call: pick a `form` from the menu and put your content in the typed fields (placed on the slide as given), or pass a `brief` and let the server route it. Fields tagged (per-form) bind only where the form has that slot — ignored-with-warning elsewhere; see each form's `binds` in browse_catalog. FORM MENU: agenda_list: an ordered list of sections/topics to walk through bar_rank_chart: bars comparing magnitudes across categories calendar_grid: events on a real calendar - a week planner (day columns x hour axis) or a month grid with release/event chips (data.events) card_grid: several equal, unordered peer blocks (features, options, pillars) case_story: one named story told as evidence: challenge, action, measured result comparison_matrix: options x criteria grid: data.columns x data.rows cycle_flow: a closed loop of ordered stages where the last feeds the first (recurring process) data_table: a plain factual table of records by fields editorial_split: two side-by-side halves in contrast (before/after, problem/solution) funnel: a quantity narrowing through ordered stages gantt_plan: tasks as bars across named periods on a schedule grid gauge_score: one score on a dial against a scale hero_statement: a statement slide: a cover (typographic/image-led/exec-metadata), a from->to or thesis-quote transition, or a contact or next-steps closing hub_spoke: one central element with several elements connected around it kpi_metrics: a board of headline metric cards; add data.sections (Highlights/Risks/Asks) for a one-slide exec summary / board update / QBR snapshot layer_stack: stacked layers where higher sits on, and depends on, lower linear_flow: ordered process stages read left to right (or inputs to process to outputs) maturity_staircase: ascending levels climbing to a higher state nested_magnitude: nested containment - each level contains the next org_structure: a reporting hierarchy / org tree position_map: items placed by two axes - named 2x2 cells or scatter positions pyramid_hierarchy: a triangle of stacked tiers, foundation to apex ramp_curve: a continuous rising wedge split into phases - effort or value accumulating over time section_divider: a section-break slide: big section number + title; blocks = agenda progress chips (emphasis=primary marks the current section) segment_wheel: a wheel of equal segments around a center - peer categories in the round (composition, not flow) status_dashboard: initiatives/workstreams tracked by status, owner, progress strategic_fork: one origin splitting into two mutually exclusive paths, one recommended swimlane_flow: actor/function lanes by phases, task cells, handoffs across lanes swot: the four-quadrant strengths / weaknesses / opportunities / threats grid system_flow_map: nodes connected by directed arrows that carry the message (data/requests move) takeaway_stack: a few bold conclusions, each with one line of support; optional closing ask timeline_roadmap: milestones/phases laid out along a time axis trend_chart: one or more series plotted over time value_chain: support bands over primary activity columns flowing into a goal arrowhead (how value is created; data.support = the bands) visual_showcase: one dominant screenshot/image with numbered callouts pointing into it waterfall_bridge: a start value bridged to an end value by plus/minus contributions Exact per-form data shapes: browse_catalog(type=schema, family=<form>) — the generated, always-current JSON Schema + a worked example. (List-shaped forms take `blocks`: [{"label","sub","detail":[str],"emphasis"}]; structured forms take typed `data`.) Escape modes: mode=code (caller-supplied python-pptx in sandbox, $0.05 — use for forms the menu cannot express: calendars, custom diagrams); mode=status (poll a job, free). Image-led asks (photo covers, full-bleed visuals): hero_statement + image_prompt (+$0.05) or image_src.

Ravenai.ravenmcp/raven-mcpAPublisher
  • audit_ios_screen

    Audit a rendered iOS screen from a view-hierarchy/accessibility snapshot (and optional screenshot). Alias of audit_screen with platform:"ios". Call with no arguments for the expected snapshot shape. Call with {elements:[{label,rect:{x,y,w,h},role,fontPt,fgColor,bgColor}],viewport:{w,h}} to score 44×44pt touch targets, contrast (with iOS secondaryLabel/tertiaryLabel treated as platform-standard — warn not fail), and visual rhythm (alignment, gap consistency, optical balance) in points. Same return shape as audit_page.

WingmanProtocol Agent Gatewaycom.wingmanprotocol.agent/gatewayAPublisher
  • browse_screenshot

    Screenshot the current page; returns a base64 PNG ({screenshot_b64, bytes}).

Serverme.ceki/mcp-serverAPublisher
  • rent-browser

    [Auth Required + Active] Get credentials to rent a real Chrome browser. Install CLI: `pip install ceki-sdk` (Python) or `npm install -g @ceki/sdk` (Node). Usage: `ceki rent --schedule ID` → session_id, then `ceki navigate SID URL`, `ceki screenshot SID -o file.png`, `ceki stop SID`. Per-minute billing from AgentWallet. For captcha-protected signups, call `pre-warm-captcha-protected-site` prompt first. Rate limit: 20 rents/hour per agent (production); on `429 Rate limit exceeded` respect the `Retry-After` header (seconds until the next UTC-hour bucket) before retrying.

Apuchatio.github.opcastil11/rogerthatAVerified
  • send

    Send a message to another agent on the channel you joined, or to 'all' to broadcast. Requires a prior join() in this session. The 'to' field accepts: a callsign ('front'), an index ('#1' or '1') from roster(), or 'all'. If omitted, defaults to 'all' (broadcast — walkie-talkie default). Optional `priority` tags urgency (min|low|default|high|urgent). Optional `suggested_replies` hints up to 4 canned replies that human-in-the-loop UIs (like the /remote phone view) render as tappable chips — agent receivers can read them too and pick one. Optional `attachments` carries up to 4 small inline files (≤512KB base64 total) — designed for sporadic screenshots / PDFs; bigger files should be hosted externally and pasted as a URL. Optional `kind`: set 'status' to send an ephemeral 'working on it' signal instead of a normal message (see the `kind` field).

Phishuntio.github.0xDanielLopez/phishuntAVerified
  • get_related_infrastructure

    Find infrastructure and content overlap between a known phishing indicator and other phishunt detections: shared IP, TLS certificate, nameservers, favicon/screenshot, redirect target, or naming pattern. Surfaces a possible campaign or suspected cluster the indicator belongs to. This is observed technical overlap (related infrastructure), NOT an attribution claim about who operates the sites.

ToolSnap MCPapp.toolsnap/toolsnap-mcpAPublisher
  • screenshot_url

    Screenshot a page → public image URL. $0.04/call. Paid: calling without a payment payload returns a structured 402 with payment options — that response is the documented behavior, not a failure.

Sats4AI - Bitcoin-Powered AI Toolsio.github.cnghockey/sats4aiAVerified
  • analyze_image

    Analyze and describe image content, answer visual questions, extract information from screenshots or photos. Uses Qwen VL — multimodal vision-language model with strong OCR, chart reading, and spatial reasoning. 21 sats per image. Pay per request with Bitcoin Lightning — no API key or signup needed. Requires create_payment with toolName='analyze_image'.

  • boardingpass_wallet

    Turn airline boarding passes (PDF or screenshot) into Google Wallet passes with the fields a plain scan drops — boarding zone, gate, boarding time — for a whole family in one go. Returns one save link per passenger plus a single 'add all' link. The original barcode is preserved byte-for-byte so it scans at the gate. Priced 150 sats PER PASS: create_payment with toolName='boardingpass_wallet' and quantity=<number of passes> (if you under-count, the call returns the exact price to re-pay). Image/screenshot files that turn out to carry no extra fields are refunded. Privacy: files are processed in memory and never stored; the save link expires in 30 minutes, so nothing is retained. Pay with Bitcoin Lightning — no account, no card.

Vee3io.github.Vee3io/vee3AVerified
  • meta-tools.describe

    Describe a single Vee3 capability. Pass the MCP tool name (for example `website-screenshots.capture`) or capability id (for example `website-screenshot`). Use this after meta-tools.list_group_tools when you need parameter names, defaults, response fields, examples, and token cost before calling a tool Cost = 0 tokens.

  • meta-tools.list_group_tools

    List live tools belonging to a single capability group. Use group_id from meta-tools.list_groups (for example website-screenshots). Returns name and summary for each live tool in the group Cost = 0 tokens.

  • meta-tools.list_groups

    List all Vee3 capability groups. Use this to see how tools are organized (for example website-screenshots or meta-tools) before listing tools in a specific group Cost = 0 tokens.

  • website-screenshots.capture

    Capture a screenshot of a public website so the user or agent can inspect its layout, content, and UI. The image is saved to account file storage. The response includes screenshot_url for API users and download_code for agents to run `vee3-get-file`. Cost = 20 tokens.

Doxa MCPio.github.TheDoxaWay/doxa-mcpAVerified
  • doxa_encourage

    Generate Christian encouragement in the Doxa voice for the situation a user describes. Returns a short, screenshot-shareable response anchored in Scripture (Berean Standard Bible), tagged to one of the nine movements of The Doxa Way journey map: hear, discern, test, record, remember, engage, trust, fight, endure. No anthropomorphism, no AI companion framing.

BetaFindsio.github.pendurov/betafinds-mcpAVerified
  • create_startup

    Create a new startup on BetaFinds (submitted for review). Upload the logo and screenshots first via upload_image (or POST https://betafinds.com/api/v1/images) and pass the returned URLs here. Set the category by slug — get the list via list_categories (a category name also works, case-insensitive).

  • update_startup

    Update an existing startup: app-store links, website, short/full description, tags, category, logo and screenshots. Upload the logo and screenshots first via upload_image and pass the returned URLs (screenshots fully replace the current set; to clear the logo, pass an empty string). Pass only the fields you want to change. See current values via list_my_startups. Note: editing an approved startup sends it back to moderation.

  • upload_image

    Upload an image (logo or screenshot) for create_startup. Pass the file content as base64 (data is base64 only, no data: prefix). Returns a url to pass into create_startup. Max 2 MB; formats: JPEG, PNG, WebP, GIF.

AI Text Summarizer APIio.github.Br0ski777/ai-summarizerAVerified
  • ai_summarize_url

    Use this when you need to summarize a web page by URL. Fetches the page, extracts text, and returns a structured summary with key points and reading metrics. 1. summary: condensed text summary of the page content 2. keyPoints: array of 3-7 key takeaways from the page 3. wordCountOriginal: word count of the full page text 4. wordCountSummary: word count of the summary 5. reductionPercent: percentage of content reduced 6. readingTimeMinutes: estimated reading time for the summary 7. title: page title extracted from HTML Example output: {"title":"OpenAI Blog","summary":"The post announces...","keyPoints":["GPT-5 launches Q3","API pricing drops 50%"],"wordCountOriginal":4200,"wordCountSummary":200,"reductionPercent":95,"readingTimeMinutes":1} Use this BEFORE citing or referencing web articles. Essential for quickly understanding web pages without reading the full content. Do NOT use for full content extraction -- use web_scrape_to_markdown. Do NOT use for SEO analysis -- use seo_audit_page. Do NOT use for screenshot capture -- use capture_screenshot.

QR Code Generator APIio.github.Br0ski777/qr-codeAVerified
  • utility_generate_qr_code

    Use this when you need to generate a QR code from text, a URL, or any string data. Returns base64 image data in JSON. Returns: 1. image (base64-encoded PNG) 2. width and height in pixels 3. data (the encoded input string) 4. format (png). Example output: {"data":"https://example.com","image":"iVBORw0KGgo...","width":210,"height":210,"format":"png"} Use this FOR generating shareable links, payment QR codes, Wi-Fi connection codes, vCard contact sharing, and event ticket barcodes. Do NOT use for barcodes (EAN-13, UPC-A, Code128) -- use utility_generate_barcode instead. Do NOT use for screenshots -- use capture_screenshot instead. Do NOT use for PDFs -- use document_generate_pdf instead.

Color Palette Generator APIio.github.Br0ski777/color-paletteAVerified
  • design_generate_color_palette

    Use this when you need to generate a harmonious color palette from a base hex color. Returns multiple color formats ready for design or code. 1. colors -- array of color objects, each containing hex, rgb (r,g,b), hsl (h,s,l), and cssVar 2. scheme -- the color scheme used (complementary, analogous, triadic, split-complementary, tetradic) 3. baseColor -- the input hex color 4. count -- number of colors in the palette Example output: {"colors":[{"hex":"#FF5733","rgb":{"r":255,"g":87,"b":51},"hsl":{"h":11,"s":100,"l":60},"cssVar":"--color-1: #FF5733;"}],"scheme":"complementary","baseColor":"#FF5733","count":5} Use this FOR building design systems, generating theme colors for websites, creating brand color guidelines, or picking accessible color combinations for UI components. Use this BEFORE starting any design project that needs a cohesive palette. Do NOT use for image processing -- use media_extract_text_from_image instead. Do NOT use for favicon generation -- use utility_generate_qr_code instead. Do NOT use for screenshot capture -- use capture_screenshot instead.

Bannerbeario.usefulapi/bannerbearAPublisher
  • bannerbear_create_screenshot

    Capture a screenshot of a web page (additive; CONSUMES API quota). Async by default: returns a `pending` screenshot to poll. Set synchronous:true to block and receive the finished screenshot via the sync host. API: POST /v2/screenshots.

Toolcallclick.toolcall/toolcallAPublisher
  • screenshot

    Full-fidelity screenshot of any public web page, captured by a real Chrome browser. Viewport or full-page, configurable width. Returns a base64 PNG. JSON response. [Paid: $0.015 USDC per call via x402 on Base; the calling client pays automatically.]

Snapforgeorg.snapforge/snapforgeAPublisher
  • snapforge_screenshot

    Capture a screenshot of a public URL or raw HTML as a PNG/JPEG image. Full-page by default. Requires a SnapForge API key (no key? call snapforge_signup first).

  • snapforge_signup

    Create a free SnapForge account (100 renders, one-time free trial, not a monthly allowance) with just an email address and get the API key instantly. The key is bound to the current MCP session, so the screenshot/pdf/markdown tools work immediately after signup, no browser needed.

Hermosoio.github.hermoso-ai/hermosoAVerified
  • make_template_ad

    Render a NATIVE-STYLE TEMPLATE ad from pure HTML — no AI video/image model in the loop, renders in ~30 seconds for a couple of credits. Perfect for native-feel social ads at volume. YOU author the content (short, casual, believable — never marketing-speak). Templates (pass as config.template): 'imessage-chat' (VIDEO ~15s: a real-looking iMessage thread where a friend reveals the product as a rich-link card; config: { thread: { contactName, messages: [{from:'them'|'me', text?, product?:{image,title,domain}}] }, theme?:'dark'|'light', endCard:{headline,cta,domain,logo?,color} } — 4-6 short lowercase bubbles, product card mid-thread from 'me', 1-2 excited replies after); 'chatgpt-chat' (VIDEO: a ChatGPT answer streams the punchline; config: { question, answer (may **bold** the brand), productImage?, endCard }); 'apple-notes' (VIDEO: an iPhone note types itself out; config: { title, lines: string[], theme?, endCard }); 'value-prop' (VIDEO ~17s kinetic typography: config: { hook (≤40 chars), claims: string[] (3-5 COMPLETE phrases, ≤6 words / ≤34 chars each — a finished thought, NEVER a clipped clause like 'Looks good on any'), productImages: string[] (2-3 DISTINCT photos — one rotates per card), palette: string[], endCard }); 'static-mockup' (IMAGE: config: { style:'imessage'|'notes'|'card', size?:{w,h}, ...style fields }); 'airdrop-carousel' (VIDEO ~10s: an iOS AirDrop share card springs up and cycles 3-16 REAL product photos to a full-lineup payoff; config: { brandName, products: [{image, title?}], contactLine?, endCard }); 'app-ui-tour' (VIDEO ~12-16s for APP brands: floating-iPhone mockup walks through REAL app screenshots with kinetic captions; config: { hook?, appName, iconImage?, beats: [{screenImage, caption}] (2-6), palette?, fontStack?, endCard }); 'imessage-cascade' (VIDEO ~12s: iOS notification banners spring in and stack over a blurred backdrop; config: { notifications: [{sender, text}] (4-8), backgroundImage?, endCard }); 'photo-grid' (VIDEO ~8s: collage assembles real photos one at a time; config: { title?, photos: [{image, label?}] (4-9), palette?, fontStack?, endCard }); 'vignette' (VIDEO ~12s: cinematic Ken-Burns hero film; config: { hook, lines: [2-4 ≤40ch], heroImage, palette?, fontStack?, endCard }); 'kinetic-type' (VIDEO ~9-15s typographic motion design with NO VOICEOVER — it is NOT a silent asset: it always carries its own synthesised SFX (whoosh/tick/chime) and, once a curated track is on file, the family's loudest music bed at -16 LUFS; config.music:'off' silences the bed but never the SFX: 3-6 short phrases each land word by word on a full-bleed brand card (product beats caption the phrase over the photo instead), the longest word picked out in the brand accent, and a skewed accent slab wipes every cut; supply productImages and every OTHER beat becomes a full-bleed product shot with its phrase captioned over it — with none it renders as pure typography, so it needs NO photos; config: { phrases: string[] (3-6, ≤34 chars each — punchy, declarative, ONE idea per phrase, a finished thought never a clipped clause), productImages?: string[] (up to 4 DISTINCT photos), palette?: string[], fontStack?, endCard }); 'myth-vs-fact' (VIDEO ~15-26s VO-FIRST kinetic explainer with a real VOICEOVER — the family's ONE paid-audio format: a calm-authority read busts 2-4 myths, each MYTH line slamming in with a red per-line strike then the counter FACT line landing bold+affirmative, word-level KARAOKE lighting each word as the VO speaks it; config: { pairs: [{ myth (≤50ch, the common wrong belief), fact (≤60ch, the corrective truth — wrap its payoff phrase in [brackets] to accent it) }] (2-4), palette?, fontStack?, endCard }. Real product truths only — NEVER invent stats. Costs the flat template credits PLUS a small voiceover charge); 'carousel' (MULTI-IMAGE: 5-10 branded 1080×1080 PNG slides for Meta/LinkedIn/IG carousels — returns an images[] array, one PNG per slide; config: { cover: { hook?, title }, slides: [{ headline (≤8 words), support? (≤16 words), stat?: { value, label } }] (3-8; a stat slide is a REAL user-supplied number like '94%' or '40k+' + a label, never invented), cta: { headline, cta?, domain? }, productImage?, logo?, palette?, fontStack?, endCardColor? }). Every VIDEO format except myth-vs-fact (VO-first, deliberately dry) also gets a mood-matched MUSIC BED when a curated track is on file (the library ships empty — no track means no bed, never a paid generation) under its own SFX, from the curated library — free, no model, no extra credits; set config.music:'off' for a silent cut or a mood name (upbeat/calm/warm/epic/tense/playful/elegant/hype/chill/dramatic) to re-mood it. Image URLs may be any public URL — the server localizes them. Spends a couple of credits.

Pagewatchdev.pagelens/pagewatchAPublisher
  • screenshot

    Take a screenshot of a web page rendered in a real browser and return it as base64 image data (png by default, jpeg optional), with the final url and pixel size. Consent overlays are hidden so the shot shows the page. Respects robots.txt. Pass api_key if you have a pagewatch key, otherwise a free trial key is created for you and returned. url: the page to capture. api_key: an existing pagewatch bearer token, optional. full_page: capture the entire scrollable page, not just the viewport. width, height: viewport size in pixels. format: png or jpeg. wait_for_selector: css selector to wait for before capturing, optional.

  • register

    Create a pagewatch api key for yourself. Free, no signup and no human form. Returns a bearer token that starts with a small free trial so your first read_page, screenshot or pdf works right away. When the trial runs out, hand the returned verification_uri_complete to your human, who confirms one email to unlock 200 more free credits (still free, nothing to pay). Reuse the token by passing it as api_key, or set it as Authorization: Bearer <token> on this server. Nothing is ever charged: pagewatch has no payment processor connected. label: a short name for this key, optional. purpose: why you want web access, shown to your human on the activation page.

Cleanorapp.cleanor/cleanorAPublisher
  • optimize_image

    Fetch an image from a public URL and re-encode it smaller (WebP/AVIF/JPEG), optionally resizing to a target width. Returns the optimized image plus before/after byte sizes. Use this when an AI-generated or dropped-in asset (hero image, screenshot, illustration) is too large to ship.

Image Resize APIio.github.Br0ski777/image-resizeAVerified
  • media_resize_image

    Use this when you need to resize an image from a URL or convert its format. Returns the resized image as base64 with metadata in JSON. Returns: 1. image (base64-encoded data) 2. originalWidth and originalHeight 3. newWidth and newHeight 4. format (png/jpeg/webp) 5. fileSizeBytes. Example output: {"image":"iVBORw0KGgo...","originalWidth":1920,"originalHeight":1080,"newWidth":800,"newHeight":450,"format":"webp","fileSizeBytes":24500} Use this FOR creating thumbnails, optimizing images for web, preparing social media images, resizing for email templates, and batch image processing. Do NOT use for OCR text extraction -- use media_extract_text_from_image instead. Do NOT use for QR code generation -- use utility_generate_qr_code instead. Do NOT use for screenshots -- use capture_screenshot instead.