mcpField
S
Store Builder

Store Builder

本地服务
github.com商业与营销12 周前更新

关于 Store Builder

Store Builder 是一个 stdio MCP 服务,让 AI Agent 在 Store Builder 站点中编辑页面、绑定真实店铺数据、预览并发布。它提供覆盖页面构建、媒体、主题和店铺流程的工具,并通过 API 操作索引访问平台功能。

主要功能

  1. 01创建和编辑页面结构
  2. 02将内容绑定到店铺数据
  3. 03渲染页面并查看截图与缺陷
  4. 04管理媒体、主题和多语言内容
  5. 05发布页面并检查线上结果
  6. 06通过 API 操作索引执行平台操作

适用场景

  1. 01根据店铺目录构建商品页面
  2. 02检查页面布局并修复可见问题
  3. 03更新主题后发布页面
  4. 04导入网站结构并创建草稿页面

MCP 相关

作为 stdio MCP 服务,向 AI Agent 暴露 38 个工具,用于操作 Store Builder 站点。工具涵盖页面设计、数据绑定、预览和发布。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"vuluu2k-sbuilder": {
"command": "npx",
"args": [
"-y",
"sbuilder-mcp"
],
"env": {
"SB_API": "<SB_API>",
"SB_TOKEN": "<SB_TOKEN>",
"SB_EMAIL": "<SB_EMAIL>",
"SB_PASSWORD": "<SB_PASSWORD>"
}
}
}
}
启动命令npx -y sbuilder-mcp
需要配置的环境变量
SB_APIBase URL of the Store Builder API. Defaults to http://localhost:8080.
SB_TOKEN密钥An API key from the store's Agent app (Apps → AI agent → Create key). Opens both the partner API and the private site API for that one store.
SB_EMAILOptional. A platform account, only for account-level calls a key cannot make (listing sites, members, roles).
SB_PASSWORD密钥Optional. That account's password.

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npmsbuilder-mcp0.104.0

工具

37

收录的工具列表 · 更新于 2 周前

参数类型必填说明
emailstring否
passwordstring否

详细介绍

sbuilder-mcp

一个 MCP stdio 服务,让 AI Agent 能端到端操作 Store Builder 网站——设计页面、填入真实数据、查看效果并发布——全程无需人工点击。

Tiếng Việt

安装

只需一条命令,即可将此服务安装到计算机上的每个 Agent 客户端:

npx -y sbuilder-mcp install --token wbk_… --api https://your-host --site site_…

它支持 Claude Code、Claude Desktop、Cursor、Windsurf、VS Code 和 Codex,并会安装到它找到的客户端中。使用 --client cursor,codex 指定客户端,或使用 --dry-run 预演。遇到不认识的选项时,它会拒绝执行,而不是忽略——一个悄无声息、什么也不做的标志,比不存在的标志更糟。

--site 是可选参数,但值得传入:一个密钥只属于一个站点,因此它会被写入 SB_SITE,之后每个工具都会默认使用该站点。不传入时,模型就必须在整个会话中携带站点 ID,而它只能通过列出页面并读取其中一个页面来获取。

--site-name "Your Store" 会与它一同设置为 SB_SITE_NAME。它只是一个标签,并非地址——不会根据它解析任何内容——但它可以让 Agent 向你复述商店名称,而不是复述一个由你无法选择的 32 位字符 ID。只要商店有名称,Apps → AI agent 页面就会附加这个名称。

它会合并配置:这些文件中已有的服务会保留;任何被替换的内容都会复制到 <file>.sbuilder-backup;无法解析的配置会被拒绝,而不是覆盖——带有尾随逗号的文件远比值得丢弃的文件常见,而且这正是你需要修复的问题。

商店的 Apps → AI agent 页面会提供这条命令,并预先填入密钥。

或者手动配置客户端
{
  "mcpServers": {
    "sbuilder": {
      "command": "npx",
      "args": ["-y", "sbuilder-mcp"],
      "env": { "SB_API": "https://api.your-host", "SB_TOKEN": "wbk_…", "SB_SITE": "site_…" }
    }
  }
}

