Skip to main content
Glama
ashlrai
by ashlrai

webfetch

npm version CI License: MIT Discord GitHub stars

La capa de imágenes centrada en licencias para agentes de IA y humanos.

Un servidor MCP, una CLI y un servidor HTTP que se federan a través de 25 proveedores de imágenes, clasifican los resultados priorizando las licencias y rechazan los resultados UNKNOWN por defecto. Cualquier agente que hable MCP (Claude Code, Cursor, Cline, Continue, Roo Code, Codex) se conecta con una sola línea de configuración. La página de inicio, los precios y el uso alojado se encuentran en getwebfetch.com.

Instalación

Superficie

Comando único

npm

npm i -g getwebfetch

Homebrew

brew tap ashlrai/webfetch && brew install webfetch

Docker

docker run --rm ghcr.io/ashlrai/webfetch cli help

curl

bash

curl -fsSL https://raw.githubusercontent.com/ashlrai/webfetch/main/install/install.sh | bash

El instalador curl | bash también conecta webfetch al archivo ~/.claude/settings.json de Claude Code de forma idempotente. Ejecútalo de nuevo en cualquier momento para actualizar.

Related MCP server: Multimodal MCP

Uso en 30 segundos

CLI:

webfetch search "drake portrait" --limit 5
webfetch artist "Taylor Swift" --kind portrait --min-width 1200
webfetch download <url> --out ./portrait.jpg
printf "drake portrait\nradiohead album\n" | webfetch batch --jsonl --continue-on-error

MCP (desde dentro de cualquier agente que hable MCP):

search_images({ query: "drake portrait", limit: 5 })
search_artist_images({ artist: "Taylor Swift", kind: "portrait" })
download_image({ url: "..." })

Biblioteca TypeScript:

import { searchArtistImages, pickBest, downloadImage } from "webfetch-core";

const { candidates } = await searchArtistImages("Drake", "portrait");
const best = pickBest(candidates, { minWidth: 1200 });
if (best) {
  const { cachedPath, sha256 } = await downloadImage(best.url);
  console.log(best.attributionLine, "->", cachedPath);
}

Qué problema resuelve

Obtener una imagen manualmente tiene cuatro modos de fallo:

  1. No conoces la licencia, por lo que no puedes distribuir el resultado de forma segura.

  2. No puedes automatizarlo — cada sitio nuevo significa otra tarde de trabajo.

  3. La API de búsqueda de imágenes de Google está retirada; el scraping es frágil y roza los límites de los Términos de Servicio.

  4. No hay caché compartida — descargas el mismo archivo docenas de veces.

webfetch soluciona los cuatro problemas federando a través de APIs de fuentes directas que tienen términos estables y metadatos de licencia estructurados, clasificando los candidatos priorizando la licencia y exponiendo el resultado como una única herramienta MCP.

Proveedores

Proveedor

Cubre

Licencia por defecto

Autenticación

¿Opcional?

wikimedia

retratos, eventos, logotipos, historia

CC_BY_SA (metadatos)

no

openverse

cualquier contenido con licencia CC

CC_BY (metadatos)

no

unsplash

fotografía de alta calidad

UNSPLASH_LICENSE

UNSPLASH_ACCESS_KEY

no

pexels

fotografía de stock

PEXELS_LICENSE

PEXELS_API_KEY

no

pixabay

fotos de stock + ilustraciones

PIXABAY_LICENSE

PIXABAY_API_KEY

no

itunes

portadas de álbumes, retratos de artistas

EDITORIAL_LICENSED

no

musicbrainz-caa

arte de álbum canónico

EDITORIAL_LICENSED

no

spotify

imágenes de artista + álbum

EDITORIAL_LICENSED

SPOTIFY_CLIENT_ID/SECRET

no

youtube-thumb

miniaturas de vídeo

EDITORIAL_LICENSED

brave

búsqueda general de imágenes web

UNKNOWN (+heurística)

BRAVE_API_KEY

no

bing

búsqueda general de imágenes web

UNKNOWN (+heurística)

