图标格式转换服务

一个将SVG图像转换为多种网站图标格式(ICO和PNG)的模型控制协议服务器,适用于网页应用开发。

  • by elliotxx
  • Go
  • 本地部署
  • 4 星标
  • 更新于
在 GitHub 查看 elliotxx/favicon-mcp-server

使用说明

Favicon MCP服务器

一种模型控制协议(MCP)服务器,将SVG图像转换为各种favicon格式(ICO和PNG),用于web应用程序。

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协议支持:与LLM驱动的应用程序无缝集成。

先决条件

  • 达到1.20或更高
  • 依赖项:
    • github.com/mark3labs/mcp-go v0.13.0
    • github.com/sergeymakinen/go-ico
    • github.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"
  }
}

用法

输入法

  1. 直接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>"
    }
  }
}
  1. SVG文件输入:
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "svg_to_favicon",
    "arguments": {
      "svg_file": "path/to/your/icon.svg"
    }
  }
}

输出方法

  1. Base64编码输出(默认):

    • 在响应中返回base64编码的ICO和PNG数据
  2. 文件输出:

{
  "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

使用测试文件

如果您更喜欢使用测试文件:

  1. 创建测试文件 test.json 使用您的测试用例
  2. 运行命令:
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模块进行依赖关系管理。

项目结构

favicon-mcp-server/
├── main.go         # Main server implementation
├── go.mod         # Go module definition
├── go.sum         # Go module checksums
└── README.md      # This file

从源头构建

go build

贡献

  1. 分叉存储库
  2. 创建功能分支(git checkout -b feature/amazing-feature)
  3. 提交您的更改(git commit -m 'Add some amazing feature')
  4. 推到分支(git push origin feature/amazing-feature)
  5. 打开拉取请求

与Windsurf集成

要将此MCP服务器与Windsurf集成,请执行以下步骤:

  1. 开放式风帆 并导航到Cascade界面。
  2. 配置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集成,请执行以下步骤:

  1. 启用MCP服务器:
    • 导航到光标设置并找到MCP服务器选项。
    • 启用MCP服务器(如果尚未启用)。
  2. 添加新的MCP服务器:
    • 点击“添加新的MCP服务器”。
    • 提供运行服务器的可执行文件或命令的路径。
    • 对于这个项目,您可能需要创建一个独立的可执行文件或使用捆绑工具来简化集成。
  3. 配置服务器详细信息:
    • 输入运行MCP服务器的命令。例如:
go run main.go
- Ensure the path to the executable is correct.
  1. 启用服务器:
    • 添加服务器后,单击“启用”将其激活。

按照这些步骤,您可以将Favicon MCP Server与Windsurf和Cursor集成,使用AI驱动的工具增强您的开发工作流程。

许可证

此项目根据MIT许可证获得许可-有关详细信息,请参阅许可证文件