使用说明

项目简介

Favicon MCP Server 是一个基于 Model Context Protocol (MCP) 构建的服务器应用,专注于将 SVG 格式的图像转换为网站常用的 Favicon 图标格式,包括 ICO 和 PNG。此服务器旨在为 LLM (大型语言模型) 驱动的应用提供便捷的图标生成服务,例如,当 LLM 需要为生成的网站或应用创建 Favicon 时,可以调用此 MCP 服务器来完成转换工作。

主要功能点

  • SVG 到 ICO 转换: 将 SVG 图像转换为 ICO 格式,包含 16x16, 32x32, 48x48 像素等多种尺寸。
  • SVG 到 PNG 转换: 将 SVG 图像转换为 PNG 格式,包含 16x16, 32x32, 48x48 像素等多种尺寸以及 Android 和 Apple 设备常用的尺寸。
  • Base64 编码输出: 支持将生成的图标数据以 Base64 编码形式输出,方便直接嵌入到网页或应用中。
  • 文件输出: 支持将生成的图标文件保存到指定目录。
  • MCP 协议支持: 完全兼容 MCP 协议,可以与任何支持 MCP 协议的客户端(如 Windsurf, Cursor 等 LLM 应用)无缝集成。

安装步骤

  1. 克隆仓库
    git clone https://github.com/elliotxx/favicon-mcp-server.git
    cd favicon-mcp-server
  2. 下载依赖 确保已安装 Go 1.20 或更高版本,然后运行命令下载项目依赖:
    go mod download

服务器配置

为了让 MCP 客户端(如 Windsurf 或 Cursor)能够连接到 Favicon MCP Server,您需要在客户端的 MCP 服务器配置文件中添加以下配置信息。以下是 'mcp_config.json' 文件的配置示例,通常位于 MCP 客户端的配置目录下(例如 Windsurf 的 '~/.codeium/windsurf/mcp_config.json'):

"mcpServers": {
  "favicon-mcp-server": {  // 服务器名称,可以自定义,用于在客户端中标识该服务器
    "command": "go",      // 启动服务器的命令,这里使用 go 运行时
    "args": ["run", "main.go"], // 命令参数,运行 main.go 文件
    "cwd": "/path/to/favicon-mcp-server", // 服务器程序的工作目录,请替换为实际仓库路径
    "env": {}              // 环境变量,本例中为空
  }
}

注意:

  • 请将 '"cwd"' 字段的值 '/path/to/favicon-mcp-server' 替换为您本地 'favicon-mcp-server' 仓库的实际路径。
  • '"server name"' 可以自定义,用于在 MCP 客户端中引用和管理该服务器。

基本使用方法

Favicon MCP Server 提供了一个名为 'svg_to_favicon' 的工具 (Tool),用于将 SVG 图像转换为 Favicon。客户端可以通过发送符合 MCP 协议的 JSON-RPC 请求来调用此工具。

调用 'svg_to_favicon' 工具的 JSON-RPC 请求示例:

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>" // SVG 内容,直接以字符串形式提供
    }
  }
}

2. 指定 SVG 文件路径:

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "svg_to_favicon", // 工具名称
    "arguments": {
      "svg_file": "path/to/your/icon.svg" // SVG 文件路径,指向本地 SVG 文件
    }
  }
}

3. 指定输出目录和格式(可选):

{
  "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", "png"]
    }
  }
}

服务器响应:

服务器会返回 JSON-RPC 响应,包含转换结果和图标数据(如果选择 Base64 输出)。如果成功生成 Favicon,响应的 'content' 字段会包含成功的文本消息,'meta' 字段可能包含 Base64 编码的图标数据(例如 ICO 和 PNG)。如果指定了 'output_dir',图标文件将被保存到指定目录,响应中会包含文件保存路径的信息。

例如,Base64 编码输出的响应示例:

{
  "content": [
    {
      "type": "text",
      "text": "Successfully generated favicons"
    }
  ],
  "meta": {
    "ico": "base64_encoded_ico_data",
    "png": "base64_encoded_png_data"
  }
}

注意: 请根据您使用的 MCP 客户端的具体文档,了解如何在客户端中配置和调用 MCP 服务器及其提供的工具。

信息

分类

AI与计算