BING_API_KEY

serpapi

Google Images + búsqueda inversa

UNKNOWN (+heurística)

SERPAPI_KEY

browser

fallback headless vs images.google.com

UNKNOWN

managed-browser

fallback de navegador gestionado Bright Data

UNKNOWN

BRIGHTDATA_API_TOKEN

flickr

fotografía CC / dominio público

CC_BY (metadatos)

FLICKR_API_KEY

no

internet-archive

medios de archivo de dominio público / CC

PUBLIC_DOMAIN

no

smithsonian

medios de museos de acceso abierto

CC0

SMITHSONIAN_API_KEY

no

nasa

imágenes de la NASA

PUBLIC_DOMAIN

no

met-museum

Acceso abierto del Met

CC0

no

europeana

patrimonio cultural europeo

CC_BY (metadatos)

EUROPEANA_API_KEY

no

library-of-congress

archivo histórico de EE. UU.

PUBLIC_DOMAIN

no

wellcome-collection

imágenes médicas/históricas

CC_BY (metadatos)

no

rawpixel

sección de stock CC0

CC0

RAWPIXEL_API_KEY opcional

no

burst

fotos de stock de Shopify Burst

CC0

no

europeana-archival

registros de texto/manuscritos de Europeana

CC_BY (metadatos)

EUROPEANA_API_KEY

Consulta docs/PROVIDERS.md para conocer las limitaciones, límites de tasa y docs/PROVIDER_TUNING.md para elegir según el caso de uso.

Modos local y en la nube

La CLI es local-first: por defecto webfetch search, artist, album, download, probe, license y batch llaman a webfetch-core en el proceso y utilizan las claves de API de los proveedores desde tu entorno. Pasa --cloud o establece WEBFETCH_MODE=cloud para llamar a https://api.getwebfetch.com/v1/* con WEBFETCH_API_KEY o webfetch config set apiKey wf_live_....

Usa el modo local cuando quieras llamadas directas al proveedor y una caché local. Usa el modo en la nube cuando quieras autenticación alojada, claves de proveedor agrupadas, fallback de navegador gestionado, contabilidad de uso o controles de equipo.

Por qué priorizar la licencia

El único resultado que rechazamos por defecto es una imagen que no podemos justificar. Una foto marginalmente mejor bajo una licencia desconocida no tiene valor para un flujo de trabajo que necesita publicarse sin revisión humana. Los empates en relevancia son fáciles de resolver; la procedencia no.

El clasificador ordena por: etiqueta de licencia -> confianza de metadatos -> resolución -> prioridad del proveedor. UNKNOWN se rechaza por defecto (Convención de Berna: la mayor parte de la web tiene todos los derechos reservados a menos que se demuestre lo contrario). Consulta docs/LICENSE_POLICY.md.

Migración: proveedores de stock CC0

Las versiones anteriores de webfetch trataban a Unsplash, Pexels y Pixabay como CC0. Las versiones actuales exponen sus términos de plataforma explícitamente:

Etiqueta antigua

Etiqueta nueva

Qué comprobar

CC0 de Unsplash

UNSPLASH_LICENSE

Términos de Unsplash; no es Creative Commons

CC0 de Pexels

PEXELS_LICENSE

Términos de Pexels; no es Creative Commons

CC0 de Pixabay

PIXABAY_LICENSE

Términos de Pixabay; no es Creative Commons

La mayoría de los usuarios deberían mantener licensePolicy: "safe-only" porque sigue permitiendo categorías abiertas, de plataforma, editoriales y de kit de prensa, mientras rechaza UNKNOWN. Los flujos de trabajo que solo requieren activos de Creative Commons o de dominio público deben usar licensePolicy: "open-only" y actualizar los protectores de tipo para manejar las tres etiquetas de plataforma por separado.

webfetch vs alternativas

Capacidad

webfetch

Google Images original

Solo Unsplash

Bing CSE

Programable vía API

no (retirado)

Metadatos de licencia por resultado

no

sí (una lic)

parcial

Cubre arte musical editorial

