使用说明
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服务器使用
- 安装依赖:
npm install @lucianaib/logo-mcp
- 在MCP客户端配置中添加:
{
"mcpServers": {
"logo-mcp": {
"command": "npx",
"args": ["@lucianaib/logo-mcp"]
}
}
}
开发环境设置
- 克隆仓库:
git clone https://github.com/lfrbmw/Logo-MCP.git
cd Logo-MCP
- 安装依赖:
npm install
- 构建项目:
npm run build
- 启动开发服务器:
npm run dev
MCP工具
extract_logo
从指定网站URL提取Logo图标
参数:
url(必需): 要提取Logo的网站URLformat(可选): 输出格式 (png/jpg/svg),默认为pngsize(可选): 输出尺寸(像素),默认为256enhance(可选): 是否启用图像增强,默认为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),默认为128optimize(可选): 是否优化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并行验证
- 缓存机制:避免重复下载
- 内存管理:及时释放图像缓冲区
- 超时控制:防止长时间阻塞
贡献指南
- Fork项目
- 创建功能分支 (
git checkout -b feature/AmazingFeature) - 提交更改 (
git commit -m 'Add some AmazingFeature') - 推送到分支 (
git push origin feature/AmazingFeature) - 打开Pull Request
许可证
本项目采用MIT许可证 - 查看 LICENSE 文件了解详情
作者
- lucianaib - GitHub
支持
如果您遇到问题或有功能建议,请在 GitHub Issues 中提出。
Logo MCP - 让Logo提取变得简单智能 🚀
