webfetch
webfetch
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 |
| |
Homebrew |
| |
Docker |
| |
curl | 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-errorMCP (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:
No conoces la licencia, por lo que no puedes distribuir el resultado de forma segura.
No puedes automatizarlo — cada sitio nuevo significa otra tarde de trabajo.
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.
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 |
|
| no |
pexels | fotografía de stock |
|
| no |
pixabay | fotos de stock + ilustraciones |
|
| 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 |
| no |
youtube-thumb | miniaturas de vídeo | EDITORIAL_LICENSED | — | sí |
brave | búsqueda general de imágenes web | UNKNOWN (+heurística) |
| no |
bing | búsqueda general de imágenes web | UNKNOWN (+heurística) |
| sí |
serpapi | Google Images + búsqueda inversa | UNKNOWN (+heurística) |
| sí |
browser | fallback headless vs images.google.com | UNKNOWN | — | sí |
managed-browser | fallback de navegador gestionado Bright Data | UNKNOWN |
| sí |
flickr | fotografía CC / dominio público | CC_BY (metadatos) |
| no |
internet-archive | medios de archivo de dominio público / CC | PUBLIC_DOMAIN | — | no |
smithsonian | medios de museos de acceso abierto | CC0 |
| 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) |
| 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 |
| no |
burst | fotos de stock de Shopify Burst | CC0 | — | no |
europeana-archival | registros de texto/manuscritos de Europeana | CC_BY (metadatos) |
| sí |
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 |
|
| Términos de Unsplash; no es Creative Commons |
|
| Términos de Pexels; no es Creative Commons |
|
| 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 | sí | no (retirado) | sí | sí |
Metadatos de licencia por resultado | sí | no | sí (una lic) | parcial |
Cubre arte musical editorial | sí | parcial | no | parcial |
Cubre CC / dominio público | sí | no | no | no |
Seguro por defecto (rechaza UNKNOWN) | sí | n/a | n/a | no |
Caché compartida direccionada por contenido | sí | no | no | no |
Línea de atribución preconstruida | sí | no | no | no |
Una línea de configuración MCP para todos los IDE | sí | no | no | no |
Sin coste por consulta en valores predeterminados | sí | n/a | sí | 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 rechazaUNKNOWN.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.txtrespetado 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.
Maintenance
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
- AlicenseAqualityDmaintenanceAn MCP server for searching and retrieving photos from Unsplash with proper attribution, designed for LLMs building content pages.316MIT
- FlicenseNot gradedqualityCmaintenanceEnables semantic image search using CLIP embeddings and visual question answering through MCP tools, allowing natural language interaction with images.
- AlicenseNot gradedqualityCmaintenanceMCP server for searching and retrieving Creative-Commons-licensed images and audio from Openverse. Enables AI agents to query open media content.6MIT
- AlicenseBqualityCmaintenanceMCP server for searching and attributing images from Openverse and Wikimedia Commons, enabling insertion via insertUrl and attribution formatting.2290MIT
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.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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