# Store Builder (npm · sbuilder-mcp)

Design, fill with real store data, render and publish Store Builder pages from an AI agent.

- Trust score: 73/100 (medium)
- Change this week: +28
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-09-21

## Components

- npm · `sbuilder-mcp`: 73/100 (this document), [markdown](https://verifymcp.io/servers/vuluu2k-sbuilder-mcp/sbuilder-mcp.md), [page](https://verifymcp.io/servers/vuluu2k-sbuilder-mcp/sbuilder-mcp)

## Channel facts

- Registry: `npm`
- Package: `sbuilder-mcp`
- Version: `0.62.0`
- Transport: `stdio`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-09-21.

- **Supply Chain Security**: 98/100
  - No malware found by supply-chain analysis.
  - No known CVEs affecting this package version or its production dependencies.
  - No install/post-install scripts declared.
  - 31 of 97 dependencies flagged as unhealthy.
- **Provenance & Transparency**: 45/100
  - Source repository is publicly reachable at the declared URL.
  - Provenance check failed: no build-provenance attestation is published.
  - Clear OSI-approved license (MIT).
  - Actively maintained (last published 0 days ago).
  - Disclosure check failed: no security disclosure policy was found in the source repository.
- **Schema Quality & AI Usability**: 63/100
  - AI-judged instruction clarity (good).
  - Context-footprint check failed: tool/resource definitions use about 4043 tokens (~130/item across 31 items; 31 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 47/100
  - Stability observed for 14 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 82/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 46% of tool parameters carry a description.
- **Tool Safety**: 100/100
  - No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.
  - All 2 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation.
  - An AI judge read all 32 captured unit(s) of tool text and found none that tries to manipulate the model reading it.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

## Install

### How do I install the Store Builder MCP server?

Store Builder runs locally as an npm package, launched with npx -y sbuilder-mcp. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

### Claude

```bash
claude mcp add vuluu2k-sbuilder-mcp -- npx -y sbuilder-mcp
```

### Cursor

```json
{
  "mcpServers": {
    "vuluu2k-sbuilder-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "sbuilder-mcp"
      ]
    }
  }
}
```

### VS Code

```json
{
  "servers": {
    "vuluu2k-sbuilder-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "sbuilder-mcp"
      ]
    }
  }
}
```

### Codex

```bash
codex mcp add vuluu2k-sbuilder-mcp -- npx -y sbuilder-mcp
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "vuluu2k-sbuilder-mcp": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "sbuilder-mcp"
      ],
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add vuluu2k-sbuilder-mcp --command npx --arg -y --arg sbuilder-mcp
```

### Hermes

```yaml
mcp_servers:
  vuluu2k-sbuilder-mcp:
    command: "npx"
    args: ["-y", "sbuilder-mcp"]
```

### Netclaw

```json
{
  "McpServers": {
    "vuluu2k-sbuilder-mcp": {
      "Transport": "stdio",
      "Command": "npx",
      "Arguments": [
        "-y",
        "sbuilder-mcp"
      ]
    }
  }
}
```

### Vellum

```bash
assistant mcp add vuluu2k-sbuilder-mcp -t stdio -c npx -a -y sbuilder-mcp
```

### Other

```json
{
  "mcpServers": {
    "vuluu2k-sbuilder-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "sbuilder-mcp"
      ]
    }
  }
}
```

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-09-21 (score 73, +1)

No change was recorded against any check on this day. Stability & Change Management went from 43 to 47. That category is still filling its 30-day observation window: 13 days of observed history at the previous scan, 14 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-09-20 (score 72, 0)

- [functional regression] Schema quality: 115 → 130
- [functional regression] Security disclosure: unverified → fail
- [functional improvement] Tool coverage: 40% → 46%
- [functional] Package version: 0.61.1 → 0.62.0

### 2026-09-19 (score 72, 0)

- [functional regression] Security disclosure: fail → unverified

### 2026-09-18 (score 72, +1)

No change was recorded against any check on this day. Stability & Change Management went from 33 to 37. That category is still filling its 30-day observation window: 10 days of observed history at the previous scan, 11 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-09-17 (score 71, +10)

- [security improvement] Known CVEs: unverified → pass
- [functional improvement] Dependency health: unverified → 0.85
- [functional] Package version: 0.61.0 → 0.61.1

### 2026-09-16 (score 61, +5)

- [security regression] Stability: 0.27 → unverified
- [security regression] Tool safety: pass → unverified
- [security regression] Known CVEs: pass → unverified
- [security improvement] Malware scan: unverified → pass
- [functional regression] Capabilities: pass → unverified
- [functional regression] Tool coverage: 100 → unverified
- [functional regression] Dependency health: 0.85 → unverified
- [functional] First check of Schema quality: unverified
- [functional] Package version: 0.59.3 → 0.61.0
- [functional] Package version: 0.59.3 → 0.60.4
- [functional] Package version: 0.59.3 → 0.60.3
- [functional] Package version: 0.59.3 → 0.60.2
- [functional] Package version: 0.59.3 → 0.60.1
- [functional] Package version: 0.59.3 → 0.60.0

### 2026-09-15 (score 56, +11)

- [security regression] Stability: 0.23 → unverified
- [security regression] Tool safety: pass → unverified
- [security improvement] Malware scan: unverified → pass
- [security improvement] Known CVEs: unverified → pass
- [functional regression] Capabilities: pass → unverified
- [functional regression] Tool coverage: 100 → unverified
- [functional improvement] Dependency health: unverified → 0.85
- [functional] First check of Schema quality: unverified
- [functional] Package version: 0.48.1 → 0.59.3
- [functional] Package version: 0.48.1 → 0.59.2
- [functional] Package version: 0.48.1 → 0.59.1
- [functional] Package version: 0.48.1 → 0.59.0
- [functional] Package version: 0.48.1 → 0.57.0
- [functional] Package version: 0.48.1 → 0.52.0
- [functional] Package version: 0.48.1 → 0.50.0
- [functional] Package version: 0.48.1 → 0.49.0

### 2026-09-14 (score 45, −10)

- [security regression] Known CVEs: pass → unverified
- [security regression] Stability: 0.20 → unverified
- [security regression] Tool safety: pass → unverified
- [security improvement] Malware scan: unverified → pass
- [functional regression] Dependency health: 0.85 → unverified
- [functional regression] Capabilities: pass → unverified
- [functional regression] Tool coverage: 100 → unverified
- [functional] First check of Schema quality: unverified
- [functional] Package version: 0.41.0 → 0.48.1
- [functional] Package version: 0.41.0 → 0.47.2
- [functional] Package version: 0.41.0 → 0.47.0
- [functional] Package version: 0.41.0 → 0.46.3
- [functional] Package version: 0.41.0 → 0.46.2
- [functional] Package version: 0.41.0 → 0.46.0
- [functional] Package version: 0.41.0 → 0.45.0
- [functional] Package version: 0.41.0 → 0.42.0

## MCP tools (31)

### `sb_connect` (~51 tokens)

Log in and list the sites this account can operate. Call this first. Reads SB_EMAIL and SB_PASSWORD from the environment unless you pass them.

Input parameters:

- `email` (string)
- `password` (string)

### `sb_site_list` (~17 tokens)

List the sites this account can operate.

### `sb_api_find` (~125 tokens)

Find API operations by intent (query), or get a call sheet (id): parameters, credential, body fields and handler caveats. Reaches all 560 operations.

Input parameters:

- `id` (string): An id from a previous search — returns that operation's full call sheet
- `limit` (integer): Default 8
- `query` (string): What you want to do, in words: "create a menu", "list orders", "upload media"
- `tag` (string): Narrow to one tag, e.g. "menus", "products", "theme"

### `sb_api_call` (~212 tokens)

Call an operation from sb_api_find (id), or a route the catalog lacks (method+path); dry run by default. pick selects fields, max_items caps lists, item_offset skips items. Lists over 60 KB say so.

Input parameters:

- `body`
- `dry_run` (boolean): Defaults to true. Pass false to actually send.
- `id` (string): Operation id from sb_api_find, e.g. "get:/api/sites/{siteID}/menus"
- `item_offset` (integer): Offset within this response, after API paging. Reads only.
- `max_items` (integer)
- `method` (string): With path, when id is absent: GET|HEAD|POST|PUT|PATCH|DELETE
- `path` (string): Bare platform path, e.g. "/api/sites/{siteId}/published"; {siteId} defaults to SB_SITE
- `path_params` (object)
- `pick` (array)
- `query` (object)

### `sb_page_open` (~61 tokens)

Open a page for editing and return its outline. Call before any sb_add / sb_set / sb_move / sb_remove. Find page ids with sb_api_find "list pages".

Input parameters:

- `page_id` (string, required)
- `site_id` (string)

### `sb_outline` (~62 tokens)

The open page as a compressed tree — id, type, name, child count, band, and whether a node is a shared global or a site overlay. Never the raw document: a real page is hundreds of KB of JSON.

Input parameters:

- `depth` (integer)

### `sb_node_read` (~34 tokens)

One node in full — style, config, specials, per-breakpoint overrides, bindings.

Input parameters:

- `id` (string, required)

### `sb_catalog_search` (~87 tokens)

Find an element type by what it does — or OMIT query to browse every type, the only way to meet one you would not have searched for. detail:true adds the AI hints, as does sb_traits_for.

Input parameters:

- `detail` (boolean): Include useWhen / avoidWhen / contentTips per match
- `limit` (integer): Default 8
- `query` (string)

### `sb_traits_for` (~89 tokens)

This element's INSPECTOR, as a person sees it: tabs, groups, and every control name — with what each DECLARED control writes, and the AI hints for using the element. Read this before styling an element; pass control to read one control in full.

Input parameters:

- `control` (string): Narrow to one control, e.g. "font_size"
- `type` (string, required)

### `sb_add` (~88 tokens)

Add an element — or a whole NESTED subtree — under a parent. One call builds a complete section: pass children rather than calling this once per node.

Input parameters:

- `dry_run` (boolean)
- `force` (boolean): Override a render-inference guard; reported as forced
- `index` (integer)
- `parent_id` (string, required)
- `spec` (object, required)

### `sb_set` (~211 tokens)

Write style, config or specials keys on one node, or on many through edits (one save, one live frame). Per BREAKPOINT by default; base:true writes the fallback layer, right for a value that should not vary.

Input parameters:

- `base` (boolean)
- `breakpoint` (string)
- `dry_run` (boolean)
- `edits` (array)
- `force` (boolean): Override a render-inference guard; reported as forced
- `id` (string)
- `keys` (object)
- `namespace` (string)
- `state` (string): An interaction state — "hover", or "stuck" for how a pinned element looks once it is stuck (needs a sticky/fixed self-or-ancestor; a descendant styles itself through the host).
- `unset` (array): Keys to REMOVE from the same slot — the only way to undo a write. Setting null is not the same: null is a stored value, so the override still counts as present.

### `sb_move` (~65 tokens)

Move a node to another parent at an index.

Input parameters:

- `dry_run` (boolean)
- `force` (boolean): Override a render-inference guard; reported as forced
- `id` (string, required)
- `index` (integer, required)
- `parent_id` (string, required)

### `sb_remove` (~48 tokens)

Remove a node and its whole subtree.

Input parameters:

- `dry_run` (boolean)
- `force` (boolean): Override a render-inference guard; reported as forced
- `id` (string, required)

### `sb_review` (~60 tokens)

What a VISITOR would meet on the open page (blank band, placeholder, dead binding) AND what stands between this store and a paid order (checkout page, gateway, delivery, a way back to the cart). Run it before calling a page finished.

### `sb_duplicate` (~72 tokens)

Copy a node and everything under it, under fresh ids, right after the original. The move a designer makes constantly — build one card, duplicate it twice.

Input parameters:

- `dry_run` (boolean)
- `force` (boolean): Override a render-inference guard; reported as forced
- `id` (string, required)

### `sb_templates` (~46 tokens)

The store's saved section templates — designed sections a person starts from rather than assembling one. Use sb_template_use to drop one into the open page.

Input parameters:

- `site_id` (string)

### `sb_template_use` (~83 tokens)

Instantiate a section template into a page — the site's own (the server copies it) or one of the BUILT-IN layouts sb_templates lists, which are composed against this page's own tokens rather than copied.

Input parameters:

- `dry_run` (boolean)
- `page_id` (string, required)
- `site_id` (string)
- `template_id` (string, required)

### `sb_page_list` (~32 tokens)

Every page on the site, with its slug and whether it is live.

Input parameters:

- `site_id` (string)

### `sb_page_create` (~219 tokens)

A store type (product, category, search, blog, post, complete) arrives with the document the editor gives a merchant — product carries the whole bound buy box; seed:false for blank. Any other type is empty and sb_page_open seeds its ROOT. TYPE is the route: /checkout and /products/{slug} need a PUBLISHED page of that type or they 404.

Input parameters:

- `chrome` (boolean): Carry the site's header and footer, default true
- `dry_run` (boolean)
- `headline` (string): The complete page's thank-you line.
- `is_homepage` (boolean)
- `locale` (string): vi (default) or en — the complete page's wording.
- `name` (string, required)
- `seed` (boolean): Default true; false creates a blank page.
- `settings` (object)
- `site_id` (string)
- `slug` (string)
- `type` (string): page (default); sb_page_list lists every type and where each is served

### `sb_publish` (~78 tokens)

Compile the draft into the live page. PUBLISH CASCADES: a page sharing a global section with others republishes them too, because a header edited once must not go live on one page and stay stale on the rest.

Input parameters:

- `dry_run` (boolean)
- `page_id` (string, required)
- `site_id` (string)

### `sb_live_join` (~79 tokens)

Join the site's live-edit room as a visible peer: every write then appears in any open editor as it happens, with the agent shown by the API key's own name rather than a person's. Always yields, so it is safe beside a human. Works with SB_TOKEN or with SB_EMAIL / SB_PASSWORD.

Input parameters:

- `site_id` (string)

### `sb_look` (~186 tokens)

Save, render through the platform's own renderer, and return screenshots at desktop, tablet and mobile widths, measured boxes for the bands and their children, and any layout defect measured on the render (overflow, overlap, unreadable text). node_id frames one element. Judge your work from these, not from memory.

Input parameters:

- `box_depth` (integer): Boxes down to this depth in the tree (default 2: bands and their children)
- `format` (string): jpeg (default) is smaller and faster; png for pixel-exact colour
- `node_id` (string): Frame just this node instead of the whole page — how a designer looks at one card
- `url` (string): Shoot this address instead of the draft preview — use the PUBLISHED storefront URL to see real store data
- `widths` (array)
- `with_boxes` (boolean)

### `sb_media_list` (~78 tokens)

The site's media library. Reuse an image before adding another; search by name, filter by type, page with limit/offset.

Input parameters:

- `limit` (integer)
- `media_type` (string): e.g. "image"
- `offset` (integer)
- `search` (string)
- `site_id` (string)

### `sb_media_upload` (~184 tokens)

Put an image into the media library and get its URL back, ready for sb_set. Takes a local path, a URL, or a SEARCH — `query` returns real photographs with their own descriptions, and `pick` uploads the one you chose, or several at once to stock a site you just built. The only way to add an image.

Input parameters:

- `dry_run` (boolean)
- `folder_id` (string)
- `name` (string)
- `orientation` (string)
- `path` (string): A file on this machine
- `pick`: The id of the search result to upload — or several ids, which stocks a site in one call
- `query` (string): Search real photographs; read the descriptions, then pick
- `site_id` (string)
- `url` (string): Fetched, then uploaded

### `sb_event` (~117 tokens)

Give a node a click action — open the cart, go to a page, open a pop-up. A purchase is not one: use sb_bind action.

Input parameters:

- `action` (string, required): An action this element allows, or "none" to clear. A wrong one is refused with the list
- `dry_run` (boolean)
- `force` (boolean): Override a render-inference guard; reported as forced
- `id` (string, required)
- `payload` (object)
- `trigger` (string): Default "click"

### `sb_bind` (~135 tokens)

Bind a node to real store data so the page shows actual products, not placeholder text. action makes a button a purchase control.

Input parameters:

- `action` (string): Pass product.id + specials.boundProductId
- `dry_run` (boolean)
- `field` (string, required): Where the value lands, always "specials.<key>"
- `force` (boolean): Override a render-inference guard; reported as forced
- `id` (string, required)
- `source` (string, required): e.g. article.author, article.categories, article.content, article.date; 79 in all, and a wrong one is refused with the list

### `sb_store` (~547 tokens)

Run a store flow that must happen in a fixed order. action:"checkout" makes the order form, configures it, saves its fields with this store's real payment and delivery options, then creates and PUBLISHES the checkout page — /checkout 404s without all four. action:"form" seeds any of the platform's other form templates (login, register, forgot, reset, verify, contact, subscribe, booking, review and more) with its own field document, which is the part that cannot be guessed. action:"chrome" gives every page ONE shared header, built from the pages this site already has — the gap sb_review reports as siteChrome. action:"menu" binds a menu node on the open page to the site's menu and resolves its links, the way the editor does. action:"overlay_attach" puts a pop-up on the open page (kind:"popup") or points a list-dataset at a quick-view panel (kind:"quickview", list_id), creating either from the platform's own seed when overlay_id is omitted, and re-reads the page afterwards as the editor must. action:"app" installs one of the platform's built-in apps (app_key) and creates the pages it needs that installing it does not — today only "courses" has any, from the platform's own scaffold; every other key installs with nothing further to build. Dry run returns the plan.

Input parameters:

- `action` (string, required)
- `app_key` (string): action:"app" — which built-in app to install
- `dry_run` (boolean)
- `footer` (boolean): action:"chrome" — build a shared FOOTER instead of a header
- `headline` (string)
- `kind` (string): action:"overlay_attach" — which kind of overlay to attach
- `language` (string): Copy language, default vi
- `list_id` (string): action:"overlay_attach" kind:"quickview" — the list-dataset node on the open page
- `menu_id` (string)
- `name` (string): action:"form" — the form's name in the merchant's list. action:"overlay_attach" with no overlay_id — the new pop-up/quick-view's name.
- `node_id` (string): action:"menu" — the menu node on the open page
- `overlay_id` (string): action:"overlay_attach" — an existing overlay; omit to create one from the seed
- `page_name` (string)
- `site_id` (string)
- `template` (string): action:"form" — which of the platform's own form templates to seed

### `sb_theme` (~154 tokens)

The site's palette and type scale — the layer every element's style preset resolves from, so one token repaints every page at once. Call it with nothing to read what the site actually has. `colors` and `text_styles` PATCH the saved document: what you do not name is kept.

Input parameters:

- `colors` (object): Token id -> CSS colour, e.g. { "heading": "#2E2A3B", "primary": "#E8557A" }
- `dry_run` (boolean)
- `site_id` (string)
- `text_styles` (object): Text style slug -> base declarations, e.g. { "h1": { "fontSize": "48px" } }

### `sb_import` (~180 tokens)

Read a page from any public URL and add its structure and content to the OPEN page as real elements, styled with this page's own tokens. Not a clone: the source's layout and CSS are not copied. Dry run returns what was found.

Input parameters:

- `dry_run` (boolean)
- `max_images` (integer): Default 24 — every image is an upload
- `max_nodes` (integer): No cap by default — bounds the whole import if given
- `max_sections` (integer)
- `nav_timeout_ms` (integer): How long to wait for a page to answer at all. Default 30000; raise it for a slow origin
- `site_id` (string)
- `upload_images` (boolean): Copy the images into this site's media library, default true
- `url` (string, required): The page to read

### `sb_import_site` (~270 tokens)

Read a WHOLE site from one URL — its sitemap, or the links on that page — and give each page found its own DRAFT page here, built from this site's tokens. Not a clone. Dry run returns the page list before anything is created.

Input parameters:

- `depth` (integer): No sitemap: link depth, default 1
- `dry_run` (boolean)
- `exclude` (array)
- `homepage` (boolean): Entry into this site's home page, default true
- `include` (array): Path substrings to keep
- `max_images` (integer): Default 24, whole import
- `max_nodes` (integer): Per page. No cap by default
- `max_pages` (integer): Default 12
- `nav` (boolean): Shared header linking the new pages, default true
- `nav_timeout_ms` (integer): How long to wait for a page to answer at all. Default 30000; raise it for a slow origin
- `site_id` (string)
- `theme` (boolean): Patch this site's theme from the entry page's colours and type scale, default true — SITE-WIDE, affecting pages outside this import too
- `upload_images` (boolean)
- `url` (string, required): Any page of the site

### `sb_undo` (~135 tokens)

Put back what a PUT through sb_api_call replaced — settings, a product, a form, anything with a shape. IN THIS PROCESS ONLY, capped, and gone when it exits. For a PAGE the platform keeps its own: GET .../pages/{pageId}/history lists the autosave checkpoint it writes on every draft save, versions lists the labelled snapshots, and either restores. That one survives everything and is the better answer whenever the thing to recover is a page. No argument lists what is undoable here.

Input parameters:

- `dry_run` (boolean)
- `index` (integer): 1 is the most recent write

## Diagnostics

Captured diagnostic sections: Provenance, Dependencies. The full working is on the page: https://verifymcp.io/servers/vuluu2k-sbuilder-mcp/sbuilder-mcp#diagnostics

## Score history

- 2026-09-21: 73
- 2026-09-20: 72
- 2026-09-19: 72
- 2026-09-18: 72
- 2026-09-17: 71
- 2026-09-16: 61
- 2026-09-15: 56
- 2026-09-14: 45
- 2026-09-13: 55
- 2026-09-12: 69
- 2026-09-11: 54
- 2026-09-10: 53
- 2026-09-09: 58
- 2026-09-08: 53
- 2026-09-07: 57

## Common questions

### What is the Store Builder MCP server?

Store Builder is an MCP server listed in the public MCP registry as io.github.vuluu2k/sbuilder-mcp. Design, fill with real store data, render and publish Store Builder pages from an AI agent. This page covers its npm package (sbuilder-mcp).

### Is the Store Builder MCP server safe to use?

Store Builder scores 73 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 21 September 2026. It declares no install or post-install scripts. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

### What tools does the Store Builder MCP server expose?

Store Builder exposes 31 tools: sb_connect, sb_site_list, sb_api_find, sb_api_call, sb_page_open, and 26 more. Their descriptions and schemas cost roughly 3,805 tokens of context every time the server is loaded.

### Is the Store Builder MCP server still maintained?

Store Builder is still listed as active in the MCP registry. We last reached this channel on 21 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

### What licence is the Store Builder MCP server under?

Store Builder declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.

## Links

- npm package: https://www.npmjs.com/package/sbuilder-mcp
- Socket report: https://socket.dev/npm/package/sbuilder-mcp
- Repository: https://github.com/vuluu2k/sbuilder-mcp
- Changelog RSS feed: https://verifymcp.io/servers/vuluu2k-sbuilder-mcp/sbuilder-mcp.xml
- Changelog JSON feed: https://verifymcp.io/servers/vuluu2k-sbuilder-mcp/sbuilder-mcp.json
- HTML version of this page: https://verifymcp.io/servers/vuluu2k-sbuilder-mcp/sbuilder-mcp
