VOOZH about

URL: https://glama.ai/mcp/servers/ashlrai/webfetch?locale=zh-CN

⇱ webfetch by ashlrai | Glama


webfetch

👁 npm version
👁 CI
👁 License: MIT
👁 Discord
👁 GitHub stars

面向 AI 智能体和人类的“许可优先”图像层。

一个 MCP 服务器、一个 CLI 和一个 HTTP 服务器,可联合 25 个图像提供商,按许可优先对结果进行排名,并默认拒绝 UNKNOWN(未知)结果。任何支持 MCP 的智能体(Claude Code、Cursor、Cline、Continue、Roo Code、Codex)只需一行配置即可连接。着陆页、定价和托管服务请访问 getwebfetch.com

安装

平台

一行命令

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

curl | bash 安装程序还会幂等地将 webfetch 写入 Claude Code 的 ~/.claude/settings.json 中。随时重新运行即可更新。

Related MCP server: Wikimedia-Search-Images

30 秒上手

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(在任何支持 MCP 的智能体内部使用):

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

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);
}

解决的问题

手动获取图像有四种失败模式:

  1. 你不知道许可协议,因此无法安全地发布结果。

  2. 无法脚本化 —— 每增加一个新网站都需要耗费一下午时间。

  3. Google 图像搜索 API 已停用;爬虫技术脆弱且处于服务条款的灰色地带。

  4. 没有共享缓存 —— 你会重复下载同一个文件数十次。

webfetch 通过联合具有稳定条款和结构化许可元数据的直接来源 API,按许可优先对候选结果进行排名,并将结果作为单个 MCP 工具公开,从而解决了上述所有四个问题。

提供商

提供商

覆盖范围

默认许可

认证

可选

wikimedia

人像、活动、Logo、历史

CC_BY_SA (元数据)

openverse

任何 CC 许可内容

CC_BY (元数据)

unsplash

高质量摄影

UNSPLASH_LICENSE

UNSPLASH_ACCESS_KEY

pexels

图库摄影

PEXELS_LICENSE

PEXELS_API_KEY

pixabay

图库照片 + 插图

PIXABAY_LICENSE

PIXABAY_API_KEY

itunes

专辑封面、艺术家肖像

EDITORIAL_LICENSED

musicbrainz-caa

规范专辑封面

EDITORIAL_LICENSED

spotify

艺术家 + 专辑图片

EDITORIAL_LICENSED

SPOTIFY_CLIENT_ID/SECRET

youtube-thumb

视频缩略图

EDITORIAL_LICENSED

brave

通用网页图像搜索

UNKNOWN (+启发式)

BRAVE_API_KEY

bing

通用网页图像搜索

UNKNOWN (+启发式)

BING_API_KEY

serpapi

Google 图片 + 反向搜索

UNKNOWN (+启发式)

SERPAPI_KEY

browser

无头浏览器回退 vs images.google.com

UNKNOWN

managed-browser

Bright Data 托管浏览器回退

UNKNOWN

BRIGHTDATA_API_TOKEN

flickr

CC / 公有领域摄影

CC_BY (元数据)

FLICKR_API_KEY

internet-archive

公有领域 / CC 存档媒体

PUBLIC_DOMAIN

smithsonian

开放获取博物馆媒体

CC0

SMITHSONIAN_API_KEY

nasa

NASA 影像

PUBLIC_DOMAIN

met-museum

大都会博物馆开放获取

CC0

europeana

欧洲文化遗产

CC_BY (元数据)

EUROPEANA_API_KEY

library-of-congress

美国历史档案

PUBLIC_DOMAIN

wellcome-collection

医学/历史影像

CC_BY (元数据)

rawpixel

CC0 图库切片

CC0

RAWPIXEL_API_KEY 可选

burst

Shopify Burst 图库照片

CC0

europeana-archival

Europeana 文本/手稿记录

CC_BY (元数据)

