内容
-art-mcp
**-mcp** 是一个使用 **Node.js 和 TypeScript** 构建模型上下文协议(MCP**,它提供了从本地 **ASCII 和 Unicode 艺 的工具。
服务器使用 **** 进行通信,使其与以下 MCP 客户端兼容:
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-m安装:
```bash install ascii-art-mcp
```
:
```bash
npx ascii-art-mcp
```
🌐 MCP 注册表
该发布在官方的 **模型上下文协议注册表** 中:
https://registry.modelcontextprotocolq=ascii-art
服务器
```
io.github.thedu/ascii-art
```
这允许 MCP 兼容的工具 **自动安装它**。
---
# ⚙️ 要求
- Node20+**
- npm
🚀 手动运行服务器模式:
```bash
npm run dev
```
构建 + 生产
```bash
npm runnpm start
```
服务器 传输**,从根目录中的以下文件中加载数据.json
```
🧰 可用的 MCP
## get_ascii_art
通过精确的 **名称** 或精确别名** 值查找艺术条目。
### 输入
| 类型 | 必需 |
|------|------|------|
| query | 是 |
### 输出
返回条目的 **艺术** 字段为纯---
## search_ascii
类别**、**标签**搜索条目。
### 输入
| 字段 | 类型 | |
------|------|
| 字符串 | 可选 |
| 字符串 | 可选 |
至少需要 **一个过滤器**。
### 输出
返回匹配条目的字段组合为文本输出**## random_ascii
从数据库中返回一个随机条目。
###| 字段 | 类型 | |
|------|------|------ | ascii \| unicode | 必需 |
### 输出
返回选 **艺术字段为纯文本**。
---
## list_categories出数据库中存在的所有唯一类别。
### 输入
无
###类别名称为 **以换行符分隔的文本**。
🗂 数据模型
`db.json` 中的条目遵循Entry TypeScript 接口**```
src/types/ascii
```
每个条目都包含以下元数据:
- - 类别
- 标签
- 别名
- 艺
---
# 🧪 测试 MCP 服务器
使用 **JSON stdio** 验证 MCP的简单集成测试。
脚本(`test.mjs`):
```javascript
import { from "child_process";
= spawn("node", [""], {
stdiopipe", "pipe","]
.stderr.on(" (d) => {
("LOG:", d.toString());
});
proc.stdout.on("data) => {
consoleSERVER:", d.toString());
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"
}
});
}, 500Timeout(() => {
jsonrpc: "2",
"initialized",
params: {}
});
}, 1000);
setTimeout(() => {
send({
json "2.0",
2,
methodtools/list"
});
}, 1500);
setTimeout(() proc.kill();
consoleTEST FINISHED");
0);
```
---
# 🧠 架构
```
server.ts
tools types/
dist/
db.json
```
- TypeScript MCP 服务器 数据库(`db)
- Zod 验证工具输入
- stdio 传输# 🎯 目的
该项目演示了如何构建一个 工具服务器**,该服务器:
- 在
- 需要 **无 API**
- 暴露结构
- 通过 MCP 提供
---
# 📜 MIT