Skip to main content
Glama
theduodecim

ascii-art-mcp

by theduodecim

ascii-art-mcp

ascii-art-mcp — это сервер Model Context Protocol (MCP), созданный на Node.js и TypeScript, который предоставляет инструменты для получения ASCII и Unicode-арта из локальной базы данных.

Сервер использует stdio-транспорт, что делает его совместимым с MCP-клиентами, такими как:

  • Claude Desktop

  • LM Studio

  • Open WebUI

  • Другие MCP-совместимые среды

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

▶ Запуск этого MCP

Просто вставьте эту ссылку в любой MCP-совместимый чат:

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

«Запустить этот MCP»

ИИ клонирует репозиторий, соберёт проект и запустит его автоматически. Никакой настройки с вашей стороны не требуется.


📦 Установка

Пакет доступен на npm:

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

Установите локально:

npm install ascii-art-mcp

Или запустите напрямую:

npx ascii-art-mcp

🌐 Реестр MCP

Этот сервер также опубликован в официальном реестре Model Context Protocol:

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

Имя сервера:

io.github.theduodecim/ascii-art

Это позволяет MCP-совместимым инструментам находить и устанавливать его автоматически.


⚙️ Требования

  • Node.js 20+

  • npm


🚀 Запуск сервера вручную

Режим разработки:

npm run dev

Сборка и продакшн-запуск:

npm run build
npm start

Сервер использует stdio-транспорт и загружает данные из:

db.json

расположенного в корне репозитория.


🧰 Доступные MCP-инструменты

Related MCP server: MusicBrainz MCP Server

get_ascii_art

Находит запись с артом по точному названию или точному значению в псевдонимах.

Входные данные

Поле

Тип

Обязательно

query

string

да

Выходные данные

Возвращает поле art записи в виде обычного текста.


Выполняет поиск записей по категории, тегам или обоим параметрам.

Входные данные

Поле

Тип

Обязательно

categoria

string

нет

tag

string

нет

Необходим хотя бы один фильтр.

Выходные данные

Возвращает объединённые поля art найденных записей в виде обычного текста.


random_ascii

Возвращает случайную запись из базы данных.

Входные данные

Поле

Тип

Обязательно

tipo

ascii | unicode

да

Выходные данные

Возвращает поле art выбранной записи в виде обычного текста.


list_categories

Выводит список всех уникальных категорий, присутствующих в базе данных.

Входные данные

Нет

Выходные данные

Названия категорий в виде текста с разделением по строкам.


🗂 Модель данных

Записи в db.json соответствуют интерфейсу AsciiArtEntry на TypeScript:

src/types/asciiArt.ts

Каждая запись содержит такие метаданные, как:

  • название

  • категория

  • теги

  • псевдонимы

  • содержимое арта


🧪 Тестирование MCP-сервера

Для проверки MCP-взаимодействия через JSON-RPC по stdio использовался простой интеграционный тест.

Пример тестового скрипта (test.mjs):

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);

🧠 Архитектура

src/
  server.ts
  tools/
  types/

dist/

db.json
  • MCP-сервер на TypeScript

  • JSON-база данных (db.json)

  • Проверка входных данных с помощью Zod

  • stdio-транспорт


🎯 Назначение

Этот проект демонстрирует, как создать простой MCP-сервер с инструментами, который:

  • работает локально

  • не требует API-ключей

  • предоставляет структурированные инструменты

  • обслуживает статические данные через MCP


📜 Лицензия

MIT

Install Server
A
license - permissive license
A
quality
D
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

View all related MCP servers

Related MCP Connectors

  • MCP server for accessing curated awesome list documentation

  • MCP server exposing the AceDataCloud Fish Audio API (text-to-speech with voice conditioning)

  • An MCP server for deep research or task groups

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/theduodecim/ascii-art-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server