MTG MCP服务器
Magic的综合模型上下文协议(MCP)服务器:收集牌组分析和卡片查找。该服务器帮助LLM了解套牌组合,提供战略建议,并使用Scryfall API分析魔术卡。
此服务器的功能
此MCP服务器使Claude(和其他LLM)能够:
- 查找魔术卡 按名称模糊匹配
- 搜索卡片 按颜色、类型、法力消耗和其他标准
- 分析甲板组成 包括法力曲线、色彩平衡和卡片类型
- 评估指挥官甲板 使用经过验证的指挥区甲板建造模板
- 提供战略建议 用于甲板改进和优化
与Claude Desktop一起使用
Claude Desktop的安装
- 下载或克隆此存储库 到您的计算机
- 安装Python 3.13+ 如果你还没有
- 安装uv包管理器:参观 紫外线安装指南
- 设置服务器:
cd mtg-mcp-server
uv sync- 添加到Claude桌面配置:
- 打开克劳德桌面设置 - 导航到MCP服务器配置 - 使用安装路径添加此服务器
Claude桌面配置
将此添加到您的Claude Desktop MCP设置中:
{
"mcpServers": {
"mtg-analysis": {
"command": "uv",
"args": ["run", "python", "/path/to/mtg-mcp-server/server.py"],
"cwd": "/path/to/mtg-mcp-server"
}
}
}替换 /path/to/mtg-mcp-server 使用您安装服务器的实际路径。
你可以问克劳德什么
安装后,您可以向Claude询问以下问题:
- “分析我的指挥官甲板”(提供您的甲板清单)
- “查找有关闪电螺栓和反咒语的信息”
- “我的牌的法力曲线是什么?”
- “寻找法力值低于4的红龙”
- “我的魔法基础有多好?”
- “给我建议来改进我的甲板”
对话示例
你: “你能分析一下这个指挥官甲板吗?我的指挥官是Atraxa,裁判之声,这是我的甲板清单:太阳戒指、指挥塔、修炼、韵律研究、犁头之剑、上帝之怒……”
克劳德: *使用MTG服务器工具查找所有卡片,将其分类到指挥区框架中,并提供详细的分析和具体的改进建议*
特性
🔍 卡片查找和搜索
- 批量卡片查询 模糊名称匹配(每个请求最多75张卡)
- 高级搜索 按名称、颜色、类型、法力消耗进行综合过滤
- 智能缓存 最大限度地减少API调用并提高性能
📊 甲板分析
- 马纳曲线分析 用于甲板速度优化
- 颜色身份分析 有详细的细分和百分比
- 马纳基地评估 拼写要求与土地生产的比较
- 卡片类型分布 格式指南分析
🏰 指挥官甲板分析
- 命令区模板集成 -使用官方指挥区甲板建造框架进行自动甲板分析
- 自动卡片分类 分为6个核心类别:
- 斜坡 (10-12+张牌):法力加速和修复 - 卡片优势 (12+张牌):抽奖引擎和卡片选择 - 靶向断裂 (12张牌):单目标移除与交互 - 大规模破坏 (6张卡):板擦拭和保护 - 土地 (38张牌):带有公用设施用地的法力基地 - 计划卡 (约30张牌):赢得条件和协同棋子
- 平衡评估 提出可操作的改进建议
🎯 智能提示和资源
- 工作流程指导 提示帮助LLM有效使用工具
- 斯台普斯指挥官 按类别组织的数据库
- 改进建议 基于指挥区原则
______________________________________________________________________
发展与贡献
本节面向希望分叉、修改或贡献MTG MCP服务器的开发人员。
开发设置
- 克隆和设置:
git clone
cd mtg-mcp-server
uv sync- 在本地运行服务器:
# Basic run
uv run python server.py
# Development mode with auto-reload
uv run fastmcp dev server.py- 测试服务器:
# Run interactive demo
uv run python test_client.py
# Run full test suite
uv run pytest可用工具(面向开发人员)
服务器提供8个工具,分为两类:
Scryfall工具(前缀: scryfall_)
scryfall_lookup_cards-按姓名查找特定卡片scryfall_search_cards_by_criteria-按名称/颜色/类型/CMC搜索
分析工具(前缀: analysis_)
analysis_calculate_mana_curve-分析CMC分布analysis_analyze_lands-计算土地和法力产生analysis_analyze_color_identity-颜色分布分析(JSON)analysis_analyze_mana_requirements-拼写要求与土地生产(JSON)analysis_analyze_card_types-卡片类型分布analysis_analyze_commander_deck-完整指挥官甲板分析(JSON)
建筑
模块化设计
服务器使用干净的模块化架构,关注点分开:
mtg-mcp-server/
├── server.py # Main server composition
├── config.py # Centralized configuration
├── tools/
│ ├── scryfall_server.py # Card lookup tools
│ ├── basic_analysis.py # Simple analysis tools
│ ├── color_analysis.py # Color and mana analysis
│ ├── commander_analysis.py # Commander-specific analysis
│ ├── analysis_resources.py # Prompts and resources
│ ├── analysis_server.py # Analysis server composition
│ └── utils.py # Shared utilities
└── tests/ # Comprehensive test suite服务器组成
主服务器使用FastMCP的导入系统由两个子服务器组成:
- Scryfall服务器:卡片查找和搜索功能
- 分析服务器:甲板分析工具(由4个专门模块组成)
配置
所有配置都集中在 config.py 有合理的默认值:
# Scryfall API settings
api_base: str = "https://api.scryfall.com"
batch_size: int = 75
request_timeout: int = 30
# Command Zone template targets
ramp_target: int = 10
card_advantage_target: int = 12
lands_target: int = 38
# Caching behavior
max_card_cache_size: int = 10000
ttl_seconds: int = 3600关键实施特征
智能高速缓存
- 统一缓存 在所有工具中最大限度地减少API调用
- 批处理操作缓存 -批查找填充缓存,以便将来进行单次查找
- 搜索结果缓存 避免重复相同的搜索
- 跨工具缓存共享 为了达到最高效率
指挥区集成
服务器实现了官方的Command Zone甲板构建模板:
- 使用oracle文本分析进行自动卡片分类
- 根据已验证的目标进行平衡评估
- 基于优先级的改进建议
- 用于程序分析的JSON输出
稳健的错误处理
- 优雅地处理丢失的卡和API错误
- 从批量查找到单个查找的自动回退
- 全面的输入验证
- 详细的错误消息和可操作的指导
质量保证
# Type checking
uv run mypy .
# Linting
uv run ruff check .
# Code formatting
uv run ruff format .
# Run tests
uv run pytest添加新工具
- 在相应的模块中创建您的工具(或创建一个新的工具)
- 将其导入到相关的服务器组成文件中
- 添加综合测试
- 更新文档
配置管理
修改 config.py 调整:
- Scryfall API设置
- 命令区模板目标
- 缓存行为
- 服务器性能参数
依赖项
- fastmcp>=2.9.0 -MCP服务器框架
- httpx -Scryfall API的异步HTTP客户端
- mypy>=1.16.1 -类型检查(开发)
- 褶皱>=0.12.0 -装订和格式化(开发)
- pytest>=8.0.0 -测试框架(开发)
API集成
API公司
- 使用官方 API公司 对于所有卡数据
- 使用实现批处理操作
/cards/collection端点 - 支持模糊卡名匹配,便于用户查找
- 使用Scryfall的高级查询语法进行全面搜索
利率限制和道德
- 实现智能缓存以最大限度地减少API调用
- 尊重Scryfall的服务条款
- 尽可能使用批处理操作以提高效率
- 包括可配置的请求超时和重试逻辑
贡献
- 分叉存储库
- 创建要素分支:
git checkout -b feature-name - 通过测试进行更改
- 运行质量保证工具
- 提交拉取请求
许可证
此项目根据MIT许可证获得许可-有关详细信息,请参阅许可证文件。
