Skip to main content
AllMCPs
BrowseBestCategoriesStackCompareToolsGuidesBlog
Log in Submit MCP

Stay in the loop

Get new MCP servers and top picks in your inbox.

AllMCPs

The open directory for discovering and installing Model Context Protocol servers.

AllMCPs on GitHub (opens in a new tab)
Launched onTiny Startupstinystartups.com
Explore
  • Browse servers
  • Best MCP servers
  • Categories
  • MCP clients
  • Agent prompts
  • Stack Builder
  • Compare servers
  • Random discovery New
  • Submit a server
  • Pricing & Boost Boost
Learn
  • Guides hub
  • What is MCP?
  • Install guide
  • Build an MCP server
  • Deploy an MCP server
  • Security guide
  • Troubleshooting
  • MCP for SEO & AEO
  • Protocol versioning
  • Blog & updates
Tools
  • All developer tools
  • Config generator
  • Config validator
  • Config auditor
  • MCP playground
  • Token calculator
  • OpenAPI β†’ MCP
  • Badge generator
For agents
  • REST API docs
  • Trust & traffic Live
  • Remote MCP server SSE β†— (opens in a new tab)
  • llms.txt β†— (opens in a new tab)
  • Catalog JSON β†— (opens in a new tab)
Company
  • About
  • Advertise Sponsor
  • Contact
  • GitHub β†— (opens in a new tab)
  • Terms
  • Privacy
AllMCPs VerifiedAllMCPs VerifiedFeatured on Nick LaunchesFeatured on Nick LaunchesLaunch Llama NewsletterLaunch Llama NewsletterVerified DR - allmcps.comVerified DR - allmcps.comFeatured on SaaSGrowFeatured on SaaSGrowFeatured on Twelve ToolsFeatured on Twelve ToolsFeatured on Saaspa.geFeatured on Saaspa.geFeatured on Findly.toolsFeatured on Findly.toolsFeatured on Startup FameFeatured on Startup FameFeatured on LaunchKiwiFeatured on LaunchKiwiFeatured on ScrollLaunchFeatured on ScrollLaunchFeatured on DailyPingsFeatured on DailyPingsFazier badgeFazier badgeFeatured on NewTool.siteFeatured on NewTool.siteFeatured on saasfame.comFeatured on saasfame.comDR Checker - Domain RatingDR Checker - Domain RatingListed on Turbo0Listed on Turbo0Launched on LaunchBoard - Product Launch PlatformLaunched on LaunchBoard - Product Launch PlatformList on SimilarlabsList on Similarlabshttps://codetrendy.comhttps://codetrendy.comListed on DevTool.ioFeatured on BuildlistFeatured on BuildlistLaunched on Tiny StartupsFeatured on ShowMeBestAIFeatured on ShowMeBestAIFind us on LaunchZoneFind us on LaunchZoneAllMCPs VerifiedAllMCPs VerifiedFeatured on Nick LaunchesFeatured on Nick LaunchesLaunch Llama NewsletterLaunch Llama NewsletterVerified DR - allmcps.comVerified DR - allmcps.comFeatured on SaaSGrowFeatured on SaaSGrowFeatured on Twelve ToolsFeatured on Twelve ToolsFeatured on Saaspa.geFeatured on Saaspa.geFeatured on Findly.toolsFeatured on Findly.toolsFeatured on Startup FameFeatured on Startup FameFeatured on LaunchKiwiFeatured on LaunchKiwiFeatured on ScrollLaunchFeatured on ScrollLaunchFeatured on DailyPingsFeatured on DailyPingsFazier badgeFazier badgeFeatured on NewTool.siteFeatured on NewTool.siteFeatured on saasfame.comFeatured on saasfame.comDR Checker - Domain RatingDR Checker - Domain RatingListed on Turbo0Listed on Turbo0Launched on LaunchBoard - Product Launch PlatformLaunched on LaunchBoard - Product Launch PlatformList on SimilarlabsList on Similarlabshttps://codetrendy.comhttps://codetrendy.comListed on DevTool.ioFeatured on BuildlistFeatured on BuildlistLaunched on Tiny StartupsFeatured on ShowMeBestAIFeatured on ShowMeBestAIFind us on LaunchZoneFind us on LaunchZone
Β© 2026 Jackalope Digital LLC. All rights reserved.
  1. Home
  2. 🎨 Art & Culture
  3. Nakkas
