mcpField
L
lovstudio-find-logo

lovstudio-find-logo

github.com/lovstudio设计与 UI7376 次安装今天更新
代码仓库

关于 lovstudio-find-logo

面向设计工作的 Logo 收集技能,可通过品牌名称或 URL 检索 Clearbit 及网站元数据或图标中的候选图像,评分后归档主 Logo 和备选项。它提供命令行脚本,并在元数据中记录来源和图像信息。

主要功能

  1. 01按名称或 URL 查找 Logo
  2. 02按格式和尺寸为候选项评分
  3. 03归档主 Logo 与备选项
  4. 04提供便于命令串接的 JSON 输出
  5. 05记录来源和图像信息的元数据

适用场景

  1. 01为幻灯片或海报收集 Logo
  2. 02制作合作伙伴或媒体 Logo 栏
  3. 03从品牌 URL 获取 Logo

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/lovstudio/skills --skill lovstudio-find-logo

安装后在 Claude Code 中输入/lovstudio-find-logo确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

.gitignore
CHANGELOG.md
README.md
scripts/
find_logo.py

详细介绍

find-logo — 收集品牌标志,优先选择宽幅、透明的标志

接收品牌名称或 URL,查询 Clearbit 和网站自身的 og:image / <link rel=icon> / favicon,为每个候选项评分,并将最佳候选项 以及几个备选项归档到配置的收集目录中。

适用场景

  • 用户要求为幻灯片、海报或网站品牌展示收集一个或多个品牌标志
  • 用户提到要放入合作伙伴/媒体展示栏的公司
  • 用户提供 URL,并希望获取其标志文件

工作流程(必须遵循)

第 1 步:识别每个品牌

名称和 URL 可以混合提供。如果用户只提供名称,且无法明显判断域名,请先询问,不要擅自猜测 .com(脚本会尝试猜测,但对于非美国品牌或名称有歧义的品牌,这种做法会失败)。

在以下情况下使用 AskUserQuestion:

  • 品牌名称有歧义(例如,“Apple”可能指水果,也可能指 Inc.)
  • 未提供 URL,且无法猜测域名(xAI → x.ai,而不是 xai.com)
  • 用户提供了不带 URL 的列表
第 2 步:获取资源——每次调用处理一个品牌
python3 scripts/find_logo.py --name "Anthropic" --url https://anthropic.com --json

批量处理时循环调用;脚本对每个 <slug>/ 都是幂等的(重复运行会覆盖原文件)。

第 3 步:检查评分;必要时使用 WebSearch 作为后备方案
  • 退出代码为 0 → 标志已归档。输出的 score 可用于判断质量:
    • ≥ 60 — 良好:SVG 或透明 PNG,宽幅或正方形比例
    • 20–60 — 可用:可能是 favicon 或小尺寸 PNG
    • < 20 — 较差:只找到 ICO 或极小的占位文件
  • 退出代码为 2 / status: "no-candidates" → 脚本未找到任何候选项。 不要放弃。使用 WebSearch 搜索 "<brand> logo svg site:*.com" 或品牌的媒体资料包页面,然后再次调用。不支持使用 --url <direct-image-url> — 如果你有直接图片 URL,请将图片保存到配置的收集目录下的 <slug>/logo.<ext>,并参照现有布局手动编写 meta.json。
第 4 步:报告结果

告知用户归档路径,以及主标志的宽高比和格式。如果评分较低,请告知用户,并提出使用特定媒体资料包 URL 或 Wikipedia SVG 重新尝试。

CLI 参考

参数默认值说明
--name—品牌/产品名称。用于生成 slug 和 meta。
--url—官方 URL 或纯域名。覆盖根据名称猜测的域名。
--slugslugified name覆盖归档根目录下的目录 slug。
--outLOVSTUDIO_FIND_LOGO_OUTPUT_DIR 或 ~/.lovstudio/logo-collection归档根目录。
--keep-alts2保留多少个候补项,命名为 alt-N.<ext>。
--json关闭将 JSON 结果输出到 stdout(串联调用时使用)。

必须至少提供 --name 或 --url 其中一个。

归档目录结构

~/.lovstudio/logo-collection/
├── anthropic/
│   ├── logo.png            # primary (highest score)
│   ├── alt-1.png           # runner-ups
│   ├── alt-2.png
│   └── meta.json           # sources, scores, dimensions, fetched_at
├── vercel/
│   ├── logo.png            # 1200x628 transparent banner
│   └── ...
└── stripe/
    ├── logo.svg
    └── ...

评分启发式规则(候选项为何胜出)

  • 格式:SVG(+40)> PNG(+20)> WebP(+10)> JPG(-10)> ICO(-20)
  • 透明度:含 alpha 通道时 +30(SVG 始终计入)
  • 宽高比:宽幅(≥2:1)+25,横向(≥1.3:1)+10, 正方形 -5,纵向/人像比例 -15
  • 短边:≥128px 时 +15,≥64px 时 +5,<32px 时 -20
  • 文件大小检查:有效载荷 <400 字节时 -30(几乎可以确定是占位文件)

这符合“优先选择宽幅 + rgba”的偏好——宽幅透明标志会胜出,正方形 favicon 则会作为备选项。

依赖项

仅使用标准库(urllib、html.parser、argparse)。无需运行 pip install。

用户配置

默认归档文件位于 ~/.lovstudio/logo-collection/。可通过 --out 为单次运行指定其他目录,或为此技能设置 LOVSTUDIO_FIND_LOGO_OUTPUT_DIR。

已知限制

  • 名称 → 域名的猜测方式很粗略:去除小写名称中的字符后缀上 .com。对于任何不使用 .com 的网站,请明确传入 --url。
  • 不使用 Clearbit API 密钥——我们调用未认证端点,可覆盖大多数主要品牌,但并非全部。
  • WebSearch 后备搜索由 Claude 负责,而非脚本。

评论

支持 Markdown