Ascii Art

io.github.theduodecim由 GitHub 帳號 theduodecim 發布v0.1.1更新於 Oct 28, 2026

MCP server that exposes ASCII and Unicode art tools

已驗證STDIO僅桌面知識與記憶媒體與設計

概覽

AI 產生的概覽

本機 MCP 伺服器,讓助理能從內附的 JSON 資料庫中查找、搜尋並隨機取得 ASCII 與 Unicode 藝術字。

可以做什麼
  • 依精確名稱或別名查找藝術字條目,並以純文字回傳
  • 依分類、標籤或兩者搜尋條目,並合併回傳符合的藝術字
  • 隨機取得一筆 ASCII 或 Unicode 條目
  • 列出資料庫中所有分類
適用情境
適合讓助理用 ASCII/Unicode 藝術字點綴終端機輸出、聊天回覆或文件,或依分類與標籤瀏覽一個小型精選藝術字庫。它是靜態唯讀資料來源,並不生成圖案。
執行需求
以 npm 套件 ascii-art-mcp 形式透過 stdio 在本機執行,需要 Node.js 20+ 與 npm,資料來自儲存庫根目錄的 db.json 檔案。不需要 API 金鑰或身分驗證。
安裝前請注意
僅做唯讀查詢,不索取任何憑證。README 建議把儲存庫連結貼進 AI 對話,讓它自動複製、建置並執行伺服器;用這種方式安裝與執行第三方程式碼前值得先審視。結果僅來自內附的 db.json,藝術字集合是固定的。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Ascii Art,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

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

來源:README.md,提交 b9c179d

工具

0
SourceWeft 尚未在沙箱中啟動過該軟體包,因此其工具未知。

版本歷史

1
  1. v0.1.1最新Sep 16, 2026

評分

已滿足適用檢查項的 40%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分

    請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。

  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分

    請在儲存庫或註冊中心條目中宣告授權條款。