Nakkas logo
Health: ActiveRecent health check succeeded.Last checked 9/11/2026, 7:31:53 PM

Nakkas

User RatingsBe the first to rate and review this MCP server!
View Repository22 GitHub StarsTotal stargazers on GitHub for the source repository (22 stars).Visit Website
svganimationartdeclarativemcp

MCP server that lets AI generate animated SVG graphics from JSON configs with PNG previews and no JavaScript.

Quick Install

Automated & IDE Setup

Copy the AI prompt to install this server into Claude Code, Cursor, or another agent β€” or use 1-click editor setup below.

Add to CursorAdd to VS Code
Not yet automatically verified

This server is confirmed live β€” we successfully called its tools/list endpoint directly (see the verified badge above). We haven't yet sandbox-tested the stdio install command below specifically, which is a separate, ongoing check.

Manual Client & Custom JSON ConfigExpand JSON β–Ύ

Client Config & Setup

Choose your client or environment
Target File:~/Library/Application Support/Claude/claude_desktop_config.json
claude_desktop_config.json
{
  "mcpServers": {
    "arikusi-nakkas": {
      "command": "npx",
      "args": [
        "-y",
        "nakkas@latest"
      ]
    }
  }
}

πŸ’‘ Paste the JSON block into your client's configuration file under mcpServers, then restart the application.

Install Tool Schemas (3) Directory Badge Claim listing Alternatives🎨 More in Art & Culture

Overview

This MCP server enables AI agents to create animated SVG artwork using a declarative JSON configuration. It supports CSS @keyframes and SMIL animations without JavaScript, making the output compatible with environments like GitHub READMEs. The server returns both an SVG artifact and a PNG preview so the AI can iteratively refine designs without reprocessing the SVG text. It runs locally with no external dependencies or API keys required.

Use cases

β€’Generate animated SVG logos, icons, and banners
β€’Create loading spinners and visual badges with animation
β€’Produce generative art with parametric curves and gradients
β€’Iterate design revisions using AI critiques on PNG previews
β€’Render SVG animations compatible with GitHub README and web

Key features

β€’Single rendering engine controlled entirely by AI via JSON config
β€’Supports 16+ SVG element types including parametric curves, filters, gradients
β€’CSS @keyframes and SMIL animations with no JavaScript
β€’Returns PNG previews alongside SVG artifacts for iterative refinement
β€’Stores SVG as server-side artifacts to reduce token usage
β€’Zero external dependencies and no API keys required

Capabilities & Tool Schemas (3) ~2.3k tokensApproximate context cost of this server’s tool schemas (~4 chars/token), before any tool is called. Actual usage depends on your client and model.Verified live Verified liveCaptured by calling this server’s live tools/list endpoint.

Inspect callable tools, capabilities, and parameters exposed to AI agents by Nakkas.

render_svg

