Ascii Art

io.github.theduodecimPublished by GitHub account theduodecimv0.1.1Updated Oct 28, 2026

MCP server that exposes ASCII and Unicode art tools

VerifiedSTDIODesktop onlyKnowledge & MemoryMedia & Design

Overview

AI-generated overview

Local MCP server that gives an assistant tools to look up, search and randomly pick ASCII and Unicode art from a bundled JSON database.

What you can do
  • Look up an art entry by exact name or alias and return its art as plain text
  • Search entries by category, tag or both and get the matching art combined
  • Fetch a random ASCII or Unicode entry
  • List all categories present in the database
When to use it
Useful when you want an assistant to decorate terminal output, chat replies or documentation with ASCII/Unicode art, or to browse a small curated art collection by category and tag. It is a static, read-only data source, not a generator.
Requirements
Runs locally over stdio as an npm package (ascii-art-mcp), needing Node.js 20+ and npm; it reads its data from a db.json file in the repository root. No API keys or authentication are required.
Before you install
Read-only lookups with no credentials requested. The README suggests pasting a repository link into an AI chat so it clones, builds and runs the server automatically; installing and running third-party code that way is worth reviewing first. Results come only from the bundled db.json, so the art set is fixed.

Installation

In SourceWeft

  1. Open Ascii Art 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

ascii-art-mcp

[Ascii Art MCP server]

ascii-art-mcp is a Model Context Protocol (MCP) server built with Node.js and TypeScript that exposes tools for retrieving ASCII and Unicode art from a local database.

The server communicates using stdio transport, making it compatible with MCP clients such as:

  • Claude Desktop
  • Cursor
  • LM Studio
  • Open WebUI
  • Other MCP-compatible environments

https://theduodecim.github.io/ascii-art-mcp/

▶ Run this MCP

Just drop this link into any MCP-compatible AI chat:

https://github.com/theduodecim/ascii-art-mcp/tree/main

"Run this MCP"

The AI will clone the repo, build it, and run it automatically. No setup needed on your end.


📦 Installation

The package is available on npm:

https://www.npmjs.com/package/ascii-art-mcp

Install locally:

bash
npm install ascii-art-mcp

Or run directly:

bash
npx ascii-art-mcp

🌐 MCP Registry

This server is also published in the official Model Context Protocol Registry:

https://registry.modelcontextprotocol.io/?q=ascii-art

Server name:

io.github.theduodecim/ascii-art

This allows MCP-compatible tools to discover and install it automatically.


⚙️ Requirements

  • Node.js 20+
  • npm

🚀 Running the server manually

Development mode:

bash
npm run dev

Build + production run:

bash
npm run buildnpm start

The server uses stdio transport and loads its data from:

db.json

located in the repository root.


🧰 Available MCP Tools

get_ascii_art

Finds an art entry by exact nombre or by an exact value in aliases.

Input

FieldTypeRequired
querystringyes

Output

Returns the entry's art field as plain text.


search_ascii

Searches entries by categoria, tags, or both.

Input

FieldTypeRequired
categoriastringoptional
tagstringoptional

At least one filter is required.

Output

Returns matching entries' art fields combined as text output.


random_ascii

Returns a random entry from the database.

Input

FieldTypeRequired
tipoascii | unicoderequired

Output

Returns the selected entry's art field as plain text.


list_categories

Lists all unique categories present in the database.

Input

None

Output

Category names as newline-separated text.


🗂 Data Model

Entries in db.json follow the AsciiArtEntry TypeScript interface:

src/types/asciiArt.ts

Each entry contains metadata such as:

  • name
  • category
  • tags
  • aliases
  • art content

🧪 Testing the MCP Server

A simple integration test was used to verify MCP communication using JSON-RPC over stdio.

Example test script (test.mjs):

javascript
import { spawn } from "child_process";
const proc = spawn("node", ["dist/server.js"], {  stdio: ["pipe", "pipe", "pipe"]});
proc.stderr.on("data", (d) => {  console.log("LOG:", d.toString());});
proc.stdout.on("data", (d) => {  console.log("SERVER:", d.toString());});
function send(msg) {  const json = JSON.stringify(msg);  const payload = `Content-Length: ${Buffer.byteLength(json)}\r\n\r\n${json}\r\n`;
  console.log("\nSENDING:\n", json, "\n");
  proc.stdin.write(payload);}
setTimeout(() => {  send({    jsonrpc: "2.0",    id: 1,    method: "initialize",    params: {      protocolVersion: "2024-11-05",      capabilities: {},      clientInfo: {        name: "tester",        version: "1.0"      }    }  });}, 500);
setTimeout(() => {  send({    jsonrpc: "2.0",    method: "initialized",    params: {}  });}, 1000);
setTimeout(() => {  send({    jsonrpc: "2.0",    id: 2,    method: "tools/list"  });}, 1500);
setTimeout(() => {  proc.kill();  console.log("TEST FINISHED");}, 4000);

🧠 Architecture

src/  server.ts  tools/  types/
dist/
db.json
  • TypeScript MCP server
  • JSON database (db.json)
  • Zod validation for tool inputs
  • stdio transport

🎯 Purpose

This project demonstrates how to build a simple MCP tool server that:

  • runs locally
  • requires no API keys
  • exposes structured tools
  • serves static data through MCP

📜 License

MIT

Source: README.md at commit b9c179d

Tools

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

Version history

1
  1. v0.1.1LatestSep 16, 2026

Score

40% 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

    Declare a license in the repository or the registry entry.