项目简介
这是一个基于 Model Context Protocol (MCP) 的服务器实现。它专注于提供一个接口,允许大型语言模型 (LLM) 客户端通过调用特定的工具来与在线俄罗斯方块编辑器 Fumen (fumen.zui.jp) 进行交互。通过这个服务器,LLM 能够理解并控制 Fumen 中的俄罗斯方块盘面状态。
主要功能点
服务器暴露了一系列工具,使 LLM 客户端能够执行以下操作:
- 清空盘面: 清除当前帧中的所有方块和障碍物。
- 获取盘面状态: 获取当前盘面的文本表示,显示方块类型和障碍物的位置。
- 页面导航: 获取当前页码、总页数,并支持前进、后退或直接跳转到指定页码。
- 管理页面: 删除当前页码之后的所有页面。
- 重置: 将整个 Fumen 编辑器状态恢复到初始状态。
- 生成分享链接: 创建一个当前盘面状态的可分享 Fumen URL。
- 绘制控制: 设置当前用于绘制方块的颜色类型(对应不同的方块或障碍物),并在指定坐标绘制像素。
安装步骤
- 确保您的系统已安装 Node.js (推荐 v18 或更高版本)。
- 安装 yarn 包管理器(如果尚未安装):
npm install -g yarn - 克隆项目仓库:
git clone https://github.com/EdamAme-x/tetris-mcp.git - 进入项目目录:
cd tetris-mcp - 安装所有项目依赖:
安装过程会自动下载 Puppeteer 所需的浏览器(通常是 Chromium),这可能需要一些时间,请耐心等待。yarn install
服务器配置(供MCP客户端使用)
为了让支持 MCP 协议的 LLM 客户端能够连接并使用此服务器,您需要为客户端提供服务器的启动命令和元数据。典型的配置信息如下(JSON 格式):
{ "name": "tetris-mcp-server-jp", "command": "yarn", "args": ["start"], "description": "一个MCP服务器,用于通过LLM控制和操作在线俄罗斯方块编辑器Fumen。", "capabilities": { "tools": {} } }
- 'name': 服务器的标识符,由服务器端声明。
- 'command': 启动 MCP 服务器进程的命令(例如 'node', 'npm', 'yarn', 或服务器的可执行文件路径)。
- 'args': 传递给 'command' 的命令行参数数组。
- 'description': 服务器功能的简要描述。
- 'capabilities': 服务器提供的能力声明,'"tools": {}' 表示服务器提供了工具能力。
请注意:'command' 和 'args' 的具体值应与项目的实际启动脚本配置相符。上述示例假设 'yarn start' 命令被配置用来运行主服务器 ('src/index.ts')。
基本使用方法
- 在终端中,进入项目目录并启动服务器:
yarn start - 服务器启动后,会自动使用 Puppeteer 打开一个浏览器窗口,加载 Fumen 网站。请不要关闭此浏览器窗口,它是服务器与 Fumen 交互的媒介。
- 配置您的 LLM 客户端,使用上面提供的 JSON 配置信息连接到此 MCP 服务器。
- LLM 客户端现在可以通过调用服务器提供的工具(例如调用 'clearCurrentBoard' 来清空盘面,或调用 'drawPixel' 来在指定位置绘制方块)来与 Fumen 进行交互。
- 服务器会执行相应的操作,并通过 MCP 协议向客户端返回操作结果或错误信息。
注意事项
- 服务器通过控制本地浏览器与 Fumen 网站交互,因此需要在可以运行浏览器并显示图形界面的环境中启动。
- 如果需要在无头(Headless)环境(如无 GUI 的服务器)中运行,可能需要修改 'src/index.ts' 文件中 Puppeteer 的启动参数,将 'headless: false' 改为 'headless: true'。
信息
分类
网页与API