Render animated SVG from JSON config. AI controls all design parameters. **Workflow:** render_svg returns a PNG preview of the result plus an artifact id β€” critique the image, revise the config, render again. Iterate at least 3 times before finalizing. The SVG text stays on the server: pass the artifact id to save (and to preview for a different width). **output options (response shape, not content):** {"svg":false,"preview":true,"previewWidth":800,"minify":false,"frames":4} β€” all optional. minify:true collapses whitespace in the stored/saved SVG. frames:N (2-10) replaces the static preview with one filmstrip image sampling the CSS animations at N times β€” use it to verify motion (rotation direction, timing, easing) since a single preview only shows t=0. SMIL is not sampled. **Element types:** rect, circle, ellipse, line, polyline, polygon, path, image, text, textPath, group, use, radial-group, arc-group, grid-group, scatter-group, path-group, parametric **Pattern groups** (use for repetitive designs): radial-group (circular: cx, cy, radius, count), arc-group (arc: cx, cy, radius, count, startAngle, endAngle), grid-group (matrix: cols, rows, colSpacing, rowSpacing), scatter-group (random: width, height, count, seed), path-group (along polyline: waypoints, count). Each takes ONE "child" element. The child is drawn at the local origin and, with rotateChildren true (the default), rotates so local +x points outward from the center: draw spokes, rays and petals long along the x axis, never the y axis, or they render as a chord ring. **Parametric curves** (fn field): rose, heart, lissajous, spiral, star, superformula, epitrochoid, hypotrochoid, wave. Size via "scale" field. Server computes coordinates. **defs:** gradients (linear/radial, SMIL animated stops), filters (presets: glow, neon, blur, drop-shadow, glitch, chromatic-aberration, noise, outline, inner-shadow, emboss + 5 more), clipPaths, masks, patterns (tile fills), markers (arrowheads: triangle, arrow, circle, square, diamond, bar; set markerStart/markerEnd:"id" on line/polyline/path, scales with strokeWidth). **Animations:** CSS @keyframes via animations array. Set cssClass on element matching animation name. For transforms add transformBox="fill-box" transformOrigin="center". SMIL via smilAnimations on elements (animate, animateTransform, animateMotion). **Design guide (what makes output look good):** Pick one spacing unit (e.g. 8) and use multiples of it for every gap and margin; keep content clear of the canvas edges by at least 5% of the smaller dimension (the bbox audit reports overflow in px). Use at most 3 font sizes per design with clear jumps (e.g. 12/16/24). Body-size text needs 4.5:1 contrast against its background, 3:1 from 24px up (the contrast audit checks plain hex pairs). Text ink boxes are measured after every render; escaping or overlapping text comes back as a named design note. Motion: ease-out for entrances, ease-in-out for back-and-forth loops, linear only for continuous rotation or travel; 0.8-3s durations read well for UI-scale loops. **Critical format rules:** - Gradient type must be "linearGradient" or "radialGradient" (not "linear"/"radial"). Each needs id, stops (array with offset 0-1, color). - Filter type must be "preset" with a "preset" field: {"type":"preset","id":"myGlow","preset":"glow","stdDeviation":8,"color":"#ff00ff"} - Keyframe offset: use "from"/"to" or percentage number 0-100 (not "0%"/"100%"). - Gradient stop and filter colors: hex only (#rrggbb or #rrggbbaa). Element fill/stroke accept '#rrggbb', 'none', or 'url(#id)' (hex is safest). - Every element needs "type" field. circle needs r, rect needs width+height, path needs d. **Field names that differ from raw SVG:** - text: string goes in "content" (not "text"): {"type":"text","x":100,"y":50,"content":"Hello","fontSize":24,"textAnchor":"middle"} - textPath: {"type":"textPath","pathId":"idFromDefsPaths","text":"..."} β€” here the field IS "text". - group: {"type":"group","children":[...]} β€” children are shapes/text/use only, no nested groups. - Pattern groups take ONE "child" element drawn at local origin (child uses cx=0/cy=0); set rotateChildren:false to keep text upright. **Output:** Pure SVG XML. No JavaScript. CSS @keyframes + SMIL only.

preview

Render SVG content to a PNG image so the AI can visually inspect the output. **When to use:** - render_svg already returns a preview image by default; call this tool to re-preview a stored artifact at a different width, or to preview SVG that did not come from render_svg - Stop iterating when the visual result matches the intent **Input:** pass EITHER artifact (id from render_svg, e.g. "art-1" β€” preferred, no SVG resend) OR content (raw SVG string). **Behavior:** - Returns a PNG image (base64) rendered from the SVG - Background is transparent by default - CSS animations and SMIL are rendered as a static snapshot (t=0) β€” motion is not captured **Width:** - Omit width to use the SVG's own declared width/viewBox - Pass width to scale the output (useful for small SVGs that need a larger preview)

save

Save rendered content to disk. Format-aware: can save as text or render to raster image. IMPORTANT: Use this only AFTER iterating on the design with render_svg's preview images. Do not save on the first render. Preview and refine your work first. **Input:** pass EITHER artifact (id from render_svg, e.g. "art-1" β€” preferred, no SVG resend) OR content (raw string). **Format detection:** - 'auto' (default): infers format from file extension. .svg saves as text, .png renders to image. - 'svg': saves content as a UTF-8 text file - 'png': renders the content (assumed SVG) to a PNG image, then saves it If the file already exists, a numeric counter is appended before the extension to prevent overwriting: design.svg becomes design-1.svg, then design-2.svg. The actual saved path is returned in the response.

Documentation Overview

nakkas

MCP server that turns AI into an SVG artist.
One rendering engine. AI decides everything.

npm version downloads license Marketplace

Officially listed on the MCP Registry, Glama, LobeHub, and PulseMCP.

Official MCP Registry LobeHub Ask DeepWiki

Glama Badge

Orbital system: rings of dots rotating at different speeds around a breathing sun, with a comet trailing its tail Lissajous curve drawing itself stroke by stroke over a dot grid

Both drawn by an AI through nakkas, one JSON config each, iterated against its own PNG previews. Pure CSS animation, no JavaScript.

Nakkas is an MCP (Model Context Protocol) server that lets AI assistants like Claude create animated SVG graphics from a declarative JSON config: logos, icons, loading spinners, GitHub README banners, badges, and generative art. It renders CSS @keyframes and SMIL animations with no JavaScript, so the output works inside GitHub READMEs and anywhere an <img> tag renders SVG. Every render comes back as a PNG preview plus a server-side artifact id, so the AI sees its own work immediately and iterates without the SVG text ever passing through its context window.

nakkaş means painter/artist in Turkish (old).

Code
"make a neon terminal logo with animated binary digits"
  β†’ AI constructs JSON config
  β†’ nakkas renders to animated SVG
  β†’ AI previews the PNG, critiques, revises
  β†’ clean animated SVG output

Why

  • One tool, infinite designs. render_svg takes a JSON config. AI fills in everything.
  • The AI sees its own work. Every render returns a PNG preview, so the model critiques and revises instead of designing blind.
  • Token-cheap iteration. The SVG stays on the server as an artifact; preview and save address it by id, so revision loops don't pay for the SVG text.
  • Pure declarative SVG. CSS @keyframes + SMIL animations, no JavaScript. Survives GitHub's camo proxy.
  • Zero external deps. No cloud API, no API keys. Runs locally.

Install

Claude Desktop

Add to your config file:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Linux: ~/.config/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json
config.json
{
  "mcpServers": {
    "nakkas": {
      "command": "npx",
      "args": ["-y", "nakkas@latest"]
    }
  }
}

Claude Code (CLI)

Terminal
claude mcp add nakkas npx nakkas@latest

Cursor / Zed / Other MCP clients

config.json
{
  "mcpServers": {
    "nakkas": {
      "command": "npx",
      "args": ["-y", "nakkas@latest"]
    }
  }
}

Local Development

bash
git clone https://github.com/arikusi/nakkas
cd nakkas
npm install && npm run build
# Use dist/index.js as the command

Quick Start

Ask your AI (with Nakkas connected):

"Make an animated SVG: dark terminal frame (800Γ—200), glowing cyan text 'NAKKAS', neon glow filter, fade-in on load."

"Create a loading spinner: a circle with a draw-on stroke animation that loops every 1.5 seconds."

"Data visualization: animated bar chart, 5 bars, each fading in with a staggered delay, gradient fills."

"Profile badge (400Γ—120): blue-to-purple gradient, white username text, drop shadow, subtle pulse animation."

Tools

Nakkas provides three tools:

ToolPurpose
render_svgTakes SVGConfig JSON, returns a PNG preview + artifact id (+ design analysis warnings)
previewRe-renders a stored artifact (or raw SVG) to PNG at any width
saveSaves a stored artifact (or raw content) to disk as SVG (text) or PNG (raster)

The intended workflow: render β†’ look at the returned preview β†’ revise the config β†’ render again β†’ save. The rendered SVG stays on the server as an artifact: render_svg answers with the preview image and an id like art-1, and preview/save accept that id directly. The SVG text never has to travel back through the model's context window, which cuts the token cost of an iteration loop to a fraction of pasting SVG around. Artifacts live for the server process lifetime (capped at 32, oldest evicted).

The save Tool

config.json
{ "artifact": "art-1", "outputPath": "./design.svg", "format": "auto" }

Pass either artifact (id from render_svg, preferred) or content (raw string). Formats: auto (infers from extension), svg (text file), png (renders to raster first). If the file exists, a numeric counter is appended to prevent overwriting. The actual saved path is returned.

The render_svg Tool

Input: SVGConfig JSON object Output: PNG preview image + a summary naming the artifact id, plus optional design analysis notes

The response shape is controlled by an optional output block in the config:

config.json
{ "output": { "svg": false, "preview": true, "previewWidth": 800, "minify": false } }
  • svg: true includes the full SVG text in the response (off by default; the artifact id covers preview and save)
  • preview: false skips the PNG image
  • previewWidth scales the preview
  • minify: true collapses whitespace in the stored and saved SVG
  • frames: N (2 to 10) replaces the static preview with one filmstrip image sampling the CSS animations at N points in time β€” the way to verify motion, since a single preview only shows the starting state

With frames, nakkas evaluates the @keyframes math itself (duration, delay, iteration count, direction, fill mode, easing per segment) and bakes each sampled state into a static frame. Transform origins declared as transform-box: fill-box are resolved numerically from the element's geometry. SMIL animations are not sampled.

After rendering, the response may include design warnings about common issues such as too many concurrent animations, missing transformBox, group-level scale transforms, content extending past the viewport (measured from the real rendered bounding box, with the overflow in pixels), or low-contrast text against the canvas background (WCAG ratios). Text gets its own layout audit: every text element's ink bounding box is measured through an isolated render, so text escaping the viewport is named with its exact overflow, and two texts printed over each other come back as an overlap warning naming both.

SVGConfig Structure

JSON Config
{
  canvas: {
    width: number | string,   // e.g. 800 or "100%"
    height: number | string,
    viewBox?: string,          // "0 0 800 400"
    background?: string        // hex "#111111" or "transparent"
  },

  defs?: {
    gradients?: Gradient[],   // linearGradient | radialGradient
    filters?: Filter[],        // preset or raw primitives
    clipPaths?: ClipPath[],
    masks?: Mask[],
    symbols?: Symbol[],
    paths?: { id, d }[],      // for textPath elements
    patterns?: Pattern[],     // repeating tile fills
    markers?: Marker[]        // arrowheads: triangle | arrow | circle | square | diamond | bar
  },

  elements: Element[],         // shapes, text, groups, use instances

  animations?: CSSAnimation[]  // CSS @keyframes definitions
}

Element Types

Read the full README β†’View source on GitHub β†’

Related MCP Servers

View all in Art & Culture View all alternatives
  • Icogenie MCP logoIcogenie MCP

    AI-powered SVG icon generation MCP server. Generate production-ready SVG icons from text descriptions with customizable styles.

    🎨 Art & Culture2 views
    Compare vs Icogenie MCP β†’
  • Svgmaker MCP logoSvgmaker MCP

    Provides AI-driven SVG generation and editing via natural language, with real-time updates and secure file handling.

    🎨 Art & Culture3 views
    Compare vs Svgmaker MCP β†’
  • Manim MCP Server logoManim MCP Server

    A local MCP server that generates animations using Manim.

    🎨 Art & Culture3 views
    Compare vs Manim MCP Server β†’
  • Davinci Resolve MCP logoDavinci Resolve MCP

    MCP server integration for DaVinci Resolve providing powerful tools for video editing, color grading, media management, and project control

    🎨 Art & Culture5 views
    Compare vs Davinci Resolve MCP β†’

Adoption & maintenance

Factual signals from GitHub, npm, and our automated checks β€” not a rating.

GitHub stars
22
Stargazers on the source repository.
Last commit
2mo ago
Most recent push to the default branch.
Tools exposed
3
Callable tools this server registers over MCP.
Directory activity
2 views
Config copies, upvotes, and views on AllMCPs.

Reviews

No reviews yet β€” be the first to share how this listing worked for you.

Frequently Asked Questions about Nakkas

Each render returns a PNG preview and an artifact ID, allowing the AI to critique and revise designs without the SVG text passing through its context window.

AllMCPs Directory Badge

Full Badge Customizer

Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.

Badge Style:
Live Dynamic SVG PreviewNakkas AllMCPs Directory Badge
Markdown (GitHub README)
[![AllMCPs](https://allmcps.com/api/badge/arikusi-nakkas?style=directory)](https://allmcps.com/mcp/arikusi-nakkas)
HTML Embed
<a href="https://allmcps.com/mcp/arikusi-nakkas"><img src="https://allmcps.com/api/badge/arikusi-nakkas?style=directory" alt="Nakkas on AllMCPs" /></a>

Technical Specs & Signals

Category🎨Art & Culture
PricingFree
More technical detailsExpand β–Ύ
TransportSTDIO
RuntimeNode.js
AuthNo auth required
LicenseMIT
ClientsClaude Desktop, Cursor
Last updatedAug 9, 2026
Views2
Unique ViewsTotal visits recorded for this listing page on AllMCPs.
Installs0
Installs & Copy ActionsTotal times users copied install commands or configuration snippets for this server.
GitHub stars22
GitHub Star CountTotal stargazers on GitHub representing community popularity (22 stars).
Last commit2mo ago
Last Repository CommitThe most recent commit or push recorded for this server's GitHub repository.Last commit on Jul 14, 2026
60Quality signal: Good Β· 60/100How this signal is calculated β–Ύ
Server availabilityNot measured

Not scored for repo-hosted servers β€” we can't reach the running server, only its GitHub page. Hosted MCP endpoints are health-checked live.

Verified ownership10/20
Documentation & tools30/30
Adoption & activity5/15
Community engagement0/10

A guidance signal from public completeness & health data β€” not a user rating. New listings start lower and rise as they add docs, get verified, and grow adoption. Signals we can't observe for a listing are skipped, not counted against it.

Supply-chain signal

No high-severity advisories surfaced by our automated scan.

Critical 0High 0Medium 0Low 0

Scanned 24d ago via OSV.dev Β· nakkas@latest (npm)

β˜… FeaturedMoxie Docs MCP logo

Moxie Docs MCP

MCP & Agent Skills for Automated Documentation, and codebase conventions + context

Explore Server β†’

Own this project?

This directory is pre-filled from public sources. Claim via GitHub README, site badge, or DNS TXT to unlock edit access and the Official badge β€” proof is checked automatically, then reviewed by our team.

Free dofollow backlink: add your website and place the AllMCPs badge on it β€” no claim needed. We detect it automatically and keep it verified as long as the badge stays live.

Claim & get free dofollow

Share & Embed

Add our SVG badge (dark/light directory styles) or embeddable widget to your site.

Explore more

More in 🎨 Art & Culture β†’Alternatives to Nakkas β†’Install in Claude DesktopInstall in CursorInstall in VS Code