Cover image
Try Now
2025-03-18

用于将输入图像转换为Favicon的MCP服务器

3 years

Works with Finder

1

Github Watches

1

Github Forks

1

Github Stars

Favicon MCP Server

A Model Control Protocol (MCP) server that converts SVG images into various favicon formats (ICO and PNG) for web applications.

https://github.com/user-attachments/assets/7dcab05c-2340-4f8b-befc-7614b495685f

Features

  • SVG to ICO Conversion: Convert SVG images to ICO format (16x16, 32x32, 48x48 pixels).
  • SVG to PNG Conversion: Convert SVG images to PNG format (16x16, 32x32, 48x48 pixels).
  • Base64 Encoded Output: Easy integration with base64 encoded output.
  • MCP Protocol Support: Seamless integration with LLM-powered applications.

Prerequisites

  • Go 1.20 or higher
  • Dependencies:
    • github.com/mark3labs/mcp-go v0.13.0
    • github.com/sergeymakinen/go-ico
    • github.com/tdewolff/canvas

Installation

git clone https://github.com/elliotxx/favicon-mcp-server.git
cd favicon-mcp-server
go mod download

Usage

  • Start the server:
go run main.go
  • Tool Parameters:
    • svg_data: SVG icon content provided as a string.
    • output_formats: Array of strings specifying the desired output formats (ico, png). Default: ["ico", "png"].

Example Response

The server returns base64 encoded favicon data in the requested formats:

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

Usage

Input Methods

  1. Direct SVG Input:
{
  "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 File Input:
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "svg_to_favicon",
    "arguments": {
      "svg_file": "path/to/your/icon.svg"
    }
  }
}

Output Methods

  1. Base64 Encoded Output (Default):

    • Returns base64 encoded ICO and PNG data in the response
  2. File Output:

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

When using file output:

  • ICO file will be saved as favicon.ico
  • PNG files will be saved as favicon-{size}x{size}.png (e.g., favicon-32x32.png)

Testing

Quick Test (Recommended)

The simplest way to test with direct SVG input:

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

Using Test File

If you prefer using a test file:

  1. Create a test file test.json with your test case
  2. Run the command:
echo $(tr -d '\n' < test/test.json) | go run main.go

Parameters

  • svg_data: SVG content as a string
  • svg_file: Path to an SVG file
  • output_dir: Directory to save the output files
  • output_formats: Array of desired formats (["ico", "png"])

Development

The project follows standard Go project layout and uses Go modules for dependency management.

Project Structure

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

Building from Source

go build

Contributing

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add some amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

Integration with Windsurf

To integrate this MCP server with Windsurf, follow these steps:

  1. Open Windsurf and navigate to the Cascade interface.
  2. Configure MCP Servers:
    • Open the ~/.codeium/windsurf/mcp_config.json file by clicking the hammer icon and selecting "Configure".
    • Add the following configuration:
"mcpServers": {
  "favicon-mcp-server": {
    "command": "go",
    "args": ["run", "main.go"],
    "cwd": "/path/to/favicon-mcp-server",
    "env": {}
  }
}

Replace /path/to/favicon-mcp-server with the actual path to your project directory. 3. Refresh Windsurf: - Click the "Refresh" button in the MCP toolbar to load the new configuration.

Integration with Cursor

To integrate this MCP server with Cursor, follow these steps:

  1. Enable MCP Servers:
    • Navigate to Cursor settings and find the MCP servers option.
    • Enable MCP servers if not already enabled.
  2. Add New MCP Server:
    • Click "Add new MCP server".
    • Provide the path to your executable or command to run the server.
    • For this project, you might need to create a standalone executable or use a bundling tool to simplify integration.
  3. Configure Server Details:
    • Enter the command to run your MCP server. For example:
go run main.go
- Ensure the path to the executable is correct.
  1. Enable the Server:
    • After adding the server, click "Enable" to activate it.

By following these steps, you can integrate the Favicon MCP Server with both Windsurf and Cursor, enhancing your development workflow with AI-powered tools.

License

This project is licensed under the MIT License - see the LICENSE file for details

相关推荐

  • NiKole Maxwell
  • I craft unique cereal names, stories, and ridiculously cute Cereal Baby images.

  • Bora Yalcin
  • Evaluator for marketplace product descriptions, checks for relevancy and keyword stuffing.

  • Joshua Armstrong
  • Confidential guide on numerology and astrology, based of GG33 Public information

  • https://suefel.com
  • Latest advice and best practices for custom GPT development.

  • Callycode Limited
  • A geek-themed horoscope generator blending Bitcoin prices, tech jargon, and astrological whimsy.

  • Alexandru Strujac
  • Efficient thumbnail creator for YouTube videos

  • Emmet Halm
  • Converts Figma frames into front-end code for various mobile frameworks.

  • Khalid kalib
  • Write professional emails

  • Elijah Ng Shi Yi
  • Advanced software engineer GPT that excels through nailing the basics.

  • Beniyam Berhanu
  • Therapist adept at identifying core issues and offering practical advice with images.

  • apappascs
  • 发现市场上最全面,最新的MCP服务器集合。该存储库充当集中式枢纽,提供了广泛的开源和专有MCP服务器目录,并提供功能,文档链接和贡献者。

  • ShrimpingIt
  • MCP系列GPIO Expander的基于Micropython I2C的操作,源自ADAFRUIT_MCP230XX

  • OffchainLabs
  • 进行以太坊的实施

  • huahuayu
  • 统一的API网关,用于将多个Etherscan样区块链Explorer API与对AI助手的模型上下文协议(MCP)支持。

  • deemkeen
  • 用电源组合控制您的MBOT2:MQTT+MCP+LLM

    Reviews

    1 (1)
    Avatar
    user_kudFkVWl
    2025-04-15

    The GitHub MCP Server Test by Prof-pengyin is an exceptional tool for MCP application users. It greatly simplifies server testing, ensuring efficiency and accuracy. The intuitive interface and seamless integration with existing workflows make it an essential resource. Whether for coding or managing repositories, this server test tool significantly enhances productivity. Highly recommend it! Check it out: https://mcp.so/server/test-mcp-repo/Prof-pengyin