ascii-art について
ascii-artは、ローカルデータベースからASCIIアートとUnicodeアートを取得するMCPサーバーです。チャットや生成コンテンツで使うテキストアートを探す用途に向け、完全一致検索、カテゴリ・タグ検索、ランダム取得、カテゴリ一覧のツールを備えています。
主な機能
- 01名前または別名による完全一致検索
- 02カテゴリとタグによる検索
- 03ASCIIまたはUnicodeアートのランダム取得
- 04全カテゴリの一覧表示
活用シーン
- 01名前から特定のテキストアートを取得
- 02カテゴリやタグでアートを絞り込み
- 03チャット用にアートをランダム選択
MCP 対応
stdio経由で、アートの取得、カテゴリやタグによる検索、ランダム取得、カテゴリ一覧のツールをMCPクライアントに提供します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
4掲載時のツール一覧 · 2 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| query | string | はい |
詳細
ascii-art-mcp
ascii-art-mcp は、ローカルデータベースからASCII アートと Unicode アートを取得するツールを提供する、Node.js と TypeScript で構築された Model Context Protocol(MCP)サーバーです。
このサーバーは stdio トランスポートを使用して通信するため、以下のような MCP クライアントと互換性があります。
- Claude Desktop
- Cursor
- LM Studio
- Open WebUI
- その他の MCP 対応環境
https://theduodecim.github.io/ascii-art-mcp/
▶ この MCP を実行する
このリンクを MCP 対応の AI チャットに貼り付けるだけです。
https://github.com/theduodecim/ascii-art-mcp/tree/main
「この MCP を実行」
AI がリポジトリをクローンし、ビルドして、自動的に実行します。こちらでのセットアップは不要です。
📦 インストール
このパッケージは npm で公開されています。
https://www.npmjs.com/package/ascii-art-mcp
ローカルにインストールする場合:
npm install ascii-art-mcp
直接実行する場合:
npx ascii-art-mcp
🌐 MCP レジストリ
このサーバーは、公式の Model Context Protocol Registry にも公開されています。
https://registry.modelcontextprotocol.io/?q=ascii-art
サーバー名:
io.github.theduodecim/ascii-art
これにより、MCP 対応ツールがこのサーバーを自動的に検出してインストールできます。
⚙️ 要件
- Node.js 20+
- npm
🚀 サーバーを手動で実行する
開発モード:
npm run dev
ビルドと本番環境での実行:
npm run build
npm start
このサーバーは stdio トランスポートを使用し、以下からデータを読み込みます。
db.json
これはリポジトリのルートにあります。
🧰 利用可能な MCP ツール
get_ascii_art
nombre と完全一致するエントリ、または aliases の値と完全一致するエントリを検索します。
入力
| フィールド | 型 | 必須 |
|---|---|---|
| query | string | はい |
出力
エントリの art フィールドをプレーンテキストで返します。
search_ascii
categoria、tags、またはその両方でエントリを検索します。
入力
| フィールド | 型 | 必須 |
|---|---|---|
| categoria | string | 任意 |
| tag | string | 任意 |
少なくとも 1 つのフィルターが必要です。
出力
一致したエントリの art フィールドを結合したテキスト出力を返します。
random_ascii
データベースからランダムなエントリを返します。
入力
| フィールド | 型 | 必須 |
|---|---|---|
| tipo | ascii | unicode | 必須 |
出力
選択されたエントリの art フィールドをプレーンテキストで返します。
list_categories
データベースに含まれる一意のカテゴリをすべて一覧表示します。
入力
なし
出力
カテゴリ名を改行区切りのテキストで返します。
🗂 データモデル
db.json のエントリは、AsciiArtEntry TypeScript インターフェースに従います。
src/types/asciiArt.ts
各エントリには、次のようなメタデータが含まれます。
- name
- category
- tags
- aliases
- art content
🧪 MCP サーバーのテスト
stdio 上の JSON-RPC を使用した MCP 通信を検証するために、簡単な統合テストが用意されています。
テストスクリプトの例(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
- TypeScript 製 MCP サーバー
- JSON データベース(
db.json) - ツール入力の Zod 検証
- stdio トランスポート
🎯 目的
このプロジェクトは、以下の特徴を持つシンプルな MCP ツールサーバーの構築方法を示します。
- ローカルで実行
- API キー不要
- 構造化されたツールを提供
- MCP 経由で静的データを提供
📜 ライセンス
MIT
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。