npm package: @iflow-mcp/logo-mcp
Description: 一个智能Logo提取和处理的MCP服务器，支持从网站URL自动识别并提取Logo图标
Author: lucianaib
Latest version: 1.0.0

# 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. 安装依赖：
```bash
npm install @lucianaib/logo-mcp
```

2. 在MCP客户端配置中添加：
```json
{
  "mcpServers": {
    "logo-mcp": {
      "command": "npx",
      "args": ["@lucianaib/logo-mcp"]
    }
  }
}
```

### 开发环境设置

1. 克隆仓库：
```bash
git clone https://github.com/lfrbmw/Logo-MCP.git
cd Logo-MCP
```

2. 安装依赖：
```bash
npm install
```

3. 构建项目：
```bash
npm run build
```

4. 启动开发服务器：
```bash
npm run dev
```

## MCP工具

### extract_logo
从指定网站URL提取Logo图标

**参数：**
- `url` (必需): 要提取Logo的网站URL
- `format` (可选): 输出格式 (png/jpg/svg)，默认为png
- `size` (可选): 输出尺寸（像素），默认为256
- `enhance` (可选): 是否启用图像增强，默认为true

**示例：**
```json
{
  "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

**示例：**
```json
{
  "name": "convert_to_vector",
  "arguments": {
    "imageUrl": "https://example.com/logo.png",
    "threshold": 128,
    "optimize": true
  }
}
```

### analyze_logo
分析Logo的基本信息（尺寸、格式、质量等）

**参数：**
- `url` (必需): 要分析的网站URL

**示例：**
```json
{
  "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](LICENSE) 文件了解详情

## 作者

- **lucianaib** - [GitHub](https://github.com/lfrbmw)

## 支持

如果您遇到问题或有功能建议，请在 [GitHub Issues](https://github.com/lfrbmw/Logo-MCP/issues) 中提出。

---

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