获取密钥

打开商店,前往 Apps → AI agent,然后点击 Create key。该页面会提供适用于你客户端的配置块,并预先填入密钥——有了它,你就不必阅读本节了。

一个密钥就够了。它可以访问合作方接口(/api/v1)和私有站点 API,包括页面文档和实时编辑套接字;并且每次请求都会受到三方面限制:密钥自身的作用域、创建密钥的成员当前的角色,以及密钥所属的唯一商店。

SB_EMAIL + SB_PASSWORD 仍然是可选项;它们唯一提供的功能是执行账户级调用——列出你的站点、管理成员和角色。密钥有意不能执行这些操作,因为它们代表的是“此人的账户”。

SB_API 默认为 http://localhost:8080。密钥只从环境变量中读取。

sb_media_upload 的照片搜索无需在此处提供密钥:它会调用平台自己的 GET /api/sites/{siteId}/images/search,由平台在此服务已持有的凭据后方轮换使用一组服务商密钥。运营者只需在服务器上设置 PEXELS_API_KEYS 即可启用(用逗号分隔;可在 https://www.pexels.com/api/ 免费获取密钥)。如果未配置任何密钥,搜索会返回“不可用”,并告知调用方自行查找照片并传入 URL,之后平台会在服务器端获取该照片。本客户端有意不提供备用服务商:否则就会把平台存在的意义——替用户保管的密钥——放进每一份安装中。

工具

工具功能
sb_connect登录,列出此账号可操作的站点,并报告当前凭据
sb_site_list列出此账号可操作的站点
sb_api_find按意图查找 API 操作——每个匹配项占一行——然后按 ID 查看某个操作的调用说明:真实参数架构、所需凭据,以及从解码这些字段的处理程序中读取的请求体字段,每项均附有其文档注释记录的注意事项
sb_api_call执行某个操作,或通过方法 + 路径调用任意路由;默认进行空运行。支持字段选择(点分路径,可用于列表和单对象写入响应)和本地结果分页;支持整条记录的 PUT 操作所需的 merge、If-Match 和多部分 file
sb_page_open打开页面以供编辑并返回其大纲;或者使用 form_id 返回表单的字段文档(字段、默认值、依赖字段规则)
sb_outline将打开的页面显示为压缩树;绝不倾倒原始文档。共享页眉 / 页脚和覆盖层各占一行,除非设置 chrome: true
sb_node_read完整读取一个节点,并在其为共享全局节点时发出警告
sb_catalog_search根据元素应实现的功能查找元素,使用平台自带的 AI 提示
sb_traits_for查看元素的检查器——标签页、分组、控件及每个已声明控件会写入的内容——以及其 AI 提示、默认值和包含规则
sb_add一次调用即可添加元素或整个嵌套子树;筛选器会附带从目录中读取的选项行
sb_set写入样式 / 配置 / 特殊属性;默认按断点设置
sb_move将节点移至另一个父节点下
sb_remove移除节点及其子树
sb_duplicate使用新 ID 在原节点后复制节点及其子树;也可复制到其他页面或站点,行为与编辑器的复制 / 粘贴相同(会复制资源,并列出无法随之迁移的引用)
sb_templates商店保存的区块模板,以及内置布局——主视觉区、三项特色、数据统计、常见问题、行动号召横幅、商品陈列架、分类条、品牌墙、信任横幅——均使用页面自身的设计令牌构建
sb_template_use将区块模板添加到页面
sb_page_list列出站点上的所有页面
sb_page_create创建页面;商店类型页面会使用编辑器自带的起始文档;type 指定结账、商品、分类、文章或课程路由
sb_page_update编辑页面名称、slug、首页标记、顺序、SEO(标题、描述、Open Graph、robots、meta 标签、JSON-LD)和仅限成员标记;这些内容会合并到 settings,因此未指定的键会保留。在模板页面上,可将其设为该类型的默认模板,或选择由其渲染的商品 / 分类 / 文章
sb_page_version查看页面的平台恢复点——列出命名版本和自动保存历史、创建草稿快照、恢复某个版本
sb_code管理站点自定义代码文件(跟踪像素、分析工具、聊天组件、站点 CSS;注入 html/css/js/scss/ts,json/text 则通过 /_wb/code/<name> 提供),可针对所有页面或单个页面执行列出、创建、合并更新、移除;写入时会编译 scss/ts,并报告 compile_error
sb_function管理站点后端函数——使用站点密封密钥、集合和 fetch 的服务端 TypeScript/JavaScript,通过 /_wb/fn/<slug> 提供(以 _ 开头的 slug 是可导入模块)——可列出、读取、创建、合并更新、移除、测试运行(计入月度配额)、查看运行日志、本月用量以及仅写入的密钥;构建失败时会报告 compile_error
sb_publish将草稿编译为线上页面(级联更新共享全局内容),报告上线的版本;使用 verify 检查源站是否正在提供该页面;列出其他含未发布草稿的页面和从未发布过的页面(publish_drafts 会同时发布这两类页面)
sb_page_state查看页面三个副本各自的状态——编辑器画布显示的 DRAFT、店面提供的 PUBLISHED 行,以及此会话的副本;还会显示编辑器是否会将画布渲染为空白,以及恢复点所在位置
sb_page_repair重命名根节点不是 ROOT 的页面(旧版种子数据遗留的问题),让每次编辑器构建都能渲染该页面;可用于单个页面或整个站点
sb_review列出访客会看到的所有缺陷及各自的修复方法,并列出此商店与完成付费订单之间的五项差距
sb_media_list查看站点的媒体库
sb_media_upload添加图片并获取其 URL;可使用本地路径、由平台抓取的 URL,或搜索并挑选真实照片;每次可添加一张或多张;paths 可在一次调用中上传多个本地文件
sb_live_join作为可见协作者加入编辑器的实时编辑会话,之后的编辑会实时显示
sb_look保存并渲染页面,返回截图、测量出的节点框,以及从渲染结果中测出的布局缺陷
sb_event为节点设置点击操作——打开购物车、前往页面或打开弹窗
sb_bind将节点内容绑定到真实商店数据,或设置按钮以添加商品到购物车
sb_import读取任意公开 URL 上的页面,并将其结构和内容作为真实元素添加到打开的页面中,使用此页面自身的设计令牌进行样式设置——这是翻译,不是克隆
sb_import_site从一个 URL 读取整个站点——其站点地图或该页面上的链接——并为此处找到的每个页面创建独立草稿页面,使用本站的设计令牌构建;入口页面自身的颜色和字体比例也会应用到本站主题,使其不再只是一个只读副本
sb_theme读取或修改站点的调色板和字体比例——这是所有样式预设的解析层,因此一个令牌即可重绘每个页面;支持按断点设置文本样式覆盖和元素样式 presets;locale 用于设置站点语言
sb_translate按照编辑器的多语言面板翻译站点——启用语言,将页面字符串列为缺失 / 已完成 / 已过时,写入或机器填充字符串,并批准机器翻译条目
sb_store按固定顺序执行商店流程——checkout(构建可用结账流程所需的四次写入)、checkout_sync(将商店当前的付款和配送方式同步到每个现有订单表单,并重新发布结账页面)、form(平台的 17 种模板中的任意一种,附带其字段文档)、chrome(在真实站点菜单上创建一个共享页眉或页脚——站点名称链接至首页、桌面菜单、移动抽屉、搜索、购物车和账户图标)、menu(绑定到站点菜单并解析其链接的菜单节点)、overlay_attach(将弹窗或快速查看绑定到打开的页面)、cart(在站点没有购物车抽屉时创建一个;relocalize 将现有购物车抽屉切换为站点语言)和 app(内置应用及其所需页面)、global_attach / global_detach(将现有共享区块放到打开的页面上,或从页面移除)、global_promote(将页面上的区块设为新的共享区块)以及 template_save(将区块保存为可重复使用的模板)
sb_undo撤销 / 重做此会话的写入操作——页面和表单编辑,以及 sb_api_call PUT 操作;每项操作均按工具和目标命名,默认处理打开的页面(设置 all: true 可处理所有页面);如果页面在此期间已由他人保存,则拒绝操作。平台的版本和历史记录(sb_page_version)不会随此进程结束而消失
三十八个工具、949 个 API 操作(441 个写操作中有 354 个携带的请求体结构是从处理程序中读取的)、124 个元素、96 个绑定源。sb_api_find
是一个索引,而不是每个端点对应一个工具,因此工具列表保持精简,同时平台能做的一切仍触手可及——平台新增的操作会随下一次 npm run codegen 一并到来。

每个结果都是精简的 JSON,每条指令在每个进程中只会说一次,每个工具都带有 MCP 注释——遵循这些注释的客户端不会再要求用户确认读取操作。

完整参考文档:docs/tools.md。构建器原生支持的功能及其边界:docs/capabilities.md。

如何保持同步

平台会发布两个生成后并提交的构件。构建步骤从检出目录中读取它们并生成目录:

WB_REPO=/path/to/web_builder npm run codegen

因此,本仓库不会包含任何平台代码——它依赖的是两个遵循维护中契约的数据文件。src/catalog/api.generated.ts 已提交,因此 npm install 完全不需要检出目录。

开发

npm run build     # tsc -> dist/
npm test          # vitest
npm run smoke     # offline self-test; must print ALL GOOD

贡献者指南:CLAUDE.md。设计原理: docs/superpowers/specs/。

发布

对 main 的推送只要涉及 src/**,就会自动发布 (.github/workflows/auto-release.yml):先运行门禁检查(构建、测试、冒烟测试),再根据提交主题确定版本号升级——feat 表示次版本,BREAKING CHANGE 或 ! 表示主版本,其他情况表示补丁版本——Claude 会用两种语言编写更新日志条目, 同步 server.json,将发布提交为 chore(release): vX.Y.Z 并打上标签, 然后发布到 npm、作为 GitHub Release 发布,并通过 GitHub OIDC 发布到 MCP Registry。 workflow_dispatch 会运行相同流程,并使用你选择的版本升级类型。提交主题中包含 chore(release): 或 release: v 的提交会被跳过,因此发布不会触发另一次发布。

此工作流需要在 prod 环境中配置两个仓库密钥:NPM_ACCESS_TOKEN 和 CLAUDE_CODE_OAUTH_TOKEN。Registry 步骤无需任何密钥。

npm run release(scripts/release.mjs)是离线路径——适用于没有 CI 的机器,或在轮换密钥期间进行发布。它运行相同的门禁检查,并写入相同的 ## [x.y.z] - date 更新日志标题,因此两种方式的结果始终一致。

安全设计

如果客户端不了解五条平台规则,就会静默失败,因此我们将它们编写为经过测试的代码,而不是建议:

  • Band 顺序——ROOT 的子项必须按 [header][middle][footer] 排列,否则平台会拒绝每次保存。
  • 站点叠加层(购物车抽屉、弹出窗口)在读取时会合成到 ROOT 上,在写入时会被剥离;它们不受任何 ROOT 层级规则约束,也无法通过页面工具编辑。
  • 全局区块是共享主控项——编辑一个会更改所有包含它的页面,发布时也会级联。任何涉及全局区块的结果都会说明这一点。
  • 默认响应式——sb_set 会按断点写入,因为设计应该能够响应变化。Base 是级联中的回退层,不是陷阱。
  • 应用区块——市场应用的子树在读取时会合成到页面上,在保存时会还原为一个引用节点,因此对其内部的编辑会悄无声息地丢失。所有写入都会拒绝修改其内部;大纲会将区块根节点标记为 app: true。

状态

三个阶段均已交付:身份验证和完整 API 访问;页面文档、补丁协议、构建器及五个陷阱;实时编辑套接字、让出规则和视觉循环。此后新增了:精简所有结果的令牌用量,以及自动完成的发布流程。

需要 Node ≥22(提供全局 WebSocket),并且只有 sb_look 需要系统安装的 Google Chrome——playwright-core 不捆绑浏览器,因此安装时不会下载任何内容。

MIT。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。