Artscii

io.github.rxolvePublished by GitHub account rxolvev0.6.1Updated Oct 25, 2026

LLMs can't draw. This MCP can. 81 arts + 100 kaomoji + diagrams + charts.

VerifiedSTDIODesktop onlyData & AnalyticsMedia & Design

Overview

AI-generated overview

A local MCP server that gives an assistant ASCII art tools: searchable art and kaomoji, banners, frames, charts, diagrams, animations and image-to-ASCII.

What you can do
Search and fetch curated ASCII art and kaomoji by query, type or emotion, or list them all and pick by ID. Render large FIGlet banners, box frames around text, and combine text blocks side by side or stacked. Draw charts (progress, sparkline, heatmap) and 11 diagram types such as flowchart, tree, table, sequence, class, ER, mindmap and Gantt. Generate seeded procedural characters with species, mood and accessories, and compose art with motions into terminal animations. Convert images from a URL or base64 into ASCII or braille art.
When to use it
Useful when you want terminal-friendly visuals in text output: decorating chat or status lines, illustrating docs and READMEs, sketching diagrams and charts, or turning a small image into ASCII without leaving the assistant.
Requirements
Runs locally over stdio via npx (Node.js required); no authentication, environment variables or headers are declared. Image conversion needs a reachable image URL or base64 input.
Before you install
Image conversion sends the supplied URL to fetch the image, so avoid pointing it at private or sensitive addresses. Animation output can be a bash script for terminal playback, so review it before running. Everything else appears to be local text generation.

Installation

In SourceWeft

  1. Open Artscii in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

artscii

[npm]

LLMs can't draw. This MCP can.

ASCII art, kaomoji, animations, diagrams, charts, image conversion & procedural characters — 11 focused tools for AI agents.

81 curated arts × 12 motions = 972 terminal animations. 153,600 unique procedural characters from a single seed. Plus 100 kaomoji, 11 diagram types, FIGlet banners, and image-to-ASCII with braille mode.

     .::-::.         .:-::.        --- apple (16w) ---  .=#%@@@@@%#=:  .=*%@@@@@%#+:           +: -%@@@@@@@@@@@%*+%@@@@@@@@@@@%+      :--:#*.--:.%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@-    -#@@@@#%@@@@%=-@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*   :@@@%****+#%@@@:.%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@=   -@%%%+*@@+*@%%@- =@@@@@@@@@@@@@@@@@@@@@@@@@@@@*     *@@%+*+#=#%@@#  -#@@@@@@@@@@@@@@@@@@@@@@@@%=       +%@@@#@@@@%+    =%@@@@@@@@@@@@@@@@@@@@%*.         .-+**=*+=.      =#@@@@@@@@@@@@@@@@%+.        =#@@@@@@@@@@@@%+.    ʕ•ᴥ•ʔ  (◕‿◕)  (╯°□°)╯︵ ┻━┻          -#@@@@@@@@%+.            -#@@@@%=.              -*#=

Install

Claude Code — one command:

bash
claude mcp add artscii -- npx -y artscii

Claude Desktop — add to claude_desktop_config.json:

json
{ "mcpServers": { "artscii": { "command": "npx", "args": ["-y", "artscii"] } } }

Cursor — add to .cursor/mcp.json:

json
{ "mcpServers": { "artscii": { "command": "npx", "args": ["-y", "artscii"] } } }

VS Code — search @mcp artscii in Extensions panel, or add to settings.json:

json
{ "mcp": { "servers": { "artscii": { "command": "npx", "args": ["-y", "artscii"] } } } }

MCP Tools

ToolParametersDescription
searchquery?, type?, random?, mode?Search art + kaomoji. Omit query to list all
getidGet art by ID
kaomojiquery?, category?Get kaomoji by emotion. Omit for random
bannertext, font?Render large ASCII text (FIGlet, 5 fonts)
frametext, style?, padding?, align?, title?Draw box/frame around text (5 styles)
charttype, ...Data visualization: progress, sparkline, heatmap
animateart, motion, output?Compose art + motion → terminal animation
characterseed, species?, eyes?, mouth?, hat?, accessory?, mood?, size?Generate unique ASCII character from seed
composeblocks, mode?, gap?, align?Combine text blocks side-by-side or stacked
converturl?, base64?, mode?, size?, ...Image → ASCII (ascii or braille mode)
diagramtype, ...Generate ASCII diagrams (11 types)

Box Frames

Draw borders around any text with 5 styles:

┌───────┐   ╔═══════╗   ╭───────╮   ┏━━━━━━━┓   +-------+│ hello │   ║ hello ║   │ hello │   ┃ hello ┃   | hello |└───────┘   ╚═══════╝   ╰───────╯   ┗━━━━━━━┛   +-------+ single      double      rounded       bold        ascii

Options: padding, align (left/center/right), title in top border.

Charts

Unified chart tool with 3 types: progress, sparkline, heatmap.

Progress:   ███████████████░░░░░ 75%Sparkline:  ▁▂▃▄▅▆▇█▇▅▃▁Heatmap:     A B C           X ░▒█           Y ▓░▒

Animations

Compose any art (noun) with a motion (verb) to create terminal animations. 81 arts × 12 motions = 972 combinations. Custom text works too.

animate("apple", "bounce")     → bouncing appleanimate("trophy", "progress")  → trophy rides a progress bar 0→100%animate("lock", "reveal")      → line-by-line revealanimate("GAME OVER", "blink")  → blinking custom text

