v1.024 providers · 241 tests · MITLICENSED

webfetch.

The license-first image layer for AI agents and humans. One API, CLI, and MCP that federates 24 licensed sources, falls through to a human-like browser, and always ships attribution.

$ npm i -g @webfetch/cli
~ — webfetchlive
$
drakearchive.com
The OVO Archive
DRAKE.
10 licensed photos · 6 photographers · zero stock filler.
The Come Up Show · CC BY-SA 2.0
The full archive · 10 photos
view all →
Brennan Schnell · CC BY-SA
GabboT · CC BY-SA
musicisentropy · CC BY-SA
Apollo710 · CC BY-SA
musicisentropy · CC BY-SA
Come Up Show · CC BY-SA
Come Up Show · CC BY-SA
Brennan Schnell · CC BY-SA
GabboT · CC BY-SA
Hubert555 · CC BY-SA
11 images · 6 photographers · 100% attributedpowered by webfetch
— claude code in action

One config line. Your agent now fetches licensed images.

mcp__webfetch__* · 6 tools · zero glue code
Claude Code — blog-post-draft.mdmcp: webfetch
M
you
one-line install
claude mcp add webfetch -- npx -y @webfetch/mcp
Also works with Cursor, Cline, Continue, Roo Code, and Codex — same command, different host.
tools your agent gets
  • search_imagesfederated search across 24 providers
  • fetch_imagedownload + write XMP sidecar
  • get_licenseresolve license tag for any URL
  • list_providerscapability + rate introspection
  • search_audiocover art + album metadata
  • attribution_blockship-ready HTML / Markdown caption
— what you do with it

We don't ship URLs. We ship attribution-ready output.

one fetch → three surfaces
essays / notebook

A short history of the night sky

The Starry Night (1889) by Vincent van Gogh — swirling night sky over a village, Public Domain via Wikimedia Commons
The Starry Night (1889) — Vincent van Gogh · Public Domain · via Wikimedia Commons

Long before telescopes, before satellites, before we knew that the smear of light across the summer sky was our own galaxy seen edge-on, people painted what they saw...

Blog post
Ship-ready HTML with figcaption

Attribution lives next to the image, not in a spreadsheet. The sidecar becomes your figcaption.

The Blue Marble — Earth photographed by the Apollo 17 crew in 1972, Public Domain (NASA)
why we go · slide 01

Why we go.

“The Earth is a very small stage in a vast cosmic arena.”
— Carl Sagan
NASA · Apollo 17 · Public Domain
Slide deck
Full-bleed slide with corner credit

Export attribution-safe hero slides from a single MCP call. The credit line is generated, not copy-pasted.

shop · featured
The Hope Diamond — deep-blue 45.52-carat gemstone at the Smithsonian, Public Domain (photo by David Bjorgen, NMNH)

The Hope Diamond

Natural History Museum
LICENSE VERIFIED · PUBLIC DOMAIN
credit: Smithsonian NMNH · David Bjorgen
Product page
Hero image with a verified license badge

E-commerce and marketing pages get a visible license pedigree — no legal-scramble before launch.

— features

Shipping an image used to take an afternoon.

Six failure modes, fixed at the protocol layer.

License-first ranking

Candidates are sorted by license tag (CC0 > PUBLIC_DOMAIN > CC_BY > CC_BY_SA > EDITORIAL), then metadata confidence. UNKNOWN is rejected by default.

24 federated providers

Wikimedia, Openverse, Unsplash, Pexels, Pixabay, NASA, Smithsonian, Met Museum, LOC, iTunes, MusicBrainz CAA, Spotify — one interface.

Human-like browser fallback

When public APIs miss, an opt-in managed browser pulls from Google Images and Pinterest. Every result ships an attribution sidecar.

Native MCP integration

One config line installs into Claude Code, Cursor, Cline, Continue, Roo Code, and Codex. Your agent gets a stable fetch tool it can reason about.

Attribution sidecars

Every download writes an XMP sidecar with license, creator, source, rights, and SHA-256. Audit-ready by default, no extra work.

Privacy-first telemetry

Local runs phone home to nothing. Cloud telemetry is opt-in and pseudonymous. No third-party trackers, ever.

— architecture

One core. One cache. Every surface.

Every surface shares @webfetch/core. The cloud router adds metering, pooled keys, and a managed browser you never have to operate.

surfacescoreprovidersCLIMCPHTTPChrome extVS CodePython SDK@webfetch/corefederation · license rank · dedupe · pHash · cachetypescript · MIT · 241 testsbrowser layerRebrowser · Camoufoxprovider adapters24 sources · normalizedcloud routerauth · quota · meter24 provider endpointswikimedia · openverse · unsplash · pexels · nasa · smithsonian · met · loc · spotify · musicbrainz · brave · bing · serpapi · ...api.getwebfetch.com · app.getwebfetch.com
— providers

24 federated providers.
One ranked stream.

licensed → editorial → opt-in web

Licensed sources rank first. Editorial-licensed sources next. UNKNOWN providers are strictly opt-in and always emit an attribution sidecar.

Every result carries a real license, sourced from a real provider, with a real link back to the original.

CC-BY-SA
wikimedia
generous
CC-BY
openverse
generous
CC0
unsplash
50/hr
CC0
pexels
200/hr
CC0
pixabay
100/min
PUBLIC DOMAIN
nasa
1000/hr
CC0
smithsonian
generous
MIXED
europeana
generous
CC0
met-museum
80/sec
PUBLIC DOMAIN
loc
generous
CC-BY
flickr-cc
3600/hr
PUBLIC DOMAIN
rijksmuseum
10k/day
PUBLIC DOMAIN
nypl
generous
CC0
harvard-art
generous
EDITORIAL
itunes
20/min
EDITORIAL
musicbrainz-caa
1/sec
EDITORIAL
spotify
180/min
EDITORIAL
youtube-thumb
generous
EDITORIAL
bandcamp
generous
EDITORIAL
deezer
50/5sec
UNKNOWN
brave
2k/mo
opt-in
UNKNOWN
bing
3/sec
opt-in
UNKNOWN
serpapi
100/mo
opt-in
UNKNOWN
browser
paid
opt-in
CC0 / PUBLIC DOMAINCC-BY / CC-BY-SA / EDITORIALopt-in — UNKNOWN + sidecar
— comparison

webfetch vs alternatives

Full comparison →
ToolCommercial safe?Aggregates sources?Attribution?MCP native?Self-host option?Browser fallback?Usage-based pricing?
webfetchyesyesyesyesyesyesyes
Google Images (retired API)nonononononono
Unsplash APIyesnopartialnononono
Bing Image Searchpartialnononononoyes
Serper / SerpAPInopartialnononoyesyes

Start free. Pay for the parts you can't build.

OSS unlimited on your machine. Managed browser, pooled keys, and audit logs in the cloud.