使用说明
项目简介
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 应用)无缝集成。
安装步骤
- 克隆仓库
git clone https://github.com/elliotxx/favicon-mcp-server.git cd favicon-mcp-server - 下载依赖
确保已安装 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与计算