svg-MCP-TN
Generates production-ready, typed React (TSX) emoji components with configurable size and SVG props.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@svg-MCP-TNfind a smiley face SVG emoji component"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
⚠️ NOTICE: PROJECT UNDER ACTIVE DEVELOPMENT & CURRENTLY UNSTABLE
This project is in active development and is considered experimental and unstable. Architectural interfaces, JSON-RPC tool contracts, API endpoint payloads, and vector data representations are subject to breaking changes without prior notice. Use in production environments at your own risk.
svg-MCP-TN
Modern Vector SVG Emoji Library & Model Context Protocol (MCP) Server
📋 Table of Contents
Related MCP server: brain-mcp-icon-visual
🏢 Executive Overview
svg-MCP-TN is an open-source, enterprise-grade vector emoji library and high-speed Model Context Protocol (MCP) server. It provides developers and autonomous AI coding agents with a structured, queryable index of handcrafted SVG vector graphics.
Instead of relying on native operating system fonts (which render inconsistently across Apple, Windows, and Linux environments) or prompting LLMs to generate ad-hoc, broken inline SVG markup, svg-MCP-TN allows AI assistants to retrieve mathematically clean, viewBox-normalized SVG paths, React (TSX) components, and Vue 3 Single File Components (SFC) in sub-millisecond roundtrips.
🎯 Why svg-MCP-TN? (The Problem We Solve)
Common Industry Dilemma | The |
Hallucinated Vector Markup: AI assistants often output malformed, clipping, or unoptimized SVG paths when asked to code icons from scratch. | Deterministic Tooling: AI calls verified MCP tools that return peer-reviewed, optimized vector nodes. |
Cross-Platform OS Fragmentation: Unicode emojis look radically different on Apple macOS, Windows 11, Google Android, and Ubuntu Linux. | 100% Visual Parity: Pure vector |
Bloated Webfont Bundles: Heavy font icon sheets add blocking network latency and render-tree layout shifts. | Zero Font Overhead: Tree-shakeable individual SVG files, inline code snippets, and tiny payload footprints. |
Manual Developer Asset Hunting: Engineers waste time browsing external asset galleries, copying raw files, and refactoring props. | In-Editor Context: AI agents query and paste complete typed components directly into current workspace files. |
🏗️ System Architecture
+-----------------------------+
| AI Developer Assistants |
| (Cursor, Claude, Windsurf) |
+--------------+--------------+
|
JSON-RPC 2.0 (HTTP / SSE)
|
v
+-------------------------------------------------+
| svg-MCP-TN Edge Gateway |
| (Cloudflare Pages / V8 Edge Runtime) |
+-------------------------+-----------------------+
|
+-------------------------+-----------------------+
| |
v v
+---------------------------+ +---------------------------+
| MCP Server Engine | | Interactive Web App |
| - search_emoji | | - Live Emoji Catalog |
| - get_emoji_svg | | - Playground & Tester |
| - get_emoji_component | | - One-Click Integration |
+---------------------------+ +---------------------------+Technical Highlights
Edge Native: Runs on the Cloudflare Workers / Pages V8 Edge Runtime via
export const runtime = 'edge';.JSON-RPC 2.0 Compliance: Strictly adheres to the Model Context Protocol Specification with error schemas and parameter validation.
Strict Typing: 100% end-to-end TypeScript codebase with zero runtime dependencies for the vector core.
Microsecond Latency: Global CDN distribution ensures instant response times for developer IDE workflows worldwide.
📡 Model Context Protocol (MCP) Specifications
Protocol Transport
Protocol Version: MCP
2024-11-05Default RPC Endpoint:
/api/mcpAccepted Request Format:
application/jsonJSON-RPC Version:
2.0
Exposed Tool Signatures
The server exposes three core functions via tools/list and tools/call:
1. search_emoji
Searches the emoji catalog by natural language keywords, emotional sentiment, semantic tags, or categorization.
Input Schema:
{
"type": "object",
"properties": {
"query": {
"type": "string",
"description": "Keyword, mood, or name to search (e.g. 'rocket', 'celebrate', 'heart', 'code')"
},
"category": {
"type": "string",
"enum": ["all", "smileys", "gestures", "tech", "activities", "symbols", "objects"],
"description": "Optional category filter"
},
"limit": {
"type": "number",
"description": "Maximum number of results to return (default: 10, max: 50)"
}
},
"required": ["query"]
}Sample Response:
{
"total": 1,
"results": [
{
"id": "rocket",
"name": "Rocket",
"category": "tech",
"tags": ["launch", "speed", "startup", "deploy", "fast"]
}
]
}2. get_emoji_svg
Returns clean, standalone SVG source code ready for embedding or saving to .svg files.
Input Schema:
{
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "The unique emoji identifier (e.g. 'rocket', 'fire', 'heart')"
},
"size": {
"type": "number",
"description": "Desired width and height dimension in pixels (default: 64)"
}
},
"required": ["id"]
}Sample Response Content:
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" width="64" height="64" fill="none">
<!-- Optimized vector path data -->
</svg>3. get_emoji_component
Generates a production-ready, fully typed frontend component in the requested framework.
Input Schema:
{
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "The unique emoji identifier"
},
"framework": {
"type": "string",
"enum": ["react", "vue", "html"],
"description": "Frontend framework syntax: 'react' (TSX), 'vue' (SFC), or 'html' (inline web component)"
},
"size": {
"type": "number",
"description": "Default render size in pixels (default: 32)"
}
},
"required": ["id", "framework"]
}Sample React (TSX) Output:
import React from 'react';
export interface RocketEmojiProps extends React.SVGProps<SVGSVGElement> {
size?: number;
className?: string;
}
export const RocketEmoji: React.FC<RocketEmojiProps> = ({
size = 32,
className = '',
...props
}) => (
<svg
viewBox="0 0 64 64"
width={size}
height={size}
fill="none"
className={className}
{...props}
>
{/* Clean vector paths */}
</svg>
);🤖 AI Assistant Integration Guide
1. Cursor IDE
To enable direct emoji lookups and component generation within your Cursor workspace, add the MCP server definition to your workspace configuration file:
Location: .cursor/mcp.json
{
"mcpServers": {
"svg-emojis": {
"url": "https://your-domain.pages.dev/api/mcp",
"transport": "http"
}
}
}Once configured, you can prompt Cursor:
"Add a celebratory vector emoji component to our checkout page using the
svg-emojisMCP tool."
2. Claude Desktop
Connect Claude Desktop to svg-MCP-TN using the standard desktop configuration:
Location:
macOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:
%APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"svg-emojis": {
"command": "npx",
"args": [
"-y",
"mcp-proxy",
"https://your-domain.pages.dev/api/mcp"
]
}
}
}3. Windsurf Editor
Add the server in your Windsurf workspace settings:
Location: ~/.codeium/windsurf/mcp_config.json
{
"mcpServers": {
"svg-emojis": {
"serverUrl": "https://your-domain.pages.dev/api/mcp"
}
}
}4. Cline / Roo-Code
In your VS Code extension settings for Cline:
{
"mcpServers": {
"svg-emojis": {
"type": "stream",
"url": "https://your-domain.pages.dev/api/mcp"
}
}
}5. Direct JSON-RPC 2.0 (cURL / HTTP)
Execute a raw JSON-RPC call from any terminal or automated test pipeline:
curl -X POST https://your-domain.pages.dev/api/mcp \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "search_emoji",
"arguments": {
"query": "fire"
}
}
}'🎨 Supported Export Targets
Format | Output Description | Ideal Usage |
Raw SVG | Standalone | Static asset pipelines, Figma imports, |
React TSX | Typed functional React component with standard SVG attributes | Next.js, Vite React, Remix, Gatsby |
Vue 3 SFC | Single File Component with | Nuxt 3, Vite Vue 3 applications |
Inline Web Markup | Minified, accessible HTML SVG snippet with | Vanilla JavaScript, Hugo, Astro, Static HTML |
⚡ Edge Runtime & Cloudflare Deployment
svg-MCP-TN is built specifically to deploy to Cloudflare Pages using Edge runtime workers for zero cold starts and ultra-low latency worldwide.
Deployment Prerequisites
Ensure the Wrangler CLI is authenticated:
npm install -g wrangler
wrangler loginProduction Build & Deploy
# 1. Build client-side assets & compile edge routes
npm run build
# 2. Deploy bundle to Cloudflare Pages
npx @cloudflare/next-on-pages
wrangler pages deploy dist --project-name=svg-mcp-tn💻 Local Development & Contribution Guidelines
Prerequisites
Node.js
v18.0.0or highernpm / pnpm / bun
Getting Started
# Clone the repository
git clone https://github.com/your-username/svg-MCP-TN.git
cd svg-MCP-TN
# Install project dependencies
npm install
# Start local development server (binds to http://localhost:3000)
npm run dev
# Run TypeScript linter & static analysis
npm run lint
# Compile production bundle
npm run buildVector Contribution Standards
ViewBox: All vector graphics must use a standardized
viewBox="0 0 64 64".No Font Glyphs: Never use
<text>elements or system font references. Every shape must be composed of clean<path>,<circle>,<rect>, or<polygon>vector data.Palette Consistency: Utilize curated gradient and flat color tokens matching modern accessible standards.
Id Uniqueness: Ensure emoji identifier names follow
kebab-case(e.g.party-popper,rocket,sparkles).
🚦 Stability Status & Development Roadmap
⚠️ Project Status: ALPHA / EXPERIMENTAL (Pre-1.0)
The internal API schema and MCP endpoints are under rapid development.
Milestone | Status | Description |
Core Vector Catalog | 🟡 In Progress | Expanding baseline icon set across 6 core categories |
MCP JSON-RPC 2.0 Gateway | 🟢 Operational | Full support for |
Interactive Developer Playground | 🟢 Operational | In-browser testing suite for real-time JSON-RPC payload debugging |
SSE (Server-Sent Events) Stream | 🟡 Under Evaluation | Adding real-time streaming capability for dynamic updates |
Figma Plugin Integration | ⚪ Planned | Direct import from Figma design tokens |
v1.0.0 Specification Freeze | ⚪ Planned | Permanent API stabilization & semantic versioning enforcement |
📄 License & Community
Distributed under the MIT License. See LICENSE for more information.
Issue Tracker: Submit bug reports, schema suggestions, or icon requests via GitHub Issues.
Community Standards: Please adhere to our Code of Conduct in all discussions and pull requests.
Commercial Inquiries & Sponsorship: Contact the maintainers for custom enterprise icon collections.
This server cannot be deployed
Maintenance
Related MCP Connectors
Multilingual semantic SVG icon search with previews for AI coding agents. 20,000+ icons.
Icons for agentic development: search & fetch 366,000+ open-source icons as SVG/PNG. No API key.
Search and fetch SVG icons from 250,000+ icons across 200+ open-source icon sets.
Search SVG metadata and buy licensed commercial SVG exports for coding agents.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceProvides access to over 200,000 icons from 150+ collections with features for searching, recommendations, and direct file synchronization. It supports multiple frameworks and optimizes AI performance by writing icon code directly to project files.504 npm1,294MIT
- FlicenseNot gradedqualityDmaintenanceVisual icon search, retrieval, and comparison for AI agents. Search 200k+ icons semantically, render side-by-side comparison grids, and retrieve raw SVG markup — all tools return images so vision-capable LLMs can see the icons.1-

Svg/icons MCPofficial
AlicenseNot gradedqualityCmaintenanceEnables AI coding tools to search, inspect, recommend, and export SVG icons from svgicons.com for use in design systems, frontend projects, and AI-assisted workflows.MIT- AlicenseAqualityDmaintenanceExtracts SVG icons from Figma and generates React TSX icon components automatically, enabling AI assistants like GitHub Copilot and Claude to manage icon workflows.211 npm1MIT