webcake-storefront-mcp 1.31.13 → 1.32.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,4 +1,11 @@
1
1
  [
2
+ {
3
+ "v": "1.32.0",
4
+ "d": "14/10/2026",
5
+ "type": "Changed",
6
+ "en": "The server now serves a raster PNG icon (/favicon.ico, /favicon.png, /icon.png, /apple-touch-icon.png) alongside the existing SVG favicon, and…",
7
+ "vi": "Server nay phục vụ thêm icon dạng raster PNG (/favicon.ico, /favicon.png, /icon.png, /apple-touch-icon.png) bên cạnh favicon SVG hiện có, và khai…"
8
+ },
2
9
  {
3
10
  "v": "1.31.13",
4
11
  "d": "09/10/2026",
@@ -33,12 +40,5 @@
33
40
  "type": "Added",
34
41
  "en": "Pages created by create_page, build_page, and commit_page_draft are now stamped with by_ai: \"mcp\" (persisted to the backend pages.by_ai column) so…",
35
42
  "vi": "Các trang được tạo bởi create_page, build_page và commit_page_draft nay được đánh dấu by_ai: \"mcp\" (lưu vào cột pages.by_ai ở backend) để builder có…"
36
- },
37
- {
38
- "v": "1.31.8",
39
- "d": "29/06/2026",
40
- "type": "Fixed",
41
- "en": "Elements placed by new_section, new_row, and build_page that fill their grid cell (text, image, container, columns, repeaters) now receive…",
42
- "vi": "Các phần tử được đặt bởi new_section, new_row và build_page mà lấp đầy ô lưới (text, image, container, columns, repeaters) nay nhận constraintX:…"
43
43
  }
44
44
  ]
package/dist/http.js CHANGED
@@ -11,7 +11,7 @@ import { StreamableHTTPServerTransport } from "@modelcontextprotocol/sdk/server/
11
11
  import { isInitializeRequest } from "@modelcontextprotocol/sdk/types.js";
12
12
  import { createServer } from "./server.js";
13
13
  import { makeApi, resolveEnv, ENVIRONMENTS, DEFAULT_ENV } from "./config.js";
14
- import { landingHtml, faviconSvg, ogImageSvg, normalizeLang } from "./web-guide.js";
14
+ import { landingHtml, faviconSvg, ogImageSvg, normalizeLang, ICON_PNG } from "./web-guide.js";
15
15
  import { privacyHtml, termsHtml } from "./legal.js";
16
16
  import { registerClient, startAuthorize, completeAuthorize, exchangeToken, resolveAccessToken, revokeToken, authServerMetadata, protectedResourceMetadata, } from "./auth/oauth-server.js";
17
17
  const MCP_PATH = "/mcp";
@@ -291,7 +291,14 @@ export async function startHttpServer(port) {
291
291
  const httpServer = createHttpServer(async (req, res) => {
292
292
  const path = (req.url ?? "").split("?")[0];
293
293
  // ---- Favicon / brand icon ----
294
- if (req.method === "GET" && (path === "/favicon.ico" || path === "/favicon.svg")) {
294
+ // Google s2 (what the claude.ai connector list uses) skips SVG favicons and shows a
295
+ // globe, so /favicon.ico and friends serve the raster src/icon.png (→ dist/icon.png).
296
+ if ((req.method === "GET" || req.method === "HEAD") && ["/favicon.ico", "/favicon.png", "/icon.png", "/apple-touch-icon.png"].includes(path)) {
297
+ res.writeHead(200, { "content-type": "image/png", "cache-control": "public, max-age=86400" });
298
+ res.end(ICON_PNG);
299
+ return;
300
+ }
301
+ if (req.method === "GET" && path === "/favicon.svg") {
295
302
  res.writeHead(200, { "content-type": "image/svg+xml", "cache-control": "public, max-age=86400" });
296
303
  res.end(faviconSvg());
297
304
  return;
package/dist/icon.png ADDED
Binary file
package/dist/server.js CHANGED
@@ -1,6 +1,7 @@
1
1
  import { readFileSync } from "node:fs";
2
2
  import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
3
3
  import { installTools, buildToolGroupIndex } from "./tools/registry.js";
4
+ import { ICON_PNG } from "./web-guide.js";
4
5
  /** Server version, read from package.json so it always tracks the published release. */
5
6
  export const SERVER_VERSION = (() => {
6
7
  try {
@@ -36,7 +37,14 @@ function makeResult(data) {
36
37
  /** Build a fully-wired MCP server bound to the given API client. */
37
38
  export function createServer(api, opts = {}) {
38
39
  const toolsSpec = opts.tools ?? process.env.WEBCAKE_TOOLS;
39
- const server = new McpServer({ name: "webcake-storefront", version: SERVER_VERSION }, { instructions: `${INSTRUCTIONS}\n\n${buildToolGroupIndex(toolsSpec)}` });
40
+ const server = new McpServer({
41
+ name: "webcake-storefront",
42
+ version: SERVER_VERSION,
43
+ // Shown by MCP clients (e.g. claude.ai connectors) instead of a generic globe.
44
+ title: "WebCake Storefront",
45
+ websiteUrl: "https://webcake.io",
46
+ icons: [{ src: `data:image/png;base64,${ICON_PNG.toString("base64")}`, mimeType: "image/png", sizes: ["192x192"] }],
47
+ }, { instructions: `${INSTRUCTIONS}\n\n${buildToolGroupIndex(toolsSpec)}` });
40
48
  const handle = async (fn) => {
41
49
  try {
42
50
  return makeResult(await fn());
package/dist/web-guide.js CHANGED
@@ -564,6 +564,7 @@ export function guideHtml(origin, lang = "vi") {
564
564
  <link rel="alternate" hreflang="vi" href="${origin}/">
565
565
  <link rel="alternate" hreflang="en" href="${origin}/?lang=en">
566
566
  <link rel="alternate" hreflang="x-default" href="${origin}/">
567
+ <link rel="icon" type="image/png" sizes="192x192" href="/favicon.png">
567
568
  <link rel="icon" type="image/svg+xml" href="/favicon.svg">
568
569
  <meta property="og:type" content="website">
569
570
  <meta property="og:site_name" content="WebCake Storefront MCP">
@@ -1032,6 +1033,8 @@ export function ogImageSvg() {
1032
1033
  * Favicon SVG — the branded "S" mark with yellow dot.
1033
1034
  * Served at /favicon.svg and /favicon.ico by http.ts.
1034
1035
  */
1036
+ // Raster icon (192px, generated from ICON_SVG) — shared by /favicon.ico and serverInfo.icons.
1037
+ export const ICON_PNG = readFileSync(new URL("./icon.png", import.meta.url));
1035
1038
  export function faviconSvg() {
1036
1039
  return ICON_SVG;
1037
1040
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "webcake-storefront-mcp",
3
- "version": "1.31.13",
3
+ "version": "1.32.0",
4
4
  "description": "MCP server for the WebCake/StoreCake storefront builder — page CRUD, page authoring, products, orders, and more",
5
5
  "mcpName": "io.github.vuluu2k/webcake-storefront-mcp",
6
6
  "license": "MIT",