parcial

no

parcial

Cubre CC / dominio público

no

no

no

Seguro por defecto (rechaza UNKNOWN)

n/a

n/a

no

Caché compartida direccionada por contenido

no

no

no

Línea de atribución preconstruida

no

no

no

Una línea de configuración MCP para todos los IDE

no

no

no

Sin coste por consulta en valores predeterminados

n/a

no

Arquitectura

                             +------------------+
                             |  webfetch-core  |
                             |  (ranker, cache, |
                             |   license coerce)|
                             +---------+--------+
                                       |
          +----------------+-----------+-----------+----------------+
          |                |                       |                |
  +-------v------+  +------v-------+       +-------v------+  +------v-------+
  | webfetch     |  | webfetch-mcp |       | webfetch-    |  | browser      |
  | CLI          |  | (stdio)      |       | server (HTTP)|  | extensions   |
  +-------+------+  +------+-------+       +-------+------+  +------+-------+
          |                |                       |                |
          |                |                       |                |
          +----------------+-----------+-----------+----------------+
                                       |
                 +---------------------v---------------------+
                 |              provider adapters            |
                 |  wikimedia  openverse  unsplash  pexels    |
                 |  pixabay    itunes     mb-caa    spotify   |
                 |  youtube    brave      bing      serpapi   |
                 |  flickr     nasa       met       europeana |
                 |  loc        wellcome   rawpixel  burst     |
                 |  browser + managed-browser + archival opt-in|
                 +-------------------------------------------+

Cada superficie comparte ~/.webfetch/cache/ indexada por SHA-256, por lo que una descarga desde la CLI está disponible instantáneamente para el servidor MCP y viceversa.

Valores predeterminados de seguridad

  • licensePolicy: "safe-only" — se permiten categorías abiertas, de licencia de plataforma y editoriales/prensa; se rechaza UNKNOWN.

  • safeSearch: "strict".

  • Proveedores opcionales (youtube-thumb, bing, serpapi, browser, managed-browser, europeana-archival) desactivados por defecto.

  • Límite de 20 MB por descarga, protección de tipo de contenido, lista de bloqueo de hosts.

  • robots.txt respetado en sondeos de páginas genéricas.

Hoja de ruta

  • webfetch watch — modo demonio para consultas repetidas / actualización incremental.

  • API de plugins para traer tu propio proveedor.

  • Nivel alojado en getwebfetch.com — claves de proveedor agrupadas, fallback de navegador gestionado, panel de control de uso del equipo.

Contribución

Las incidencias y PR son bienvenidas. Ejecuta bun install && bun test para empezar. Consulta docs/ para obtener documentación de referencia por área.

Licencia

MIT.

Install Server
A
license - permissive license
A
quality
A
maintenance

Maintenance

Maintainers
Response time
Release cycle
1Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • A
    license
    A
    quality
    D
    maintenance
    An MCP server for searching and retrieving photos from Unsplash with proper attribution, designed for LLMs building content pages.
    3
    16
    MIT
  • F
    license
    Not graded
    quality
    C
    maintenance
    Enables semantic image search using CLIP embeddings and visual question answering through MCP tools, allowing natural language interaction with images.
  • A
    license
    Not graded
    quality
    C
    maintenance
    MCP server for searching and retrieving Creative-Commons-licensed images and audio from Openverse. Enables AI agents to query open media content.
    6
    MIT
  • A
    license
    B
    quality
    C
    maintenance
    MCP server for searching and attributing images from Openverse and Wikimedia Commons, enabling insertion via insertUrl and attribution formatting.
    2
    290
    MIT

View all related MCP servers

Related MCP Connectors

  • Multi-engine search for AI agents. Trust scoring, local corpus, MCP-native. Self-hostable, BYOK.

  • Licensed, rights-cleared content for AI agents - verifiable license keys + EU AI Act attestation.

  • OCR, transcription, file extraction, and image generation for AI agents via MCP.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/ashlrai/webfetch'

If you have feedback or need assistance with the MCP directory API, please join our Discord server