Skip to main content
Glama
rxolve
by rxolve

artscii

npm

Los LLM no saben dibujar. Este MCP sí.

Arte ASCII, kaomoji, animaciones, diagramas, gráficos, conversión de imágenes y personajes procedimentales: 11 herramientas enfocadas para agentes de IA.

81 artes seleccionados × 12 movimientos = 972 animaciones de terminal. 153.600 personajes procedimentales únicos a partir de una sola semilla. Además, 100 kaomoji, 11 tipos de diagramas, banners FIGlet y conversión de imagen a ASCII con modo braille.

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

Instalación

Claude Code — un comando:

claude mcp add artscii -- npx -y artscii

Claude Desktop — añadir a claude_desktop_config.json:

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

Cursor — añadir a .cursor/mcp.json:

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

VS Code — buscar @mcp artscii en el panel de extensiones, o añadir a settings.json:

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

Related MCP server: Ascii Art AI MCP

Herramientas MCP

Herramienta

Parámetros

Descripción

search

query?, type?, random?, mode?

Buscar arte + kaomoji. Omitir query para listar todo

get

id

Obtener arte por ID

kaomoji

query?, category?

Obtener kaomoji por emoción. Omitir para aleatorio

banner

text, font?

Renderizar texto ASCII grande (FIGlet, 5 fuentes)

frame

text, style?, padding?, align?, title?

Dibujar caja/marco alrededor del texto (5 estilos)

chart

type, ...

Visualización de datos: progreso, sparkline, mapa de calor

animate

art, motion, output?

Componer arte + movimiento → animación de terminal

character

seed, species?, eyes?, mouth?, hat?, accessory?, mood?, size?

Generar personaje ASCII único a partir de una semilla

compose

blocks, mode?, gap?, align?

Combinar bloques de texto lado a lado o apilados

convert

url?, base64?, mode?, size?, ...

Imagen → ASCII (modo ascii o braille)

diagram

type, ...

Generar diagramas ASCII (11 tipos)

Marcos de caja

Dibuje bordes alrededor de cualquier texto con 5 estilos:

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

Opciones: padding, align (izquierda/centro/derecha), title en el borde superior.

Gráficos

Herramienta chart unificada con 3 tipos: progreso, sparkline, mapa de calor.

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

Animaciones

Compona cualquier arte (sustantivo) con un movimiento (verbo) para crear animaciones de terminal. 81 artes × 12 movimientos = 972 combinaciones. El texto personalizado también funciona.

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

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

Salida: script (bash para reproducción en terminal) o frames (datos crudos)

Personaje

Generador de personajes ASCII procedimentales. Una semilla → un personaje único. 153.600 combinaciones estándar (16 especies × 10 ojos × 8 bocas × 10 sombreros × 12 accesorios).

character("alice")                   character("bob", mood: "happy")

   ____                                  /\_/\
  ]==== )                                ( ^ ^ )
  _____                                  ( u )
 / * * \                                  \_^_/
|   u   |
 \_____/
  |||||
   ~~o=o~~

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

Preajustes de estado de ánimo: happy, sad, angry, surprised, sleepy, cool, love, silly — establece ojos+boca en un solo parámetro. Los ojos/boca explícitos siguen teniendo prioridad.

Modo mini: personajes en línea de 2 líneas para chat y líneas de estado.

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

La misma semilla siempre produce el mismo personaje. La salida funciona directamente con la herramienta animate: pruebe los movimientos wave, jump o talk.

Composición

Combine múltiples bloques de texto horizontalmente (lado a lado) o verticalmente (apilados):

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

Opciones: gap, align (arriba/medio/abajo), separator (modo vertical).

Conversión de imágenes

