mcpField
A
ascii-art

ascii-art

本地服务
github.com/theduodecim游戏娱乐11 周前更新

关于 ascii-art

ascii-art 是一个从本地数据库检索 ASCII 和 Unicode 艺术内容的 MCP 服务,适合需要在聊天或生成内容中查找文本图案的场景。它提供精确查询、分类与标签搜索、随机抽取及类别列表工具。

主要功能

  1. 01按名称或别名精确查找
  2. 02按类别和标签搜索
  3. 03随机获取 ASCII 或 Unicode 图案
  4. 04列出全部类别

适用场景

  1. 01按名称检索指定文本图案
  2. 02按类别或标签筛选图案
  3. 03为聊天内容随机选取图案

MCP 相关

通过 stdio 向 MCP 客户端提供图案检索、分类和标签搜索、随机获取及类别列表工具。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"theduodecim-ascii-art": {
"command": "npx",
"args": [
"-y",
"ascii-art-mcp"
]
}
}
}
启动命令npx -y ascii-art-mcp

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npmascii-art-mcp0.1.1

工具

4

收录的工具列表 · 更新于 2 周前

参数类型必填说明
querystring是

详细介绍

ascii-art-mcp

Ascii Art MCP server

ascii-art-mcp 是一个使用 Node.js 和 TypeScript 构建的 Model Context Protocol (MCP) 服务,提供用于从本地数据库获取 ASCII 和 Unicode 艺术图案的工具。

该服务使用 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 注册表:

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字符串是
输出

以纯文本形式返回条目的 art 字段。


search_ascii

按 categoria、tags 或两者搜索条目。

输入
字段类型必填
categoria字符串可选
tag字符串可选

至少需要 一个筛选条件。

输出

以文本形式返回所有匹配条目的 art 字段。


random_ascii

从数据库中随机返回一个条目。

输入
字段类型必填
tipoascii | unicode必填
输出

以纯文本形式返回所选条目的 art 字段。


list_categories

列出数据库中所有不重复的类别。

输入

无

输出

以换行分隔的文本形式返回类别名称。


🗂 数据模型

db.json 中的条目遵循 AsciiArtEntry TypeScript 接口:

src/types/asciiArt.ts

每个条目都包含以下元数据:

  • 名称
  • 类别
  • 标签
  • 别名
  • 艺术图案内容

🧪 测试 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

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。