FaviconDL について
FaviconDLは、ウェブサイトのアイコンを取得するサービスで、画像変換や一括処理にも対応しています。REST API、コマンドラインツール、ローカルMCPサーバーを通じて、エージェントや開発者が利用できます。
主な機能
- 0116~512ピクセルのアイコン取得
- 02直リンクとHTMLスニペットのコピー
- 03画像から各種サイズのアイコンを生成
- 04最大100ドメインの一括処理
- 05画像ファイルまたはJSONメタデータの取得
活用シーン
- 01プロジェクト用にサイトのアイコンURLを取得
- 02アップロード画像からfavicon素材を作成
- 03複数ドメインのアイコンを収集
MCP 対応
ローカルstdio MCPサーバーを備え、extract_faviconツールからFaviconDL APIを呼び出せます。独立してデプロイするリモートMCPサーバーではありません。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Mzu favicondl - 即时网站图标获取器
https://favicondl.com — 免费、快速、零成本的网站图标工具
输入网址/域名 → 抓取并下载 favicon,也可当作网站 logo 图标使用。附带图片转 favicon 工具、SEO 博客自动发布系统,支持 5 种语言。
🌟 功能特点
主页 - Favicon Extractor / Downloader
- ✅ 输入任意域名/网址,即时预览网站图标
- ✅ 支持 16 到 512 像素的尺寸偏好
- ✅ 一键复制 Direct URL 与 HTML 代码片段
- ✅ 支持图片下载、JSON 元数据和 302 重定向模式
- ✅ 对强保护站点支持安全的候选图标与代理兜底
- ✅ 默认启用 Cloudflare Worker:HTML、SVG、manifest、Apple Touch Icon 多级发现
工具页面 - 图片转 Favicon
- ✅ 拖拽上传图片(支持 PNG、JPG、SVG、GIF、WebP)
- ✅ 自动生成多种标准尺寸(16×16 ~ 512×512)
- ✅ ZIP 打包下载(包含所有尺寸 + manifest.json + HTML 代码)
- ✅ 单个尺寸独立下载
- ✅ 批量获取多网站 Favicon(最多 100 个域名)
- ✅ PNG / JPG / ICO 格式互转 + 自定义尺寸
🌐 多语言支持(i18n)
- ✅ 5 种语言:English、中文、日本語、한국어、Español
- ✅ URL 路径路由(
/zh/、/ja/、/ko/、/es/) - ✅ 语言切换下拉菜单 + Twemoji 国旗图标
- ✅ hreflang SEO 标签(所有页面自动生成)
- ✅
i18n/build.js一键构建所有语言版本
📝 博客自动发布系统
- ✅ AI 生成文章:NVIDIA NIM(OpenAI 兼容接口)生成 5 语言元数据(标题/描述/CTA)+ 五国语言正文
- ✅ GitHub Actions 自动化:每天 UTC 00:00 自动生成 + i18n 构建 + commit & push
- ✅ 关键词队列:
blog/queue.json管理待发布关键词 - ✅ 8 维度质量评分:词数/代码示例/FAQ/内链/AI套话/标题/列表/多语言平衡 → A/B/C 自动评级
- ✅ 多模型降级:Qwen 3.5 122B → DeepSeek V4 Flash(NVIDIA NIM)
- ✅ 飞书通知:每日发布结果 + 质量评级推送到飞书群
- ✅ IndexNow 推送:自动通知 Google/Bing 抓取新页面
📊 数据分析
- ✅ Google Analytics(G-7QLC8QV609)全站部署
🛠️ 技术栈
| 类别 | 技术 |
|---|---|
| 前端 | HTML5 + CSS3 + JavaScript (ES6+) |
| 样式 | Tailwind CSS (CDN) |
| 动画 | Anime.js |
| 图片处理 | Canvas API(纯前端) |
| ZIP 打包 | JSZip(按需加载) |
| 图标发现/代理 | Cloudflare Worker 多级发现与安全图片代理 |
| Agent 接入 | REST API + OpenAPI + llms.txt + CLI |
| MCP | 本地 stdio MCP Server(mcp/server.mjs) |
| i18n 构建 | Node.js + Cheerio |
| 博客生成 | NVIDIA NIM(OpenAI 兼容 API) |
| CI/CD | GitHub Actions |
| 数据分析 | Google Analytics 4 |
💰 成本分析
| 项目 | 方案 | 成本 |
|---|---|---|
| 托管 | Vercel 静态部署 | $0 |
| Favicon API | Vercel Function + Cloudflare Worker | $0 |
| 图片处理 | 前端 Canvas | $0 |
| CDN/代理 | Cloudflare Worker 免费额度 | $0 |
| AI 文章 | NVIDIA NIM(按当前账户额度) | 按用量 |
| 数据分析 | Google Analytics 4 | $0 |
| 总计 | $0/月 |
📁 项目结构
favicon/
├── index.html # 主页 - Favicon 获取器
├── tools.html # 工具页面(图片转换/批量处理)
├── documentation.html # API 文档页面
├── privacy.html # 隐私政策
├── 404.html # 404 错误页面
├── main.js # 主页 JavaScript
├── tools.js # 工具页 JavaScript
├── cloudflare-worker.js # Cloudflare Worker 源码(单独部署)
├── sitemap.xml # 站点地图
├── robots.txt # 爬虫指引
│
├── i18n/ # 多语言构建系统
│ ├── build.js # i18n 构建脚本(生成 zh/ja/ko/es 页面)
│ ├── translations.js # 翻译字典(5 语言)
│ └── package.json
│
├── blog/ # 博客系统
│ ├── index.html # 博客首页
│ ├── blog.css # 博客样式
│ ├── blog.js # 博客 JS(语言切换/下拉菜单)
│ ├── *.html # 各篇博客文章(英文源文件)
│ ├── articles.json # 文章索引(标题/描述/日期,5 语言)
│ ├── queue.json # 关键词发布队列
│ └── scripts/
│ ├── generate-article.js # AI 文章生成脚本(NVIDIA NIM API)
│ └── package.json
│
├── zh/ # 中文页面(i18n build 自动生成)
├── ja/ # 日本語页面
├── ko/ # 한국어页面
├── es/ # Español 页面
│
├── .github/workflows/
│ └── daily-blog.yml # GitHub Actions:每日自动生成博客
├── favicondl.ps1 # Windows PowerShell CLI 下载器
├── favicondl.sh # Linux/macOS Bash CLI 下载器
├── SKILL.md # Agent/OpenClaw skill canonical source
├── mcp/ # 本地 MCP Server(extract_favicon)
│ ├── server.mjs
│ ├── package.json
│ └── README.md
│
└── favicons/ # 网站自身的 favicon 资源
🚀 部署方式
方式 1: Vercel(当前部署方式)
- 将项目连接到 GitHub
- 在 Vercel 导入仓库
- 之后每次 push 到
main自动部署
Cloudflare Worker 需要在 Cloudflare 控制台单独发布 cloudflare-worker.js。
方式 2: 本地运行
npx serve .
# 或
python -m http.server 8080
📖 使用说明
获取网站 Favicon
- 在主页输入框输入域名(如
google.com) - 系统自动获取并显示图标预览
- 点击"复制"获取 URL 或 HTML 代码
- 点击"下载图标"保存到本地
图片转 Favicon
- 进入"工具"页面 → "图片转 Favicon"
- 拖拽或选择图片上传
- 选择需要的尺寸
- 点击"下载 ZIP 包"获取所有文件
i18n 多语言构建
cd i18n
npm install
node build.js
会读取英文源文件 + translations.js 字典,自动生成 /zh/、/ja/、/ko/、/es/ 下的所有页面(含博客)。
博客文章生成
cd blog/scripts
npm install
NVIDIA_API_KEY=your_key node generate-article.js
从 queue.json 取下一个关键词,调用 NVIDIA NIM 生成 5 语言文章,输出 HTML + 更新 articles.json + sitemap.xml。需要设置 NVIDIA_API_KEY 环境变量。
GitHub Actions 每天 UTC 00:00 自动执行上述流程 + i18n 构建 + commit & push。
🔧 API 说明
Agent 统一接口(推荐)
GET https://favicondl.com/api/extract?url={域名或网址}&size={尺寸}
size 可选,范围 16–512(例如 16、32、64、128、256、512),超出范围会夹到这个区间。传入之后,跟随 302 得到的图片是恰好该边长的正方形 PNG。省略 size 则返回网站上的原始文件,已有调用不会被改成缩放图。
比原图更大的位图会用高质量重采样放大,可能发虚;SVG 会按请求尺寸栅格化。响应头 X-Favicon-Native-Size、X-Favicon-Upscaled,以及 JSON 里的 nativeWidth、nativeHeight、upscaled,用来说明原图尺寸。放大结果不会被说成清晰原图。
需要来源和候选地址时,增加 format=json。iconUrl 仍是网站上的原始文件;设置了 size 时,proxyUrl 才是那个精确尺寸的 PNG。
GET https://favicondl.com/api/extract?url=github.com&size=32&format=json
GET https://favicondl.com/api/extract?url=wikipedia.org&format=json
接口会按优先级发现 HTML 图标、SVG、Apple Touch Icon、Web Manifest 和其他安全候选,选出最大的可用源图,再按需缩放,并通过受保护的图片代理返回。部署在 Vercel Node Functions 上(sharp 做重采样)。项目提供 REST API、OpenAPI、llms.txt、CLI,以及一个调用该 API 的本地 stdio MCP Server。它不是需要单独部署的远程 MCP 服务。
CLI 下载
.\\favicondl.ps1 -Domain "github.com" -Size 128
./favicondl.sh github.com 128
完整 Agent 说明见 SKILL.md、llms.txt 和 openapi.yaml。支持 MCP 的客户端可参考 mcp/README.md 配置本地 extract_favicon 工具。CLI 默认会带上 size=128,因此得到的是 128×128 PNG;要 32 像素就传入 32。
📝 更新日志
v1.5.0 (2026-10-20)
- ✅ リクエストに応じて
sizeの正確なサイズを返します:16~512(32を含む)では、ちょうど N×N の PNG が返されます。縮小には Lanczos、拡大には高品質なリサンプリングを使用し、正方形でない画像には透明な余白を追加します。SVG は指定サイズでラスタライズされます。sizeを省略した場合は、元のファイルが返されます。 - ✅ 元画像のサイズを明示:JSON に
nativeWidth、nativeHeight、upscaled、outputWidth、outputHeightが追加されます。画像レスポンスにはX-Favicon-Native-SizeとX-Favicon-Upscaledが付加されます。拡大されたビットマップを、鮮明な元画像であるかのように説明することはありません。 - ✅ ホームページのプレビュー:元のサイズを表示します。書き出しサイズが元画像より大きい場合は、簡潔な注意書きを表示します。
v1.4.1 (2026-06-14)
- ✅ ブログのキーワード在庫を補充:
blog/queue.jsonにpendingキーワードを30個追加し、毎日の自動公開を再開しました。 - ✅ Feishu の在庫 0 件通知を調査:Feishu 通知は GitHub のリモートリポジトリの状態を参照します。リモートのキューがすべて
doneになると、「残り 0 件」という通知が継続して表示されます。ローカルでgit pullをすぐに実行しないと、古いpending状態が表示され、誤判定につながることがあります。 - ✅ 今後のメンテナンスに関する提案:「キーワードを使い切りました」という通知を受け取ったら、まずリモートの最新コードを同期し、
blog/queue.jsonのpending数を確認してください。キーワードを補充した後、GitHub にコミットしてプッシュすると、自動タスクが再開されます。 - ✅ データに基づくキーワード拡張:RealFaviconGenerator、Favicon.io、Next.js の公式ドキュメント、Wix/Squarespace のヘルプドキュメント、Shopify/Squarespace のユーザーコミュニティ、SEOptimer のトラブルシューティング情報をもとに、関連性の高い
pendingキーワードをさらに50個追加しました。調査記録はblog/keyword-research.mdをご覧ください。
v1.4.0 (2026-03-10)
- ✅ 8 項目の品質評価:記事の品質を自動評価(A/B/C 評価)し、評価記録を articles.json に保存します。
- ✅ モデルをアップグレード:主力モデルを Gemini 3.1 Flash Lite にアップグレードしました(速度は64%向上、品質は同等)。
- ✅ Feishu 通知をアップグレード:毎日の通知に記事の品質評価とスコアが含まれるようになりました。
- ✅ IndexNow の自動送信:公開後、Google/Bing にクロールを積極的に通知します。
- ✅ 多言語の徹底したローカライズ:AI プロンプトを直訳から文化に合わせたリライトにアップグレードしました。
- ✅ AI らしい定型文を排除:20 件以上の定型表現のブラックリストと、中国語・英語の両言語による検出を導入しました。
v1.3.0 (2026-02-12)
- ✅ 5 言語に対応:日本語、韓国語、スペイン語を追加(URL パスによるルーティング)。
- ✅ i18n ビルドシステム:
i18n/build.jsで80以上の多言語ページを一括生成します。 - ✅ ブログの AI 生成を拡張:1 回の Gemini API 呼び出しで、5 言語のメタデータを出力します。
- ✅ GitHub Actions を最適化:記事の生成後に i18n build を自動実行します。
- ✅ Google Analytics をサイト全体に導入(G-7QLC8QV609)
- ✅ ブログの言語切り替えを修正(CSS/JS +キャッシュバージョン v=20260211)
- ✅ hreflang タグの重複を解消(ビルドの冪等性)
- ✅ アイコン読み込みのバグを修正(未定義変数 toTry/fallbackSources)
v1.2.0 (2026-02)
- ✅ 言語切り替え UI を製品レベルに改善:ドロップダウンメニュー+Twemoji の国旗画像
- ✅ ページをまたぐ言語設定の保持を修正(グローバル click インターセプター+localStorage/URL の二重経路)
- ✅ キャッシュ回避機能を導入(JS ファイルにバージョンパラメーターを追加)
- ✅ SEO を強化:OG タグ、Twitter Card、canonical URL、robots.txt、sitemap.xml
- ✅ サイトの favicon(SVG)を追加
- ✅ プライバシーポリシーページと 404 エラーページを追加
v1.1.0 (2026-01)
- ✅ Cloudflare Worker のアイコン検出を最適化(候補数の上限+早期停止戦略)
- ✅ 一括 ZIP ダウンロードの CORS 問題を修正(Worker プロキシ経由)
- ✅ アイコンカードの垂直方向の中央揃えを改善
- ✅ 一括処理の命名パターン(ドメイン/インデックス)
v1.0.0 (2024-12)
- ✅ ホームページでの Favicon 取得機能を完成
- ✅ 画像から Favicon への変換ツールを完成
- ✅ 一括処理+ZIP 圧縮を完成
- ✅ manifest.json/HTML コードの生成を完成
📄 ライセンス
MIT License
🙏 謝辞
- Cloudflare Worker - Favicon の検出および保護された画像のプロキシ
- NVIDIA NIM - AI による記事生成
- Tailwind CSS - CSS フレームワーク
- Anime.js - アニメーションライブラリ
- JSZip - ZIP 生成ライブラリ
- Cheerio - HTML 解析(i18n ビルド)
- Twemoji - 国旗の絵文字アイコン
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。