From 40831231cf50f161ae5d9e9c7180a4c386809ca1 Mon Sep 17 00:00:00 2001 From: Kylejeong2 Date: Tue, 18 Nov 2025 08:53:15 -0800 Subject: [PATCH 1/5] fix: switch node build to slim for sharp dep --- Dockerfile | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Dockerfile b/Dockerfile index 68c937f..3c16ddd 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM node:22-alpine AS builder +FROM node:22-slim AS builder RUN corepack enable @@ -6,11 +6,11 @@ WORKDIR /app COPY package.json pnpm-lock.yaml ./ RUN --mount=type=cache,id=pnpm,target=/pnpm/store \ - pnpm install --frozen-lockfile --ignore-scripts + pnpm install --frozen-lockfile COPY . . RUN pnpm run build && \ - pnpm prune --prod --ignore-scripts + pnpm prune --prod FROM gcr.io/distroless/nodejs22-debian12 From f2197c40d96f470c5c22b1c3ffad941036c330c3 Mon Sep 17 00:00:00 2001 From: Kylejeong2 Date: Tue, 18 Nov 2025 08:56:13 -0800 Subject: [PATCH 2/5] smithery yaml --- smithery.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/smithery.yaml b/smithery.yaml index 322550e..c1d70d3 100644 --- a/smithery.yaml +++ b/smithery.yaml @@ -1 +1 @@ -runtime: "typescript" +runtime: "container" From 30904116f9d39c1f87f1c129d111bf15af163d50 Mon Sep 17 00:00:00 2001 From: Kylejeong2 Date: Tue, 18 Nov 2025 09:13:59 -0800 Subject: [PATCH 3/5] smithery --- smithery.yaml | 87 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 87 insertions(+) diff --git a/smithery.yaml b/smithery.yaml index c1d70d3..bb311da 100644 --- a/smithery.yaml +++ b/smithery.yaml @@ -1 +1,88 @@ runtime: "container" + +startCommand: + type: "http" + configSchema: + type: "object" + required: ["browserbaseApiKey", "browserbaseProjectId"] + properties: + browserbaseApiKey: + type: "string" + title: "Browserbase API Key" + description: "Browserbase API Key to authenticate requests" + browserbaseProjectId: + type: "string" + title: "Browserbase Project ID" + description: "Browserbase Project ID associated with the API key" + proxies: + type: "boolean" + title: "Use Proxies" + description: "Whether or not to use Browserbase proxies" + default: false + advancedStealth: + type: "boolean" + title: "Advanced Stealth Mode" + description: "Use advanced stealth mode. Only available to Browserbase Scale Plan users." + default: false + keepAlive: + type: "boolean" + title: "Keep Alive" + description: "Whether or not to keep the Browserbase session alive" + default: false + context: + type: "object" + title: "Browserbase Context" + description: "Potential Browserbase Context to use" + properties: + contextId: + type: "string" + title: "Context ID" + description: "The ID of the context to use" + persist: + type: "boolean" + title: "Persist Context" + description: "Whether or not to persist the context" + default: true + viewPort: + type: "object" + title: "Viewport" + description: "The viewport of the browser" + properties: + browserWidth: + type: "integer" + title: "Browser Width" + description: "The width of the browser" + default: 1024 + browserHeight: + type: "integer" + title: "Browser Height" + description: "The height of the browser" + default: 768 + modelName: + type: "string" + title: "Model Name" + description: "The Model that Stagehand uses. Available models: OpenAI, Claude, Gemini, Cerebras, Groq, and other providers" + default: "gemini-2.0-flash" + modelApiKey: + type: "string" + title: "Model API Key" + description: "API key for the custom model provider. Required when using a model other than the default gemini-2.0-flash" + experimental: + type: "boolean" + title: "Experimental Features" + description: "Enable experimental features" + default: false + exampleConfig: + browserbaseApiKey: "bb_xxxxxxxxxxxxx" + browserbaseProjectId: "prj_xxxxxxxxxxxxx" + proxies: false + advancedStealth: false + keepAlive: false + viewPort: + browserWidth: 1024 + browserHeight: 768 + modelName: "gemini-2.0-flash" + +build: + dockerfile: "Dockerfile" + dockerBuildPath: "." From f64e0dac8fa4f3b9597036da5f5cddbfe27fc404 Mon Sep 17 00:00:00 2001 From: Kylejeong2 Date: Wed, 19 Nov 2025 13:51:02 -0800 Subject: [PATCH 4/5] fix: change types on browser pixel size --- smithery.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/smithery.yaml b/smithery.yaml index bb311da..6a94d8e 100644 --- a/smithery.yaml +++ b/smithery.yaml @@ -49,12 +49,12 @@ startCommand: description: "The viewport of the browser" properties: browserWidth: - type: "integer" + type: "number" title: "Browser Width" description: "The width of the browser" default: 1024 browserHeight: - type: "integer" + type: "number" title: "Browser Height" description: "The height of the browser" default: 768 From 9bc0c9e5f9a47284c80865735900e717949c6224 Mon Sep 17 00:00:00 2001 From: Kylejeong2 Date: Wed, 19 Nov 2025 15:19:12 -0800 Subject: [PATCH 5/5] specify architecture in npmrc --- .npmrc | 5 +++ Dockerfile | 8 ++--- server.json | 2 +- smithery.yaml | 89 +-------------------------------------------------- 4 files changed, 11 insertions(+), 93 deletions(-) diff --git a/.npmrc b/.npmrc index 894b521..f13d23d 100644 --- a/.npmrc +++ b/.npmrc @@ -1,2 +1,7 @@ # Use npm for package management engine-strict=true + +# Platform-specific settings to prevent sharp from installing binaries for all architectures +target_platform=linux +target_arch=x64 +target_libc=glibc diff --git a/Dockerfile b/Dockerfile index 3c16ddd..171e52d 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,16 +1,16 @@ -FROM node:22-slim AS builder +FROM node:22-alpine AS builder RUN corepack enable WORKDIR /app -COPY package.json pnpm-lock.yaml ./ +COPY package.json pnpm-lock.yaml .npmrc ./ RUN --mount=type=cache,id=pnpm,target=/pnpm/store \ - pnpm install --frozen-lockfile + pnpm install --frozen-lockfile --ignore-scripts COPY . . RUN pnpm run build && \ - pnpm prune --prod + pnpm prune --prod --ignore-scripts FROM gcr.io/distroless/nodejs22-debian12 diff --git a/server.json b/server.json index 3d50a85..23dbec3 100644 --- a/server.json +++ b/server.json @@ -7,7 +7,7 @@ "url": "https://github.com/browserbase/mcp-server-browserbase", "source": "github" }, - "version": "2.2.0", + "version": "2.4.2", "packages": [ { "registry_type": "npm", diff --git a/smithery.yaml b/smithery.yaml index 6a94d8e..322550e 100644 --- a/smithery.yaml +++ b/smithery.yaml @@ -1,88 +1 @@ -runtime: "container" - -startCommand: - type: "http" - configSchema: - type: "object" - required: ["browserbaseApiKey", "browserbaseProjectId"] - properties: - browserbaseApiKey: - type: "string" - title: "Browserbase API Key" - description: "Browserbase API Key to authenticate requests" - browserbaseProjectId: - type: "string" - title: "Browserbase Project ID" - description: "Browserbase Project ID associated with the API key" - proxies: - type: "boolean" - title: "Use Proxies" - description: "Whether or not to use Browserbase proxies" - default: false - advancedStealth: - type: "boolean" - title: "Advanced Stealth Mode" - description: "Use advanced stealth mode. Only available to Browserbase Scale Plan users." - default: false - keepAlive: - type: "boolean" - title: "Keep Alive" - description: "Whether or not to keep the Browserbase session alive" - default: false - context: - type: "object" - title: "Browserbase Context" - description: "Potential Browserbase Context to use" - properties: - contextId: - type: "string" - title: "Context ID" - description: "The ID of the context to use" - persist: - type: "boolean" - title: "Persist Context" - description: "Whether or not to persist the context" - default: true - viewPort: - type: "object" - title: "Viewport" - description: "The viewport of the browser" - properties: - browserWidth: - type: "number" - title: "Browser Width" - description: "The width of the browser" - default: 1024 - browserHeight: - type: "number" - title: "Browser Height" - description: "The height of the browser" - default: 768 - modelName: - type: "string" - title: "Model Name" - description: "The Model that Stagehand uses. Available models: OpenAI, Claude, Gemini, Cerebras, Groq, and other providers" - default: "gemini-2.0-flash" - modelApiKey: - type: "string" - title: "Model API Key" - description: "API key for the custom model provider. Required when using a model other than the default gemini-2.0-flash" - experimental: - type: "boolean" - title: "Experimental Features" - description: "Enable experimental features" - default: false - exampleConfig: - browserbaseApiKey: "bb_xxxxxxxxxxxxx" - browserbaseProjectId: "prj_xxxxxxxxxxxxx" - proxies: false - advancedStealth: false - keepAlive: false - viewPort: - browserWidth: 1024 - browserHeight: 768 - modelName: "gemini-2.0-flash" - -build: - dockerfile: "Dockerfile" - dockerBuildPath: "." +runtime: "typescript"