MCP机柜服务器
用于Rubik立方体操作和可视化的MCP(模型上下文协议)服务器。
该服务器提供了使用虚拟魔方的全面工具,非常适合开发和测试与魔方相关的项目。
特性
- 多维数据集状态管理:维护和操作持久虚拟多维数据集
- 完整的符号支持:所有WCA符号,包括宽移动(Rw)、旋转(x、y、z)、切片移动(M、E、S)
- 高级符号:换向器
[A, B]和共轭物[A: B] - 可视化:具有多种调色板的基于终端的立方体可视化
- 算法分析:综合指标,包括HTM/QTM、人体工程学、结构分析
- 争抢:随机状态和基于移动的加扰
安装
# Install from source
pip install -e .
# Or install with development dependencies
pip install -e ".[dev]"可用工具
所有工具都以前缀 cubing_ 以避免与其他MCP服务器的命名冲突。
cubing_apply_moves
对多维数据集应用一系列移动。
参数:
moves(string):移动标准符号中的序列
示例:
R U R' U'
Rw U2 x
[R, U] # Commutator
[F: R U R' U'] # Conjugatecubing_get_state
使用可选可视化获取当前多维数据集状态。
参数:
display(布尔值,可选):包括视觉表示(默认值:true)palette(字符串,可选):调色板(“缺陷”、“粉彩”、“德古拉”、“色盲”等)orientation(字符串,可选):立方体方向(类似于“UF”的2节字符串)
cubing_reset_cube
将多维数据集重置为已解决状态。(破坏性操作)
cubing_scramble_cube
对立方体应用随机打乱。
参数:
cube_size(整数,可选):立方体大小2-7(默认值:3)iterations(整数,可选):移动次数,0表示自动(默认值:0)inner_layers(布尔值,可选):包括内层移动(默认值:false)right_handed(布尔值,可选):针对右手优化(默认值:true)
cubing_is_solved
检查多维数据集当前是否已求解。
cubing_parse_algorithm
解析并验证算法字符串,返回结构化的移动信息。
参数:
algorithm(string):要解析的算法
cubing_analyze_algorithm
进行全面的算法分析。
参数:
algorithm(string):要分析的算法response_format(字符串,可选):json或markdown(默认值:json)
退货:
- HTM/QTM/STM/ETM/RTM指标
- 人体工程学(舒适度评分、再生次数、手部平衡、执行时间、手指使用)
- 结构(共轭体、换向器、压缩、效率)
- 影响分析(受影响的部分、模式、复杂性、建议的方法)
- 算法周期和最小立方体大小
cubing_mirror_algorithm
获取算法的镜像(逆)。
参数:
algorithm(string):镜像算法
cubing_simplify_algorithm
通过删除冗余移动来优化和简化算法。
参数:
algorithm(string):简化算法
cubing_visualize_algorithm
可视化算法对已求解立方体的影响。
参数:
algorithm(string):可视化算法orientation(字符串,可选):显示方向
cubing_get_history
获取当前多维数据集状态的移动历史记录。
cubing_set_state
使用54个字符的匿名字符串将多维数据集设置为特定状态。(破坏性)
参数:
state(string):54个字符的匿名字符串
cubing_solve_cube
使用Kociemba算法找到当前多维数据集状态的解决方案。
cubing_list_case_collections
列出所有可用的案例集合(OLL、PLL、F2L、AF2L)。
退货:
- 集合总数
- 每个收藏的名称和大小
cubing_get_case_collection
获取特定案例集合的详细信息。
参数:
collection(字符串):集合名称(“LL”、“PLL”、“F2L”、“AF2L”或“CFOP/OLL”等)include_cases(布尔值,可选):包括所有案例名称的列表(默认值:true)
退货:
- 集合名称、方法、大小
- 集合中所有案例的列表(如果需要)
cubing_get_case
获取有关特定立方体案例的全面详细信息。
参数:
collection(字符串):集合名称(“LL”、“PLL”等)case_name(string):案例标识符(名称、代码或别名,如“Sune”、“T-Perm”、“27”)response_format(字符串,可选):json或markdown(默认值:json)
退货:
- 案例名称、代码、描述、别名
- 主要算法和备选算法
- 概率和最优度量(HTM、STM、周期)
- 识别模式和元数据(家庭、群体、对称性)
使用Claude代码
将其添加到您的.mcp.json文件中
{
"mcpServers": {
"cube": {
"command": "python",
"args": ["-m", "mcp_cubing"],
"cwd": "/somewhere/mcp-cubing"
}
}
}对于使用当地立方体进行开发:
{
"mcpServers": {
"cube": {
"command": "python",
"args": ["-m", "mcp_cubing"],
"cwd": "/somewhere/mcp-cubing",
"env": {
"PYTHONPATH": "/somewhere/cubing-algs"
}
}
}
}交互示例
基本立方体操作
User: Apply the sexy move to the cube
Assistant: *uses cubing_apply_moves with "R U R' U'"*
User: Is it solved?
Assistant: *uses cubing_is_solved*
User: Reset it
Assistant: *uses cubing_reset_cube*算法开发
User: I'm working on a new OLL algorithm: F R U R' U' F'. Can you analyze it?
Assistant: *uses cubing_analyze_algorithm*
- HTM: 6 moves
- Ergonomics: Good comfort score
- Structure: Conjugate detected [F: R U R' U']
- Affects: 20/54 pieces算法比较
User: Compare these two F2L algorithms
Assistant:
*uses cubing_analyze_algorithm for both*
*compares metrics, ergonomics, and structure*v0.2.0的新增功能
快速MCP迁移: 使用FastMCP对服务器进行了现代化改造,并进行了重大改进:
- 自动输入验证: 所有输入均使用具有字段约束的Pydantic模型进行验证
- 工具注释: 所有工具现在都有适当的注释(readOnlyHint、destructiveHint等)
- 工具名称前缀: 所有工具都以前缀
cubing_防止命名冲突 - 响应格式选项: 分析工具支持JSON和Markdown输出格式
- 改进的错误消息: 更好、更可操作的错误消息和指导
- 字符限制: 内置响应截断功能,适用于大输出
- 综合文档字符串: 增强文档,包括使用示例和错误处理详细信息
- 代码质量: 代码库大小减少40%,可维护性更好
发展
服务器使用 cubing-algs 图书馆提供:
VCube:虚拟多维数据集状态管理Algorithm:移动序列表示Move:个人移动解析和验证- 综合分析工具
支持的符号
- 基本动作:U、D、L、R、F、B
- 修饰符:'(素数),2(双倍)
- 大动作:Rw、Lw、Uw、Dw、Fw、Bw(或SiGN:r、l、u、d、f、b)
- 旋转:x,y,z
- 切片移动:M,E,S
- 分层移动:2R、3Rw、3-4Rw
- 整流器:\[A,B\]→ A B A B
- 缀合物:\[A:B\]→ A B A'
