关于 Favicon MCP Server
Favicon MCP Server 将 SVG 图标转换为适用于 Web 应用的 ICO 和 PNG 网站图标。MCP 客户端可提交 SVG 内容或文件,并接收 Base64 数据或保存后的文件。
主要功能
- 01将 SVG 转为 ICO
- 02将 SVG 转为 PNG
- 03生成 16、32、48 像素尺寸
- 04返回 Base64 编码数据
- 05保存生成的文件
适用场景
- 01从 SVG 标志创建网站图标文件
- 02为网站生成 ICO 和 PNG 资源
MCP 相关
它向 MCP 客户端提供 `svg_to_favicon` 工具,可接收 SVG 内容或文件路径及所需格式。结果可作为 Base64 数据返回,也可写入文件。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
Favicon MCP 服务
一个模型控制协议(MCP)服务,可将 SVG 图像转换为适用于 Web 应用的多种 favicon 格式(ICO 和 PNG)。
https://github.com/user-attachments/assets/7dcab05c-2340-4f8b-befc-7614b495685f
功能
- SVG 转 ICO:将 SVG 图像转换为 ICO 格式(16x16、32x32、48x48 像素)。
- SVG 转 PNG:将 SVG 图像转换为 PNG 格式(16x16、32x32、48x48 像素)。
- Base64 编码输出:通过 Base64 编码输出,便于集成。
- MCP 协议支持:与由大模型驱动的应用无缝集成。
先决条件
- Go 1.20 或更高版本
- 依赖项:
github.com/mark3labs/mcp-go v0.13.0github.com/sergeymakinen/go-icogithub.com/tdewolff/canvas
安装
git clone https://github.com/elliotxx/favicon-mcp-server.git
cd favicon-mcp-server
go mod download
使用方法
- 启动服务:
go run main.go
- 工具参数:
svg_data:以字符串形式提供的 SVG 图标内容。output_formats:指定所需输出格式(ico、png)的字符串数组。默认值:["ico", "png"]。
响应示例
服务会以所请求的格式返回 Base64 编码的 favicon 数据:
{
"content": [
{
"type": "text",
"text": "Successfully generated favicons"
}
],
"meta": {
"ico": "base64_encoded_ico_data",
"png": "base64_encoded_png_data"
}
}
使用方法
输入方式
- 直接输入 SVG:
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "svg_to_favicon",
"arguments": {
"svg_data": "<svg width=\"32\" height=\"32\"><rect width=\"32\" height=\"32\" fill=\"red\"/></svg>"
}
}
}
- 输入 SVG 文件:
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "svg_to_favicon",
"arguments": {
"svg_file": "path/to/your/icon.svg"
}
}
}
输出方式
-
Base64 编码输出(默认):
- 在响应中返回 Base64 编码的 ICO 和 PNG 数据
-
文件输出:
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "svg_to_favicon",
"arguments": {
"svg_data": "<svg width=\"32\" height=\"32\"><rect width=\"32\" height=\"32\" fill=\"red\"/></svg>",
"output_dir": "path/to/output/directory",
"output_formats": ["ico", "png"]
}
}
}
使用文件输出时:
- ICO 文件将保存为
favicon.ico - PNG 文件将保存为
favicon-{size}x{size}.png(例如,favicon-32x32.png)
测试
快速测试(推荐)
使用直接 SVG 输入进行测试的最简单方法:
echo '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"svg_to_favicon","arguments":{"svg_data":"<svg width=\"32\" height=\"32\"><rect width=\"32\" height=\"32\" fill=\"red\"/></svg>"}}}' | go run main.go
使用测试文件
如果希望使用测试文件:
- 创建测试文件
test.json,并写入测试用例 - 运行命令:
echo $(tr -d '\n' < test/test.json) | go run main.go
参数
svg_data:以字符串形式提供的 SVG 内容svg_file:SVG 文件的路径output_dir:保存输出文件的目录output_formats:所需格式的数组(["ico", "png"])
开发
本项目遵循标准的 Go 项目布局,并使用 Go modules 管理依赖项。
项目结构
favicon-mcp-server/
├── main.go # Main server implementation
├── go.mod # Go module definition
├── go.sum # Go module checksums
└── README.md # This file
从源代码构建
go build
贡献
- Fork 此仓库
- 创建功能分支(
git checkout -b feature/amazing-feature) - 提交更改(
git commit -m 'Add some amazing feature') - 推送到分支(
git push origin feature/amazing-feature) - 创建 Pull Request
与 Windsurf 集成
按照以下步骤将此 MCP 服务与 Windsurf 集成:
- 打开 Windsurf,并前往 Cascade 界面。
- 配置 MCP 服务:
- 点击锤子图标并选择“配置”,打开
~/.codeium/windsurf/mcp_config.json文件。 - 添加以下配置:
- 点击锤子图标并选择“配置”,打开
"mcpServers": {
"favicon-mcp-server": {
"command": "go",
"args": ["run", "main.go"],
"cwd": "/path/to/favicon-mcp-server",
"env": {}
}
}
将 /path/to/favicon-mcp-server 替换为项目目录的实际路径。
3. 刷新 Windsurf:
- 点击 MCP 工具栏中的“刷新”按钮,以加载新配置。
与 Cursor 集成
按照以下步骤将此 MCP 服务与 Cursor 集成:
- 启用 MCP 服务:
- 前往 Cursor 设置并找到 MCP 服务选项。
- 如果尚未启用,请启用 MCP 服务。
- 添加新的 MCP 服务:
- 点击“添加新的 MCP 服务”。
- 提供可执行文件的路径,或用于运行服务的命令。
- 对于本项目,你可能需要创建独立的可执行文件,或使用打包工具来简化集成。
- 配置服务详情:
- 输入用于运行 MCP 服务的命令。例如:
go run main.go
- 确保可执行文件的路径正确。
4. 启用服务: - 添加服务后,点击“启用”以激活服务。
按照这些步骤,你可以将 Favicon MCP Server 与 Windsurf 和 Cursor 集成,借助 AI 工具提升开发工作流。
许可证
本项目采用 MIT 许可证授权,详情请参阅 LICENSE 文件。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。