MCPGTCG

MCPGTCG

An MCP server for the Genius Invokation TCG simulator that allows AI models to interact with the game through a structured interface. It provides comprehensive tools for querying game states, accessing indexed card data, and executing gameplay actions like elemental tuning and character selection.

Category
访问服务器

README

MCPGTCG - 七圣召唤 MCP 实现

为七圣召唤模拟器提供的 MCP (Model Context Protocol) 实现,使 AI 能够通过 MCP 接口与游戏交互并实现自动打牌功能。

开源发布模型(推荐)

本项目采用分层发布,降低对模拟器深度魔改的维护成本:

  • core:MCP 协议、工具、序列化、索引能力(本包的 src/
  • adapter:最小注入点(将 AI IO / state listener 接到模拟器)
  • patch:对上游模拟器的显式补丁文件(patches/*.patch

这样可以在公开 MCP 与 Skills 的同时,把对客户端改动保持为可审计、可回放、可替换。

发布文档

  • 兼容矩阵:COMPATIBILITY.md
  • 补丁指南:PATCHING.md
  • 贡献指南:CONTRIBUTING.md
  • 补丁目录说明:patches/README.md
  • Skills 发布指南:../../../.opencode/skills/README.md
  • 图片资源策略:docs/ASSET_POLICY.md

项目结构

MCPGTCG/
├── src/
│   ├── mcp/
│   │   ├── MCPProtocol.ts    # MCP 协议常量和消息构建器
│   │   ├── MCPServer.ts       # MCP 服务器实现
│   │   └── MCPToolHandler.ts  # MCP 工具处理器
│   ├── AIClientPlayerIO.ts    # AI 玩家 IO 实现
│   ├── GameStateListener.ts   # 游戏状态监听器
│   ├── GameStateSerializer.ts # 游戏状态序列化器
│   ├── card-index/            # 卡牌索引构建与查询
│   └── index.ts                # 主入口文件
├── examples/
│   └── integration.ts          # 集成示例
├── package.json
├── tsconfig.json
└── tsup.config.ts

核心组件

1. MCPProtocol

定义了 MCP 协议的常量、接口和消息构建函数,支持 JSON-RPC 2.0 通信。

2. MCPServer

MCP 服务器的核心实现,使用标准输入/输出进行通信,处理来自客户端的请求。

3. MCPToolHandler

定义并处理所有可用的 MCP 工具,包括:

  • 状态查询:get_game_state, get_screen_state, get_available_commands
  • 信息查询:get_character_info, get_card_info
  • 游戏操作:choose_action, elemental_tuning, choose_active, reroll_dice, switch_hands, select_card

4. AIClientPlayerIO

实现了 CancellablePlayerIO 接口,用于与游戏进行交互,缓存通知和等待 RPC 请求响应。

5. GameStateListener

监听游戏状态变化,在游戏暂停时捕获当前状态和突变。

6. GameStateSerializer

将游戏状态序列化为可通过 MCP 传输的格式。

7. Card Index

@gi-tcg/data 源码注释构建卡牌索引(definitionId/name/description/contentHash), 并提供检索、解析、映射校验能力,降低 AI 在 ID 与卡牌效果之间错配的概率。

快速开始

图片资源说明(重要)

仓库默认不包含卡图二进制文件(packages/standalone/public/card_images/)。

  • 目的:精简仓库体积与拉取时间。
  • 方式:用户自行从模拟器项目图床/CDN 下载。
  • 参考:docs/ASSET_POLICY.md
  • 下载脚本:scripts/download-card-images.shscripts/download-card-images.ps1

1. 安装依赖

cd MCPGTCG
bun install

2. 构建项目

bun run build

3. 类型检查

bun run check

4. 构建卡牌索引

bun run build:card-index

索引输出到 packages/mcp/.cache/card_index.latest.json

与七圣召唤集成

建议优先采用“补丁集成”方式(见 PATCHING.md),而不是长期维护完整 Fork。

示例命令:

bash packages/mcp/scripts/apply-standalone-patch.sh packages/mcp/patches/<patch-file>.patch

基本集成示例

import { setupMCPGame, startMCPServerAndGame } from "@gi-tcg/mcp";
import { Version } from "@gi-tcg/core";

// 设置游戏
const { game, cleanup } = await setupMCPGame(
  deck0Code,  // 玩家0的牌组代码
  deck1Code,  // 玩家1的牌组代码
  Version.V6_3_0,  // 游戏版本
  0  // AI 玩家位置
);

// 或者同时启动 MCP 服务器和游戏
await startMCPServerAndGame(
  deck0Code,
  deck1Code,
  Version.V6_3_0,
  0
);

可用工具

状态查询工具

  • get_game_state - 获取完整的游戏状态
  • get_screen_state - 获取轻量级的屏幕状态(推荐用于大多数场景)
  • get_available_commands - 获取当前状态下可用的命令列表

信息查询工具

  • get_character_info - 获取角色详细信息
  • get_card_info - 获取卡牌详细信息
  • list_cards - 分页列出索引中的卡牌/角色(可按 type/tags/nameLike 过滤)
  • get_card_by_id - 按 definitionId 获取标准名称、效果文本和 contentHash
  • resolve_card - 按名称/ID/效果文本模糊解析并返回候选及分数
  • validate_card_mapping - 批量校验 definitionId 与名称映射是否一致

游戏操作工具

  • choose_action - 选择要执行的动作
  • elemental_tuning - 显式执行元素调和(按条件匹配调和动作,可自动使用 auto_selected_dice
  • choose_active - 选择首发角色
  • reroll_dice - 选择要重掷的骰子
  • switch_hands - 选择要换的初始手牌
  • select_card - 从候选卡牌中选择

技术栈

  • TypeScript 5.x
  • Bun 1.x
  • tsup (构建工具)
  • 七圣召唤核心库 (@gi-tcg/core)

架构参考

本项目参考了 MCPTheSpire 项目的架构,并针对七圣召唤的特点进行了适配。

许可证

AGPL-3.0

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选