webfetch
License-first federated image search with attribution, dimensions, and download tooling.
Connector by ashlrai · GitHub account verified by the MCP Registry
Chalk Labs
Need help deploying webfetch?
Chalk Labs sets up agents like this inside real teams: connected to your tools, tested on your data, with a human in the loop where it matters.
Install
Works with Claude Code, Codex, VS Code, Cursor, Windsurf, Claude Desktop. Read the repository before you give any tool access to your data.
npx agentmarket install connector/ashlrai-webfetch
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this server can do and what it asks for, from its tool list, install config and code. Checked Oct 25, 2026.
- Tools
- 16 read · 1 write · 0 delete · 5 not yet classified
- Secrets
- 5 (API keys, tokens or passwords)
- Install scripts
- None found
- Runs as
- Node.js package
Tools by what they do 22
Read from the source code; the running server may list different tools.
Read 16 · Look things up without changing anything.
analyze_deduplication_qualityaudit_license_consensusbatch_find_similarbatch_find_similar_with_distancescompare_candidatescompute_federation_fallbackextract_image_metadata_auditfetch_with_licensefind_similarget_federation_diagnosticsget_federation_health_reportinspect_cache
Show 4 more tools
provider_recommendationssearch_album_coversearch_artist_imagessearch_images
Write 1 · Create, change, send or run things.
download_image
Not yet classified 5 · We could not tell from the name and description.
batch_cluster_by_phashcompare_phashesexport_cache_for_replayprobe_pagerefine_search_results
Secrets and settings it asks for
Secrets: values you paste in that let it act as you.
BRAVE_API_KEYPEXELS_API_KEYPIXABAY_API_KEYSERPAPI_KEYUNSPLASH_ACCESS_KEY
Network hosts it talks to 2
getwebfetch.com· found in codegithub.com· found in code
Files it touches
- Any path the agent passes to its tools
Tools (22)
Read from the source code; the running server may differ. Descriptions are the server’s own words; hidden characters are shown as [U+…].
analyze_deduplication_qualityAnalyze deduplication quality for a set of ImageCandidates by orchestrating semantic + pHash clustering and surfacing actionable metrics. Returns per-cluster false-positive risk (same hash, different visual — threshold too permissive), false-negative risk (same visual split across clusters — threshold too strict due to compression/alt-source), composite confidence (pHash similarity + metadata similarity), provider diversity, and a recommended threshold. Also generates a flat export-ready metrics table. phashThreshold: maximum Hamming distance (default 8) to merge two candidates. semanticWeight…
audit_license_consensusReconcile licenses across multiple ImageCandidate objects that may represent the same image from different providers (e.g. wikimedia=CC_BY_SA, unsplash=UNSPLASH_LICENSE). Candidates are grouped automatically by pHash proximity (or URL fallback). For each group the tool: (1) computes pairwise Levenshtein similarity on license strings, (2) determines consensus (similarity > 0.85) or flags a conflict, (3) emits a per-provider audit trail with reasoning sourced from licenseAuditTrail when available, (4) returns a composite confidence score that decays with disagreement and low per-candidate confid…
batch_cluster_by_phashCluster a set of ImageCandidates by perceptual similarity using Hamming distance on their pHashes. Candidates are grouped using single-linkage clustering (connect when Hamming distance ≤ hammingThreshold). Within each cluster, the best candidate is promoted to 'representative' — ranked by: license openness (CC0 > CC_BY > … > UNKNOWN), then phash confidence, then image resolution, then provider priority (wikimedia > openverse > unsplash > …). Returns: clusters (sorted largest-first then by top score), clusterMetrics (avgClusterSize, lonelyCount, discardedCount), and dedupeRate (fraction of cand…
batch_find_similarReverse-image-search multiple public image URLs in a single call, across one or more providers (brave, serpapi). Returns per-URL candidate lists with heuristic licenses, deduplicated across providers. Federation-level rate-limit state is checked per-provider per-URL; saturated providers are skipped with a warning rather than blocking the batch. Use when an agent needs to discover similar content for many images at once.
batch_find_similar_with_distancesBatch reverse-image search: given multiple reference image URLs, find visually similar images across providers (brave, serpapi) and return results grouped by perceptual-distance clusters. Clusters: 'exact' (Hamming 0-3), 'near-duplicate' (4-8), 'similar' (9-15), 'loosely-related' (16-25). Within each cluster, candidates are ranked license-first (open > platform > editorial > unknown), then by pHash confidence, then provider quality. Returns per-reference pHash metadata, clusters with ranked candidates, aggregate statistics (band breakdown, median/p90 Hamming distances), and non-fatal warnings.…
compare_candidatesAnalyse a SearchResultBundle for cross-provider duplicates. Runs two detection passes: (1) URL-level — normalised URLs that appear from multiple providers form a 'url' group (confidence 1.0); (2) pHash-level — candidates whose perceptual hashes are within a Hamming distance threshold form 'phash' groups. Returns a structured ProviderDedupeReport: { duplicateGroups: [{members, reason, confidence}], merged }. Use this after search_images or search_artist_images to understand which providers returned the same image, to tune federation provider selection, and to inform cache strategy. hammingThres…
compare_phashesDownload two image URLs, compute structured perceptual hashes for each (DCT pHash via sharp when available, aHash fallback otherwise), and return per-image metadata plus the Hamming distance. `isMatch` is true when distance ≤ 6 (near-duplicate). Use to rank candidates by perceptual stability, choose between fast (aHash) vs accurate (DCT) deduplication, and build confidence-aware deduplication pipelines.
compute_federation_fallbackGiven a FederationRepairPlan (from a prior searchImages call with repairPlan:true) and the detected failure patterns, compute an ordered list of concrete fallback provider substitutions that match the original license policy. Patterns handled: all-unknown-license (switches to providers with structured license metadata, filtered by open-only vs safe-only policy), auth-missing (auto-disables paid/credentialed providers, suggests free alternatives), all-timeout (adds managed-browser opt-in and lower-latency providers), partial-failure (promotes healthy providers, adds backup providers for the fai…
download_imageDownload an image URL (typically from a prior search_images result) to the local disk cache. Streams with a 20MB hard cap, content-type guard, SHA-256 hash, and returns the cached file path. Host blocklist enforced.
export_cache_for_replayExport cached images as a tar archive suitable for CI test fixtures and local-first development. Optionally filter by mimeType prefix (e.g. 'image/jpeg') or ageMs (only include entries younger than this many ms). The tarball can be imported later with importCache / POST /v1/cache/import to restore a deterministic cache state without network calls.
extract_image_metadata_auditExtract embedded metadata (EXIF artist/copyright, XMP dc:creator/dc:rights/cc:license/xmpRights:UsageTerms, IPTC record 2) from downloaded image bytes, cross-check against provider-supplied candidate metadata, and return a full ImageMetadataAuditResult with per-field confidence scores and a conflict resolution log. Input: base64-encoded image bytes (obtain via download_image) + the ImageCandidate used to find the image. Conflict detection: compares embedded vs provider values using Levenshtein similarity. When similarity > 0.8 (near-agreement), fields are merged and confidence is boosted to 0.…
fetch_with_licenseGiven an arbitrary URL (image or webpage), determine its license via host heuristics + page metadata (<link rel=license>, dc.rights, og tags). Set probe: true to also download the bytes. Use when an agent already has a URL and needs a go/no-go decision before shipping.
find_similarReverse-image-search: given a public image URL, find visually similar images. Requires SERPAPI_KEY env var and providers: ['serpapi']. Returns candidates with heuristic licenses — treat results as leads, not shippable.
get_federation_diagnosticsReturns real-time aggregated provider telemetry over a sliding 5-minute window. Shows per-provider avg latency, result counts, error rates, last-success timestamp, and rate-limit bucket state (saturated / nextTokenAt). Use to detect slow/failing providers, spot rate-limit saturation, and optimize provider selection mid-run. windowMs defaults to 5 minutes (300000).
get_federation_health_reportReturns a comprehensive federation health report combining real-time diagnostics with actionable provider recommendations over a sliding 5-minute window. Includes: per-provider health status (healthy/degraded/saturated/unavailable), ranked provider list by composite score (latency_p50, error_rate, throughput), suggested fallbackChain ordered by reliability (excludes saturated/unavailable providers), estimated recovery time from rate-limit buckets, and the full diagnostics dashboard. Use this instead of get_federation_diagnostics when you need both health analysis and routing recommendations in…
Show 7 more tools
inspect_cacheReturn cache statistics (total entries, bytes, content-type breakdown, oldest/newest sha) plus the most recent cache entries. Use to debug cache state, understand what is cached locally, and confirm that prior downloads are available for replay without network calls.
probe_pageGiven a webpage URL, return every <img> on the page with inferred dimensions and a heuristic license per image. Respects robots.txt by default. Use to triage a candidate source page before picking.
provider_recommendationsReturns actionable per-provider recommendations with four enhanced diagnostics surfaces: (1) Comparative performance ranking — narrative insights per provider (e.g. 'Unsplash consistently fastest at p50=120ms; Bing has 15% error rate'). (2) License-coverage heatmap — which providers return the most OPEN vs UNKNOWN results, ranked by openness, based on each provider's known license profile. (3) Per-query-category provider selection advice — e.g. for 'portraits' prioritize wikimedia + spotify; for 'album_art' use musicbrainz-caa + itunes. (4) Cost-benefit analysis — free vs paid tiers, license p…
refine_search_resultsPost-process a SearchResultBundle to identify low-confidence candidates and emit a RefinementPlan. For each low-confidence or UNKNOWN-license candidate the tool assigns one of three actions: 'probe-page' (fetch sourcePageUrl for richer metadata), 'upgrade-provider' (retry with a provider that returns structured license data), or 'fallback-to-open-only' (restrict licensePolicy to eliminate UNKNOWN results). Also returns an ordered upgradePath of licensePolicy changes ranked by expected confidence gain, and lists providers observed to have high confidence for similar queries via federation diagn…
search_album_coverFind canonical album artwork. Uses MusicBrainz Cover Art Archive + iTunes + Spotify. Results are EDITORIAL_LICENSED — safe for album identification UI per platform ToS; always show attribution.
search_artist_imagesSpecialized image search for a musical artist. `kind` selects provider set + query expansion: 'portrait' (Wikimedia + Unsplash + Spotify), 'album' (MusicBrainz CAA + iTunes + Spotify), 'logo' (Wikimedia), 'performing' (Wikimedia + Pexels). Prefer this over `search_images` when building artist/band content.
search_imagesFederated image search across license-aware providers (Wikimedia Commons, Openverse, Unsplash, Pexels, Pixabay, iTunes, MusicBrainz CAA, Spotify, Brave). Returns concise ranked candidates with license + attribution. Does NOT auto-download — call `download_image` after. Default safe-only policy includes open, platform-license, editorial/press tags and rejects UNKNOWN. Use open-only for CC/public-domain only. For large batches, prefer CLI: webfetch batch --jsonl --continue-on-error.
Signals
- Stars
- 3
- Forks
- 0
- Open issues
- 1
- Last commit (this folder)
- Sep 29, 2026 (1 month ago)
- Last release
- May 10, 2026 (5 months ago)
From GitHub (fetched Oct 24, 2026).
Details
- Registry name
io.github.ashlrai/webfetch- Version
- 0.1.5
- Auth
- API key
- Packages
- npm getwebfetch-mcp
- License
- MIT
- Repository
- github.com/ashlrai/webfetch
- Website
- getwebfetch.com
- First seen
- Oct 24, 2026
- Last checked
- Oct 25, 2026
More from ashlrai
- 0.574score
Phantom Secrets
ashlrai
Value-blind secret metadata and gated workflows for AI coding agents through Phantom's local proxy.
ConnectorAFreshness: ALocal★ 18Claude Code +5 - 0.550score
Lexicon
ashlrai
Fixes the names and jargon speech-to-text gets wrong before your agent acts on a dictated prompt.
ConnectorAFreshness: ALocal★ 2↓ 35/wkClaude Code +5
Done for you
Rather not set it up yourself?
Chalk Labs scopes, builds and runs agents for your team: the task audit, the eval harness, the integrations and the weekly ops report. Fixed scope, priced before we start.
See how we build AI agents →Read the case studies
Chalk Labs is a two-founder AI and growth studio. We build AI agents, CRMs and MVPs for Web3 and AI companies, and have shipped 50+ product and token launches.
- launches shipped
- 50+
- launches shipped
- media placements
- 500+
- media placements
- founders on every account
- 2
- founders on every account
Press we've placed: Forbes · CoinDesk · Decrypt · Cointelegraph · The Block
Rahil Jain, Co-founder, Chalk Labs. Ex-Goldman Sachs engineer. You talk to the person who builds it.
Get webfetch running in your business
Tell us what you want to automate. A founder replies within one working day with a plan, not a pitch deck.
Cite this page
webfetch MCP server. Agent Mart. https://agentmart.dev/connectors/ashlrai-webfetch (last updated 2026-10-25)