mtcg-魔术:背景收集
MCP服务器,允许LLM访问您的Magic:The Gathering集合和Scryfall卡数据库。专为指挥官(EDH)玩家设计,他们想问他们的AI助手以下问题:
- “我的哪个甲板上有旋风裂缝?”
- “我的僵尸牌表现不好。你能推荐我活页夹里的卡片吗?”
- “给我找一些在指挥官中合法的绿色预算斜坡咒语。”
运作原理
从导出您的收藏 ManaBox 作为CSV。mtcg将其加载到本地SQLite数据库中,并在 模型上下文协议:
收藏工具 (你的卡片):
search_cards--按卡片名称进行模糊搜索,可选择活页夹/卡片组过滤器list_decks--列出所有指挥官牌组及其牌数get_deck_cards--获取一副牌中的每张牌(模糊名称匹配)
Scryfall工具 (全部魔术):
scryfall_search--对每张打印过的魔术卡进行全文搜索scryfall_card--按姓名或Scryfall ID查找一张卡scryfall_rulings--官方对卡片的裁决
设置
需要 包子 v1.0+。
bun install从ManaBox导出您的收藏(设置>导出>CSV),并将文件保存在可访问的地方(默认情况下为gitignore)。
跑步
bun index.ts -d ./ManaBox_Collection.csv这将启动HTTP服务器(端口3000)和stdio传输。CSV被解析并加载到SQLite数据库中(mbc.db 在当前目录中)。
选项
| 标志 | 默认值 | 描述 |
|---|---|---|
-d, --data | *(必填)* | ManaBox CSV导出路径 |
-b, --db | mbc.db | SQLite数据库文件的路径 |
--in-memory | false | 使用内存中的数据库(不写入文件) |
--port | 3000 | HTTP端口(也读取 PORT ) 。 |
从MCP客户端连接
克劳德桌面/克劳德代码
添加到MCP配置中:
{
"mcpServers": {
"mtcg": {
"command": "bun",
"args": ["index.ts", "-d", "/path/to/ManaBox_Collection.csv"],
"cwd": "/path/to/mtcg"
}
}
}这使用stdio传输。服务器使用JSON-RPC通过stdin/stdout进行通信。
HTTP(流式HTTP)
任何支持Streamable HTTP的MCP客户端都可以连接到:
POST http://localhost:3000/mcp服务器以无状态模式运行——每个请求都是独立处理的,没有会话跟踪。
卷曲测试
您可以通过列出可用工具来验证服务器是否正在运行:
curl -s http://localhost:3000/mcp \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/list"
}' | jq .运行测试
bun testScryfall集成测试(进行真正的API调用)在默认情况下被跳过。要包括它们:
SCRYFALL_INTEGRATION=1 bun test src/scryfall.test.ts更多信息
看 内容.md 了解架构细节、设计决策和添加新功能的指导。