EUROPEANA_API_KEY

请参阅 docs/PROVIDERS.md 了解注意事项和速率限制,参阅 docs/PROVIDER_TUNING.md 了解针对不同用例的选择。

本地和云端模式

CLI 优先采用本地模式:默认情况下 webfetch searchartistalbumdownloadprobelicensebatch 会在进程内调用 webfetch-core 并使用你环境中的提供商 API 密钥。传递 --cloud 或设置 WEBFETCH_MODE=cloud 即可使用 WEBFETCH_API_KEYwebfetch config set apiKey wf_live_... 调用 https://api.getwebfetch.com/v1/*

当你需要直接调用提供商并使用本地缓存时,请使用本地模式。当你需要托管认证、共享提供商密钥池、托管浏览器回退、使用统计或团队控制时,请使用云端模式。

为什么选择“许可优先”

我们默认拒绝的唯一结果是无法证明其合法性的图像。对于需要无需人工审核即可发布的工作流而言,一张许可不明但质量稍好的照片毫无价值。相关性很容易判断,但来源证明则不然。

排序逻辑为:许可标签 -> 元数据置信度 -> 分辨率 -> 提供商优先级UNKNOWN 默认被拒绝(根据伯尔尼公约:除非另有证明,否则大多数网络内容均为版权所有)。请参阅 docs/LICENSE_POLICY.md

迁移:CC0 图库提供商

旧版 webfetch 将 Unsplash、Pexels 和 Pixabay 视为 CC0。当前版本明确公开了它们的平台条款:

旧标签

新标签

检查内容

CC0 来自 Unsplash

UNSPLASH_LICENSE

Unsplash 条款;非知识共享 (Creative Commons)

CC0 来自 Pexels

PEXELS_LICENSE

Pexels 条款;非知识共享

CC0 来自 Pixabay

PIXABAY_LICENSE

Pixabay 条款;非知识共享

大多数调用者应保持 licensePolicy: "safe-only",因为它仍然允许开放、平台许可、编辑和新闻稿类别,同时拒绝 UNKNOWN。仅需要知识共享或公有领域资产的工作流应使用 licensePolicy: "open-only" 并更新类型守卫以分别处理这三个平台标签。

webfetch 与替代方案对比

功能

webfetch

原生 Google 图片

仅 Unsplash

Bing CSE

可通过 API 脚本化

否 (已停用)

每个结果的许可元数据

是 (单一许可)

部分

覆盖编辑类音乐艺术

部分

部分

覆盖 CC / 公有领域

默认安全 (拒绝 UNKNOWN)

不适用

不适用

共享内容寻址缓存

内置归属权行

所有 IDE 共享一行 MCP 配置

默认情况下无单次查询成本

不适用

架构

 +------------------+
 | 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|
 +-------------------------------------------+

所有界面共享 ~/.webfetch/cache/,并以 SHA-256 为键,因此从 CLI 下载的内容可立即供 MCP 服务器使用,反之亦然。

安全默认设置

  • licensePolicy: "safe-only" — 允许开放、平台许可和编辑/新闻类别;拒绝 UNKNOWN

  • safeSearch: "strict"

  • 可选提供商(youtube-thumbbingserpapibrowsermanaged-browsereuropeana-archival)默认关闭。

  • 每次下载上限 20 MB,内容类型守卫,主机黑名单。

  • 在通用页面探测时遵守 robots.txt

路线图

  • webfetch watch — 用于重复查询/增量刷新的守护进程模式。

  • 自带提供商插件 API。

  • getwebfetch.com 托管层 — 提供商密钥池、托管浏览器回退、团队使用仪表板。

贡献

欢迎提交 Issue 和 PR。运行 bun install && bun test 即可开始。请参阅 docs/ 获取各领域的参考文档。

许可

MIT。

A
license - permissive license
A
quality
A
maintenance

Maintenance

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

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