Convierta imágenes (URL o base64) a arte ASCII. Dos modos de renderizado:

  • ascii — rampa de caracteres ( .:-=+*#%@), aspecto clásico

  • braille — puntos braille Unicode (⠿), resolución 8x por carácter

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

Diagramas

11 tipos de diagramas con estilos de borde unicode, rounded y ascii.

Tipo

Campos requeridos

Salida

flowchart

nodes

Flujo vertical con conectores │ ▼

box

title, lines

Título + separador + cuerpo

tree

root ({label, children?})

Jerarquía ├── └──

table

headers, rows

Cuadrícula alineada por columnas

sequence

actors, messages

Líneas de vida de actores con flechas

timeline

events

Lista de eventos vertical ● │

bar

items, maxWidth?

Gráfico de barras horizontal █

class

classes

Clase UML con propiedades/métodos

er

entities, relationships

Diagrama entidad-relación

mindmap

root

Árbol de mapa mental horizontal

gantt

tasks, unitLabel?

Gráfico de Gantt con líneas de tiempo

┌─────────┐    ╭──────────╮    ┌──────┬───────┐    src
│  Start  │    │  Status  │    │ Name │ Score │    ├── index.ts
└────┬────┘    ├──────────┤    ├──────┼───────┤    └── diagram.ts
     │         │ Line 1   │    │ A    │ 95    │
     ▼         │ Line 2   │    │ B    │ 87    │
┌─────────┐    ╰──────────╯    └──────┴───────┘
│   End   │
└─────────┘
 flowchart       box              table              tree

Diagrama de clases

{ "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   │
└──────────────────┘

Gráfico de Gantt

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

Renderice texto como arte ASCII grande usando fuentes FIGlet: Standard, Small, Slant, Big, Mini.

Niveles de tamaño

Cada arte se almacena en su tamaño identificable mínimo.

Nivel

Dimensiones

Para

16w

16 x 8

Iconos, símbolos, formas simples

32w

32 x 16

Siluetas de animales, emoji

64w

64 x 32

Escenas detalladas (raro)

Kaomoji

100 entradas seleccionadas en 26 categorías. Fuente: kao.moji (MIT).

Categoría

Ejemplos

happy

(◕‿◕) ◉‿◉ (≧◡≦)

sad

(ಥ﹏ಥ) ╥﹏╥ (;﹏;)

angry

ಠ_ಠ (¬_¬) 눈_눈

love

♡^▽^♡ (•ө•)♡ ✿♥‿♥✿

confused

¯\_(ツ)_/¯ ◔_◔ (・・?)

animals

ʕ•ᴥ•ʔ ฅ•ω•ฅ (•ㅅ•)

table-flip

(╯°□°)╯︵ ┻━┻ ┬─┬ノ(ಠ_ಠノ)

+ 19 más

excited, greeting, celebrate, hug, surprised, sleepy, nervous, wink, magic, laughing, determined, eating, dancing, hopeful, jealous, ...

Licencia

MIT. Iconos de arte de game-icons.net (CC BY 3.0, Lorc & Delapouite).

Available Tools

11 tools
animateA

Compose ASCII animations: combine any art with a motion. Motions: bounce, shake, blink, slide, reveal, fade, pulse, rain, progress, wave, jump, talk. Returns a bash script or raw frames.

ParametersJSON Schema
NameRequiredDescriptionDefault
artYesArt ID (e.g. "heart", "cat", "trophy") or custom ASCII text
motionYesMotion type to apply
outputNo"script" = bash script for terminal. "frames" = raw frame data.script

TDQS

A3.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full behavioral burden. It mentions output ('bash script or raw frames') but lacks details on side effects, permissions, or what happens with custom ASCII text versus art IDs. Minimal insight into tool behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single, front-loaded sentence with a list of motions. No wasted words. Every element serves a purpose: verb, resource, options, and output types are efficiently communicated.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple tool with 3 fully-described parameters and no output schema, the description covers the core functionality. It could elaborate on 'raw frames' format, but overall adequacy is high given the tool's low complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. Description adds 'combine any art with a motion' but largely repeats schema information (motion list, output enum). Minimal added meaning beyond the schema's own descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states the action ('compose') and resource ('ASCII animations'), and explicitly lists available motions and output types. It effectively distinguishes from sibling tools like 'frame' (static) or 'chart' (different purpose).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool versus alternatives like 'frame' or 'compose'. Context is implied but not directly compared, leaving the agent to infer usage without exclusions or prerequisites.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

characterA

Generate a unique ASCII character from a seed. 153600 possible combinations (16 species × 10 eyes × 8 mouths × 10 hats × 12 accessories). Same seed always produces the same character. Use mood for quick expression presets. Output can be piped to the animate tool.

ParametersJSON Schema
NameRequiredDescriptionDefault
seedYesDeterministic seed string — same seed = same character
speciesNoBody override
eyesNoEyes override
mouthNoMouth override
hatNoHat override
accessoryNoAccessory override
moodNoExpression preset (overrides eyes+mouth). Explicit eyes/mouth still take priority.
sizeNoSize: "standard" (full character) or "mini" (2-line inline, no hat/accessory)standard

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden. It discloses determinism (same seed = same character), override priority for explicit eyes/mouth over mood, and the effect of size field ('mini' excludes hat/accessory). It does not mention permissions, rate limits, or side effects, but these are less critical for a generation tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, each delivering unique information: purpose and combinations, determinism, and usage tips (mood, piping). No filler, well front-loaded, and every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 8 parameters (1 required, 7 enums) and no output schema, the description covers determinism, mood priority, size options, and integration with animate. It could mention the output format more explicitly (e.g., string representation), but overall it's sufficiently complete for correct usage.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with descriptions for each parameter. The description adds value beyond schema by explaining mood as a quick preset for eyes+mouth, the deterministic nature of seed, the total combination count (153,600), and the ability to pipe output to animate. This contextual information enhances parameter understanding.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it generates an ASCII character from a seed, with specific verb 'Generate' and resource 'unique ASCII character'. It mentions 153,600 combinations and determinism. However, it does not explicitly differentiate from sibling tools like kaomoji or animate, though the context implies it's a character generator.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description advises using 'mood' for quick expression presets and notes output can be piped to 'animate' tool. It provides some usage guidance but does not offer exclusions or alternative tools for different scenarios.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

chartB

Render data as ASCII charts. Types: progress (bar), sparkline (trend), heatmap (2D grid).

ParametersJSON Schema
NameRequiredDescriptionDefault
typeYesChart type
percentNoProgress: completion % (0-100)
itemsNoProgress: multiple labeled bars
valuesNoSparkline: numeric values to chart
dataNoHeatmap: 2D array of numeric values
rowLabelsNoHeatmap: row labels
colLabelsNoHeatmap: column labels
widthNoWidth in characters
styleNoVisual style (varies by type)default
labelNoProgress: label for single bar

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden of behavioral disclosure. It only states 'Render data as ASCII charts' and lists types, but fails to explain output format, side effects, resource usage, or limitations. This is insufficient for an agent to understand the tool's behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that front-loads the main purpose and lists types. It is concise and avoids verbosity. However, it could benefit from a slightly more structured format to enhance readability, but overall it is efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity of 10 parameters and no output schema, the description is incomplete. It does not explain how parameters relate to each chart type (e.g., percent vs items for progress), nor does it describe the output format or return value. This leaves gaps for effective use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema description coverage is 100%, so the meaning of each parameter is already clear from the schema. The description adds contextual grouping (e.g., progress=bar, sparkline=trend, heatmap=2D grid) which helps, but does not add significant new semantic value beyond what the schema provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool renders data as ASCII charts and lists the supported types (progress, sparkline, heatmap). The verb 'Render' and resource 'data as ASCII charts' are specific, and the tool is easily distinguished from sibling tools like animate or diagram.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives among siblings. It does not mention when-not to use it or suggest alternative tools for related tasks, leaving the agent with no context for selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

composeB

Combine multiple text blocks side-by-side or stacked.

ParametersJSON Schema
NameRequiredDescriptionDefault
blocksYesText blocks to combine
modeNoLayout modehorizontal
gapNoGap between blocks (spaces for horizontal, blank lines for vertical)
alignNoVertical alignment for horizontal modetop
separatorNoSeparator string for vertical mode

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description bears full responsibility. It only states the basic operation without detailing behavior like handling unequal block lengths, whitespace, or output format, leaving significant ambiguity.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single concise sentence that immediately conveys the purpose. It is well-sized but could benefit from slightly more detail without becoming verbose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 5 parameters, no output schema, and no annotations, the description is too sparse. It fails to explain return values or provide context for using the parameters, leaving the agent underinformed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already documents all parameters with descriptions, achieving 100% coverage. The description adds no additional meaning beyond the schema, so baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states the tool combines text blocks side-by-side or stacked, specifying the verb and resource. It effectively distinguishes from sibling tools like search or animate, which handle different operations.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives or when not to use it. The description lacks any context about prerequisites or appropriate use cases.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

convertB

Convert an image (URL or base64) to ASCII art. Modes: "ascii" (character ramp) or "braille" (2x4 dot grid, higher fidelity).

ParametersJSON Schema
NameRequiredDescriptionDefault
urlNoImage URL to convert
base64NoBase64-encoded image data
sizeNoArt size tier: "16" (simple, default), "32" (medium), "64" (detailed)16
modeNoRender mode: "ascii" (character ramp) or "braille" (Unicode dots, 8x resolution)ascii
invertNoInvert brightness
contrastNoApply auto-contrast
gammaNoGamma correction
thresholdNoBraille mode: brightness threshold for dot activation (0-1)

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must cover behavioral traits. It only mentions modes but omits important details like error handling, input size limits, format requirements, or whether the action is read-only. The description is insufficient for complete behavioral understanding.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description consists of two concise sentences that convey the core functionality and modes. It is front-loaded, efficient, and every sentence serves a purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 8 parameters and no output schema, the description is too brief. It does not explain the output format (e.g., how ASCII art is returned), potential limitations, or provide examples. This lack of context could hinder correct usage.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and each parameter has a description in the schema. The description adds little beyond summarizing modes, which is already in the schema. Thus it meets the baseline without adding substantial meaning.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool converts an image to ASCII art, specifies two modes (ascii and braille), and the verb 'convert' plus resource 'image' makes the purpose unambiguous. It distinguishes from sibling tools like 'animate' or 'banner' which likely have different outputs.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description does not provide guidance on when to use this tool versus alternatives (e.g., other image tools). It mentions two modes but no context on which mode to choose under different circumstances.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

diagramB

Generate ASCII diagrams: flowcharts, boxes, trees, tables, sequence, timeline, bar, class, ER, mindmap, and gantt.

ParametersJSON Schema
NameRequiredDescriptionDefault
typeYesDiagram type
nodesNoFlowchart: list of step labels
titleNoBox: title text
linesNoBox: body lines
rootNoTree/Mindmap: root node with label and optional children
headersNoTable: column headers
rowsNoTable: data rows
styleNoBorder style: unicode (default), rounded, or asciiunicode
actorsNoSequence: list of actor names
messagesNoSequence: messages between actors
eventsNoTimeline: list of events with label and description
itemsNoBar: list of items with label and numeric value
maxWidthNoBar: maximum bar width in characters (default 20)
classesNoClass: list of classes with name, properties, methods
entitiesNoER: list of entities with name and attributes
relationshipsNoER: relationships between entities (from, to, label like "1:N")
tasksNoGantt: tasks with label, start position, and duration
unitLabelNoGantt: label for time units (e.g. "weeks", "sprints")

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description bears the full burden of disclosing behavior. It only says 'Generate ASCII diagrams' without specifying side effects, output format, required permissions, or any constraints beyond those in the schema. This is insufficient for a tool that accepts many parameters.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence that efficiently conveys the tool's purpose and scope without unnecessary words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's 18 parameters and no output schema, the description is too brief. It lacks context on how parameters interact, expected output format (ASCII art string), and example usage, making it insufficient for complex multi-type diagram generation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with good descriptions per parameter. The tool description does not add parameter-specific meaning beyond the schema, so it meets the baseline for high coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description explicitly states 'Generate ASCII diagrams' and lists 11 specific diagram types, making the tool's purpose clear and distinguishing it from sibling tools like 'chart' which likely produce different visual outputs.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives, nor does it mention limitations, prerequisites, or when not to use it. An agent would have to infer usage solely from the tool name and description.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

frameB

Draw a box/frame around text. Styles: single, double, rounded, bold, ascii.

ParametersJSON Schema
NameRequiredDescriptionDefault
textYesText to frame (supports multi-line)
styleNoBorder stylesingle
paddingNoInner padding (spaces)
alignNoText alignmentleft
titleNoOptional title in the top border

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, and the description only states the basic action without disclosing side effects, performance characteristics, or limitations beyond what the schema already indicates.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence that efficiently conveys the core functionality without any wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

While the tool is simple and the schema covers parameters well, there is no output schema and the description does not describe the return format or any additional behavior, leaving some ambiguity for the agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already explains each parameter. The description adds minimal value by listing styles again, but does not provide additional detail beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states 'Draw a box/frame around text' which is a specific verb+resource, and lists available styles, distinguishing it from sibling tools like 'banner' or 'chart'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives, nor when not to use it. Implied by the description but no explicit context or exclusions provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

getC

Get ASCII art by ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesArt ID (e.g. "cat", "sun", "heart")

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Without annotations, the description carries full behavioral disclosure burden. It only states the action but does not mention side effects, authentication, rate limits, or error behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence with no wasted words. However, it is arguably too brief for a tool with no annotations or output schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the lack of annotations and output schema, the description is minimal. It does not explain what the output is (e.g., text string), how IDs map to art, or any constraints.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with a clear description of the 'id' parameter including examples. The description adds no extra meaning beyond 'by ID', so baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Get' and resource 'ASCII art' via 'by ID', which is specific. It implies a retrieval action, distinguishing from sibling tools like 'search' or 'animate'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus sibling alternatives (e.g., when to use 'search' instead). The description lacks context for tool selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

kaomojiA

Get a kaomoji (Japanese text emoticon) by emotion or keyword. Perfect for inline text expressions.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryNoEmotion or keyword (e.g. "happy", "sad", "cat", "shrug"). Omit for random.
categoryNoFilter by category (e.g. "happy", "animals", "table-flip")

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description carries full burden. It does not disclose any behavioral traits beyond basic retrieval; e.g., no mention of random behavior when query omitted, though implied by schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences, front-loaded with action. No redundant information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple retrieval tool with no output schema, the description provides core purpose and a use case. Lacks mention of return format or error handling, but acceptable for this complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema already describes both parameters with 100% coverage. Description adds only 'inline text expressions' context, which is not about parameter semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states it retrieves kaomoji by emotion or keyword. Sibling tools are different domains (animate, banner, etc.), so no confusion.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Mentions 'perfect for inline text expressions' as a general use case, but no explicit guidance on when to use this tool versus siblings or when to choose query vs. category.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 13 tool updates
    • Addedanimate
    • Removedcategories
    • Addedcharacter
    • Addedchart
    • Addedcompose
    • Changedconvert3 fields changed
      • addedInput schema / properties / mode
        Added value: +{
        +  "default": "ascii",
        +  "description": "Render mode: \"ascii\" (character ramp) or \"braille\" (Unicode dots, 8x resolution)",
        +  "enum": [
        +    "ascii",
        +    "braille"
        +  ],
        +  "type": "string"
        +}
      • removedInput schema / properties / save
        Removed value: -{
        -  "description": "Save the converted art to the store",
        -  "properties": {
        -    "category": {
        -      "maxLength": 30,
        -      "type": "string"
        -    },
        -    "description": {
        -      "maxLength": 200,
        -      "type": "string"
        -    },
        -    "name": {
        -      "maxLength": 30,
        -      "type": "string"
        -    },
        -    "tags": {
        -      "items": {
        -        "maxLength": 20,
        -        "type": "string"
        -      },
        -      "maxItems": 5,
        -      "type": "array"
        -    }
        -  },
        -  "required": [
        -    "name",
        -    "category",
        -    "tags"
        -  ],
        -  "type": "object"
        -}
      • addedInput schema / properties / threshold
        Added value: +{
        +  "default": 0.5,
        +  "description": "Braille mode: brightness threshold for dot activation (0-1)",
        +  "maximum": 1,
        +  "minimum": 0,
        +  "type": "number"
        +}
    • Removeddelete
    • Addeddiagram
    • Addedframe
    • Removedlist
    • Removedrandom
    • Changedsearch4 fields changed
      • addedInput schema / properties / mode
        Added value: +{
        +  "default": "search",
        +  "description": "Mode: \"search\" (default) or \"categories\" to list categories",
        +  "enum": [
        +    "search",
        +    "categories"
        +  ],
        +  "type": "string"
        +}
      • changedInput schema / properties / query / description
        Previous value: -"Search keyword (matches id, name, category, tags)"New value: +"Search keyword (matches id, name, category, tags). Omit to list all."
      • addedInput schema / properties / random
        Added value: +{
        +  "default": false,
        +  "description": "Return one random entry",
        +  "type": "boolean"
        +}
      • removedInput schema / required
        Removed value: -[
        -  "query"
        -]
    • Removedsubmit
  2. 10 tool updatesv0.3.3
    • First observedbanner
    • First observedcategories
    • First observedconvert
    • First observeddelete
    • First observedget
    • First observedkaomoji
    • First observedlist
    • First observedrandom
    • First observedsearch
    • First observedsubmit

TDQS

A3.7/5.0

Scored across 11 tools

Disambiguation5/5

Each tool targets a distinct aspect of ASCII art: generation (banner, character, convert, diagram, chart, kaomoji), manipulation (animate, compose, frame), and retrieval (get, search). No two tools have overlapping purposes, making it easy for an agent to select the correct one.

Naming Consistency5/5

All tool names are lowercase single words (e.g., animate, banner, chart) with no underscores or mixed casing. The naming pattern is perfectly consistent.

Tool Count5/5

With 11 tools, the server is well-scoped for ASCII art creation and manipulation. Each tool serves a clear purpose, and the count is neither too sparse nor overwhelming for an agent.

Completeness4/5

The tool set covers generation, conversion, diagramming, charting, animation, and search. Missing are editing tools (e.g., resize, crop) or a dedicated save/output tool, but the core workflow is complete and an agent can accomplish most tasks.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers