返回市场
网站图标MCP服务器

网站图标MCP服务器

作者:elliotxx4 星标更新:2025-03-18

项目介绍

Favicon MCP Server

这是一个模型控制协议(MCP)服务器,用于将SVG图像转换成各种网页应用所需的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协议:无缝集成到LLM驱动的应用程序中。

预备条件

  • Go 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:指定所需输出格式的字符串数组(icopng)。默认值:["ico", "png"]

示例响应

服务器返回请求格式下的Base64编码的favicon数据:

{
  "content": [
    {
      "type": "text",
      "text": "成功生成了Favicon"
    }
  ],
  "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         # 主服务器实现
├── go.mod         # Go模块定义
├── go.sum         # Go模块校验和
└── README.md      # 本文件

从源代码构建

go build

贡献

  1. 分叉仓库
  2. 创建你的功能分支(git checkout -b feature/amazing-feature
  3. 提交更改(git commit -m '添加一些惊人的功能'
  4. 推送到分支(git push origin feature/amazing-feature
  5. 打开Pull Request

与Windsurf集成

要将此MCP服务器与Windsurf集成,请按照以下步骤操作:

  1. 打开Windsurf并导航到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服务器
    • 导航到Cursor设置并找到MCP服务器选项。
    • 如果尚未启用,请启用MCP服务器。
  2. 添加新的MCP服务器
    • 点击“添加新的MCP服务器”。
    • 提供执行文件的路径或运行服务器的命令。
    • 对于这个项目,你可能需要创建一个独立的可执行文件或使用捆绑工具来简化集成。
  3. 配置服务器详情
    • 输入运行你的MCP服务器的命令。例如:
go run main.go
- 确保可执行文件的路径正确。

4. 启用服务器: - 添加服务器后,点击“启用”以激活它。

通过以上步骤,你可以将Favicon MCP Server与Windsurf和Cursor集成,增强你的开发工作流程,利用AI驱动的工具。

许可证

本项目采用MIT许可证 - 查看LICENSE文件获取详细信息。