Motions: bounce, shake, blink, slide, reveal, fade, pulse, rain, progress, wave, jump, talk

Output: script (bash for terminal playback) or frames (raw data)

Character

Procedural ASCII character generator. One seed → one unique character. 153,600 standard combinations (16 species × 10 eyes × 8 mouths × 10 hats × 12 accessories).

character("alice")                   character("bob", mood: "happy")
   ____                                  /\_/\  ]==== )                                ( ^ ^ )  _____                                  ( u ) / * * \                                  \_^_/|   u   | \_____/  |||||   ~~o=o~~

Species: blob, cat, bear, robot, bird, bunny, ghost, alien, fox, frog, penguin, octopus, dragon, mushroom, cactus, skull

Mood presets: happy, sad, angry, surprised, sleepy, cool, love, silly — sets eyes+mouth in one param. Explicit eyes/mouth still override.

Mini mode: 2-line inline characters for chat and status lines.

mini blob: (^ ^)    mini cat: /^ ^\    mini robot: [^ ^]            (u)                >u<                  [u]

Same seed always produces the same character. Output works directly with the animate tool — try wave, jump, or talk motions.

Compose

Combine multiple text blocks horizontally (side-by-side) or vertically (stacked):

┌───┐ ┌───┐         ┌───┐│ A │ │ B │         │ A │└───┘ └───┘         └───┘ horizontal          ---                    ┌───┐                    │ B │                    └───┘                    vertical

Options: gap, align (top/middle/bottom), separator (vertical mode).

Image Conversion

Convert images (URL or base64) to ASCII art. Two render modes:

  • ascii — character ramp ( .:-=+*#%@), classic look
  • braille — Unicode braille dots (⠿), 8x resolution per character

Options: size (16/32/64), invert, contrast, gamma, threshold (braille).

Diagrams

11 diagram types with unicode, rounded, and ascii border styles.

TypeRequired fieldsOutput
flowchartnodesVertical flow with │ ▼ connectors
boxtitle, linesTitle + separator + body
treeroot ({label, children?})├── └── hierarchy
tableheaders, rowsColumn-aligned grid
sequenceactors, messagesActor lifelines with arrows
timelineeventsVertical ● │ event list
baritems, maxWidth?Horizontal █ bar chart
classclassesUML class with properties/methods
erentities, relationshipsEntity-relationship diagram
mindmaprootHorizontal mind map tree
gantttasks, unitLabel?Gantt chart with timelines
┌─────────┐    ╭──────────╮    ┌──────┬───────┐    src│  Start  │    │  Status  │    │ Name │ Score │    ├── index.ts└────┬────┘    ├──────────┤    ├──────┼───────┤    └── diagram.ts     │         │ Line 1   │    │ A    │ 95    │     ▼         │ Line 2   │    │ B    │ 87    │┌─────────┐    ╰──────────╯    └──────┴───────┘│   End   │└─────────┘ flowchart       box              table              tree

Class Diagram

json
{ "type": "class", "classes": [  { "name": "Animal", "properties": ["+ name: string"], "methods": ["+ speak(): void"] },  { "name": "Dog", "properties": ["+ breed: string"], "methods": ["+ bark(): void"] }]}
┌──────────────────┐│      Animal       │├──────────────────┤│ + name: string   │├──────────────────┤│ + speak(): void  │└──────────────────┘         ▲         │┌──────────────────┐│       Dog         │├──────────────────┤│ + breed: string  │├──────────────────┤│ + bark(): void   │└──────────────────┘

Gantt Chart

json
{ "type": "gantt", "tasks": [  { "label": "Design", "start": 0, "duration": 3 },  { "label": "Develop", "start": 2, "duration": 5 },  { "label": "Test", "start": 5, "duration": 3 }], "unitLabel": "weeks" }
            0   2   4   6   8 weeks            ┼────────────────────Design      ████████Develop         █████████████████Test                 ████████████

Banner

Render text as large ASCII art using FIGlet fonts: Standard, Small, Slant, Big, Mini.

Size Tiers

Each art is stored at its minimum identifiable size.

TierDimensionsFor
16w16 x 8Icons, symbols, simple shapes
32w32 x 16Animal silhouettes, emoji
64w64 x 32Detailed scenes (rare)

Kaomoji

100 curated entries across 26 categories. Source: kao.moji (MIT).

CategoryExamples
happy(◕‿◕) ◉‿◉ (≧◡≦)
sad(ಥ﹏ಥ) ╥﹏╥ (;﹏;)
angryಠ_ಠ (¬_¬) 눈_눈
love♡^▽^♡ (•ө•)♡ ✿♥‿♥✿
confused¯\_(ツ)_/¯ ◔_◔ (・・?)
animalsʕ•ᴥ•ʔ ฅ•ω•ฅ (•ㅅ•)
table-flip(╯°□°)╯︵ ┻━┻ ┬─┬ノ(ಠ_ಠノ)
+ 19 moreexcited, greeting, celebrate, hug, surprised, sleepy, nervous, wink, magic, laughing, determined, eating, dancing, hopeful, jealous, ...

License

MIT. Art icons from game-icons.net (CC BY 3.0, Lorc & Delapouite).

Source: README.md at commit 988638a

Tools

0
SourceWeft has not started this package in its sandbox yet, so its tools are not known.

Version history

1
  1. v0.6.1LatestSep 16, 2026

Score

50% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts

    Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.

  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts