Token导航 LogoToken导航TokenDH.com
Brick MCP App logo
设计创作未说明官方级别未说明来源级核验

Brick MCP App

MCP Server

一个基于Three.js的MCP应用,用于在支持MCP的主机中设计和构建3D砖块结构,支持交互式构建或通过自然语言让AI自动构建。

工具数

8

提示词数

0

GitHub Stars

13

资源数

0
3D建模TypeScriptClaudeClaude DesktopClaude

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

dend

提供方

dend

最后核验

2026/5/17 20:23

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

详细介绍

Brick Builder MCP App

A Three.js MCP App for designing 3D brick constructions inside MCP-enabled hosts like Claude Desktop and Visual Studio Code. Build interactively or let the AI build structures for you through natural language.

Quick Start · Connecting · Tools · Extensibility

Brick Builder running in Claude, building a structure through natural language

快速开始

git clone https://github.com//brick-mcp-app.git
cd brick-mcp-app
npm install
npm run build
npm run serve

服务器启动于 http://localhost:3001/mcp.

先决条件

  • Node.js 20+
  • npm 10+

命令

命令描述
npm install安装依赖项
npm run build构建客户端(Vite)+服务器(esbuild)
npm run serve在开发模式下启动服务器(tsx,自动重新加载)
npm run dev观看客户端+并发服务
npm start先构建后服务(一个命令)

建筑

服务器是 单一事实来源 对于所有场景状态。AI(LLM)和交互式UI都只能通过MCP工具改变状态。服务器验证每个操作——冲突检测、边界检查、支持验证——并返回权威结果。

关键设计决策

  • 共享模块级状态:主机为LLM和应用程序iframe创建单独的MCP会话。场景状态存在于模块级别,因此两个会话读取/写入相同的场景。
  • 轮询跨会话同步:UI民意调查 brick_get_scene 每秒都有LLM发起的更改。用户发起的更改(通过 callServerTool)立即反映出来。
  • 单层砖砌筑:LLM每人放置一块砖 brick_place 调用并在响应中接收放置的砖块的足迹,从而能够精确定位后续砖块。

连接到主机

\[!提示\] 您可以使用 Cloudflare隧道 将本地托管的服务器暴露给互联网。这使您可以从claude.ai或任何远程MCP主机连接,而无需端口转发或VPN: ``sh cloudflared tunnel --url http://localhost:3001 ` 然后使用生成的 *.trycloudflare.com URL代替 http://localhost:3001` 在下面的配置中。

克劳德桌面版

Claude Desktop本身不支持通过配置流式传输HTTP服务器。您需要将服务器添加为 自定义连接器 (可在付费计划中使用):

  1. 打开克劳德桌面设置
  2. 导航至 连接器 并添加新的自定义连接器
  3. 将URL设置为MCP服务器的托管URL(如果您使用的是Cloudflare隧道,请附加 /mcp)

Visual Studio Code

Visual Studio Code本机支持流式HTTP MCP服务器。创建 .vscode/mcp.json 在您的工作空间中:

{
  "servers": {
    "brick-builder": {
      "type": "http",
      "url": "http://localhost:3001/mcp"
    }
  }
}

或者使用命令选项板: MCP:添加服务器 > 超文本传输协议 > http://localhost:3001/mcp

MCP工具

无论您使用何种客户端与应用程序交互,都可以访问以下工具。

工具说明
brick_read_me返回建筑指南、坐标系和示例
brick_get_available返回所有具有ID、尺寸和类别的砖类型
brick_render_scene打开3D查看器iframe(放置砖块前必须调用)
brick_place放一块砖。返回带有足迹的放置砖块,以实现精确的相邻定位
brick_get_scene读取所有砖块及其足迹的当前场景状态
brick_remove_brick按ID移除单个砖块。级联以移除其上方的无支撑砖块
brick_clear_scene从场景中删除所有砖块
brick_export_scene导出为JSON或人类可读的摘要

交互式用户界面

3D视口支持七种交互模式,可通过工具栏或键盘快捷键切换:

#模式快捷方式操作
11动态观察、平移和缩放相机。没有砖块互动。
2地点2单击网格以放置砖块。重影预览显示有效(绿色)或无效(红色)位置。
3选择3单击一块砖以将其选中(突出显示)。
4移动4将砖块拖动到新位置。
5旋转5单击一块砖将其旋转90度。
6删除6单击一块砖将其删除
7油漆7单击砖块以更改其颜色。

其他快捷方式:

关键行动
R原地模式下的循环旋转(0/90/180/270)
Delete移除所选砖块
Escape取消选择/取消拖动

砖块类型

\[!注意\] 这个列表不是最终的——随着时间的推移,将添加更多的砖块类型。看 添加新砖类型 如何贡献新类型。

三类20种砖:

类别类型
砖块 (标准高度,3个板单元)1x1、1x2、1x3、1x4、1x6、1x8、2x2、2x3、2x4、2x6、2x8
盘子 (1/3高度,1个板单元)1x1、1x2、1x4、2x2、2x4、2x6、4x4
斜坡 (斜顶)1x2、2x2、2x3

坐标系

\[!注意\] 我可能会在未来进一步扩大这一范围(或完全取消基板)。目前的设置是非常实验性的。
  • 底板:48 x 48螺柱(x和Z轴)
  • Y轴:板单位高度(1块标准砖=3个Y单位)
  • 旋转:0、90、180或270度(交换X/Z维度)
  • 所有位置都是捕捉到螺柱网格的整数

添加新砖类型

添加新砖只需要两个文件。目录、服务器验证、几何体渲染和UI选择器都会自动拾取它。

步骤1:创建定义

在中创建文件 src/bricks/definitions/The BrickDefinition 接口:

interface BrickDefinition {
  id: string;                  // Unique ID used in tool calls (e.g. 'brick_3x2')
  name: string;                // Display name (e.g. '3×2 Brick')
  category: 'brick' | 'plate' | 'slope' | 'technic' | 'corner';
  studsX: number;              // Width in studs (X axis)
  studsZ: number;              // Depth in studs (Z axis)
  heightUnits: number;         // Height in plate units (standard brick = 3, plate = 1)
  blockout?: BlockoutZone[];   // Optional zones where bricks can't sit on top (slopes)
}

示例src/bricks/definitions/brick_3x2.ts:

import type { BrickDefinition } from '../types.js';

const brick_3x2: BrickDefinition = {
  id: 'brick_3x2',
  name: '3×2 Brick',
  category: 'brick',
  studsX: 3,
  studsZ: 2,
  heightUnits: 3,
};

export default brick_3x2;

带屏蔽的示例 (坡度)——斜面块螺柱连接:

const slope_2x3: BrickDefinition = {
  id: 'slope_2x3',
  name: '2×3 Slope 45°',
  category: 'slope',
  studsX: 2,
  studsZ: 3,
  heightUnits: 3,
  blockout: [{ minX: 0, maxX: 2, minZ: 1, maxZ: 3, height: 3 }],
};

步骤2:从索引导出

添加一行 src/bricks/definitions/index.ts:

export { default as brick_3x2 } from './brick_3x2.js';

清单

砖块现在是:

  • BRICK_CATALOG (由出口自动填充)
  • LLM可通过以下方式获得 brick_get_availablebrick_place
  • 显示在UI砖选择器面板中
  • 通过服务器端冲突、边界和支持检查进行验证
  • 基于自动生成的几何体渲染 category

没有更改 server.ts, BrickBuilder.tsx,或任何其他文件都需要使事情发生。

类别如何映射到几何图形

category 字段决定哪个几何生成器创建三维模型:

类别高度约定几何形状
brickheightUnits: 3 (标准)顶部带螺柱的矩形,底部中空
plateheightUnits: 1 (薄)与砖相同,1/3高
slopeheightUnits: 3倾斜的顶面,仅在平坦部分有螺柱
technicheightUnits: 3墙上用于轴连接的销孔
cornerheightUnits: 1L形车身,带部分螺柱格栅

添加新类别

要添加全新的几何图形样式,请执行以下操作:

  1. 在中创建几何体生成器 src/bricks/geometry/ (例如。 cylinder.ts)
  2. 在开关中添加一个案例 src/bricks/geometry/index.ts:
   case 'cylinder': geometry = createCylinderGeometry(bt); break;
  1. 将类别添加到 BrickDefinition 类型联合 src/bricks/types.ts
  2. 几何形状必须 角原点 --跨越 [0, w] x [0, h] x [0, d] 在本地空间中

单位参考

单位世界大小现实世界
1个螺柱(X/Z)1.08毫米
1个板单元(Y)0.43.2mm
1块标准砖(Y)1.2(3块板)9.6mm

本地测试

测试线束

该项目包括一个内置的视觉测试线束,用于在没有主机的情况下测试MCP工具。启动服务器并导航到:

http://localhost:3001/test

该线束直接连接到MCP服务器,并为每个工具提供了一个带有按钮的侧边栏——渲染场景、放置砖块、清除、导出等。3D视口嵌入在旁边,因此您可以立即看到结果。

基本主机

您还可以使用MCP Apps SDK基本主机进行测试,该主机模拟了完整的主机环境(iframe、postMessage、, callServerTool):

# Terminal 1: start the server
npm run build && npm run serve

# Terminal 2: run basic-host
git clone --depth 1 https://github.com/modelcontextprotocol/ext-apps.git /tmp/mcp-ext-apps
cd /tmp/mcp-ext-apps/examples/basic-host
npm install
SERVERS='["http://localhost:3001/mcp"]' npm run start
# Open http://localhost:8080

许可证

麻省理工学院——见 许可证.

目录标签

目录标签

3D建模TypeScriptClaude本地部署交互设计AI辅助MCP应用Three.js

支持客户端

Claude DesktopClaude

接入字段

传输方式(transport,传输协议)

未说明

鉴权方式(authType,认证方式)

none

工具数量(toolCount,工具数)

8

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

未说明none部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

仍需确认:installCommand

来源信息

继续浏览同类 MCP