Logo提取处理工具

一个智能Logo提取和处理的MCP服务器,支持从网站URL自动识别并提取Logo图标,并提供图像处理和矢量转换功能。

  • by lfrbmw
  • TypeScript
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 lfrbmw/Logo-MCP

使用说明

Logo MCP

一个智能Logo提取和处理的MCP(Model Context Protocol)服务器,支持从网站URL自动识别并提取Logo图标,并提供图像处理和矢量转换功能。

功能特性

🎯 智能Logo提取

  • 多源识别:支持从favicon、Apple Touch图标、OpenGraph图像、CSS类名等多种方式提取Logo
  • 智能评分:自动评估候选Logo质量,选择最佳版本
  • 格式支持:支持PNG、JPG、SVG等多种图像格式
  • 尺寸优化:自动选择合适尺寸的Logo版本

🖼️ 图像处理

  • 格式转换:支持PNG、JPG、SVG格式互转
  • 尺寸调整:智能缩放到指定尺寸
  • 质量增强:针对小尺寸图像进行超分辨率处理
  • 空白移除:自动检测并移除图像空白边缘
  • 损坏检测:识别并过滤损坏的图像文件

⚡ 矢量转换

  • 位图转矢量:使用Potrace算法将位图转换为SVG
  • 多色支持:支持生成多色矢量图
  • 图标优化:生成简化的图标风格SVG
  • SVG优化:压缩和优化SVG文件大小

安装使用

作为MCP服务器使用

  1. 安装依赖:
npm install @lucianaib/logo-mcp
  1. 在MCP客户端配置中添加:
{
  "mcpServers": {
    "logo-mcp": {
      "command": "npx",
      "args": ["@lucianaib/logo-mcp"]
    }
  }
}

开发环境设置

  1. 克隆仓库:
git clone https://github.com/lfrbmw/Logo-MCP.git
cd Logo-MCP
  1. 安装依赖:
npm install
  1. 构建项目:
npm run build
  1. 启动开发服务器:
npm run dev

MCP工具

extract_logo

从指定网站URL提取Logo图标

参数:

  • url (必需): 要提取Logo的网站URL
  • format (可选): 输出格式 (png/jpg/svg),默认为png
  • size (可选): 输出尺寸(像素),默认为256
  • enhance (可选): 是否启用图像增强,默认为true

示例:

{
  "name": "extract_logo",
  "arguments": {
    "url": "https://www.google.com",
    "format": "png",
    "size": 256,
    "enhance": true
  }
}

convert_to_vector

将Logo图像转换为矢量图(SVG格式)

参数:

  • imageUrl (必需): 图像URL或base64数据
  • threshold (可选): 矢量化阈值(0-255),默认为128
  • optimize (可选): 是否优化SVG输出,默认为true

示例:

{
  "name": "convert_to_vector",
  "arguments": {
    "imageUrl": "https://example.com/logo.png",
    "threshold": 128,
    "optimize": true
  }
}

analyze_logo

分析Logo的基本信息(尺寸、格式、质量等)

参数:

  • url (必需): 要分析的网站URL

示例:

{
  "name": "analyze_logo",
  "arguments": {
    "url": "https://www.github.com"
  }
}

技术架构

核心模块

  • LogoExtractor: 负责从网站提取Logo候选项
  • ImageProcessor: 处理图像格式转换和质量优化
  • VectorConverter: 执行位图到矢量的转换

依赖库

  • @modelcontextprotocol/sdk: MCP协议支持
  • axios: HTTP请求处理
  • cheerio: HTML解析
  • sharp: 图像处理
  • potrace: 矢量化转换
  • image-size: 图像尺寸检测

Logo提取策略

1. 多源候选提取

  • Favicon链接 (<link rel="icon">)
  • Apple Touch图标 (<link rel="apple-touch-icon">)
  • OpenGraph图像 (<meta property="og:image">)
  • CSS类名识别 (.logo, #logo, .brand等)
  • 品牌相关图像

2. 智能评分算法

  • 类型权重:Logo类名 > Apple Touch > Favicon > 品牌图像 > OG图像
  • 尺寸评分:偏好32-512px的正方形或接近正方形图像
  • 质量检测:过滤损坏或空白图像

3. 最佳选择

根据综合评分自动选择最符合主视觉的Logo版本

图像处理流程

1. 预处理

  • 格式检测和验证
  • 损坏图像过滤
  • 空白边缘移除

2. 增强处理

  • 小尺寸图像超分辨率
  • 锐化和色彩优化
  • 噪点减少

3. 格式转换

  • 支持PNG、JPG、SVG输出
  • 质量和文件大小优化
  • 透明背景保持

矢量转换算法

1. 预处理

  • 灰度转换
  • 阈值二值化
  • 尺寸优化

2. 矢量化

  • 使用Potrace算法
  • 路径优化
  • 曲线平滑

3. 后处理

  • SVG代码优化
  • ViewBox标准化
  • 文件大小压缩

错误处理

  • 网络错误:超时重试和友好提示
  • 图像损坏:自动检测和跳过
  • 格式不支持:清晰的错误信息
  • 无Logo情况:返回友好的无结果提示

性能优化

  • 并发处理:多候选Logo并行验证
  • 缓存机制:避免重复下载
  • 内存管理:及时释放图像缓冲区
  • 超时控制:防止长时间阻塞

贡献指南

  1. Fork项目
  2. 创建功能分支 (git checkout -b feature/AmazingFeature)
  3. 提交更改 (git commit -m 'Add some AmazingFeature')
  4. 推送到分支 (git push origin feature/AmazingFeature)
  5. 打开Pull Request

许可证

本项目采用MIT许可证 - 查看 LICENSE 文件了解详情

作者

支持

如果您遇到问题或有功能建议,请在 GitHub Issues 中提出。


Logo MCP - 让Logo提取变得简单智能 🚀