From e101b1fa6ad851761186dff986ec3e6e9341d238 Mon Sep 17 00:00:00 2001 From: yummybomb <19238148+yummybomb@users.noreply.github.com> Date: Fri, 9 Oct 2026 21:24:29 +0000 Subject: [PATCH] Add video_memory to manage_browsers create --- bun.lock | 4 ++-- package.json | 2 +- src/lib/mcp/tools/browsers.test.ts | 31 ++++++++++++++++++++++++++++++ src/lib/mcp/tools/browsers.ts | 8 ++++++++ 4 files changed, 42 insertions(+), 3 deletions(-) diff --git a/bun.lock b/bun.lock index 1a335b8..18068ff 100644 --- a/bun.lock +++ b/bun.lock @@ -11,7 +11,7 @@ "@modelcontextprotocol/core": "2.0.0", "@modelcontextprotocol/server": "2.0.0", "@onkernel/managed-auth-react": "0.5.5", - "@onkernel/sdk": "0.121.0", + "@onkernel/sdk": "0.123.0", "@posthog/mcp": "0.17.0", "@types/jsonwebtoken": "^9.0.10", "@types/redis": "^4.0.11", @@ -160,7 +160,7 @@ "@onkernel/managed-auth-react": ["@onkernel/managed-auth-react@0.5.5", "", { "dependencies": { "clsx": "^2.1.1", "tldts": "7.4.15" }, "peerDependencies": { "react": ">=18", "react-dom": ">=18" } }, "sha512-uoeHAJ0RnLoEJe7TdpT0pA3RgPWEpJLf9F532aLEcahFNrMIqyAdMp94LNIwVuMlxkkfx4+3S/fqzHubbnzjJg=="], - "@onkernel/sdk": ["@onkernel/sdk@0.121.0", "", {}, "sha512-pXcM2S5S6d68awKI8FCUUjeI5jPm7CTAnCd7p2cmn/5bnK+XDaNFEZc4oqyBTXyaRXkh8R3cPVgLflCstGp2fA=="], + "@onkernel/sdk": ["@onkernel/sdk@0.123.0", "", {}, "sha512-E2KCAgnw+H/0zwyPFLCoCTh3dJ3VH63iFnMjX9/jYZkGIGCX1UbxyXKRr30mcMVke6vjKTLmDzT7jwq/h7v9/g=="], "@oven/bun-darwin-aarch64": ["@oven/bun-darwin-aarch64@1.3.3", "", { "os": "darwin", "cpu": "arm64" }, "sha512-eJopQrUk0WR7jViYDC29+Rp50xGvs4GtWOXBeqCoFMzutkkO3CZvHehA4JqnjfWMTSS8toqvRhCSOpOz62Wf9w=="], diff --git a/package.json b/package.json index 429b50b..49adb43 100644 --- a/package.json +++ b/package.json @@ -41,7 +41,7 @@ "@modelcontextprotocol/core": "2.0.0", "@modelcontextprotocol/server": "2.0.0", "@onkernel/managed-auth-react": "0.5.5", - "@onkernel/sdk": "0.121.0", + "@onkernel/sdk": "0.123.0", "@posthog/mcp": "0.17.0", "@types/jsonwebtoken": "^9.0.10", "@types/redis": "^4.0.11", diff --git a/src/lib/mcp/tools/browsers.test.ts b/src/lib/mcp/tools/browsers.test.ts index eadf2b9..d353bce 100644 --- a/src/lib/mcp/tools/browsers.test.ts +++ b/src/lib/mcp/tools/browsers.test.ts @@ -748,6 +748,37 @@ describe("manage_browsers region", () => { }); }); +describe("manage_browsers video memory", () => { + test("passes video_memory to create", async () => { + const createCalls: unknown[] = []; + const kernelClient = { + browsers: { + create: async (params: unknown) => { + createCalls.push(params); + return { session_id: "brr_123", video_memory: "4GiB" }; + }, + }, + }; + const { client, close } = await connectTestMcp( + registerBrowserCapabilities, + kernelClient, + ); + + try { + const created = toolResultJSON( + await client.callTool({ + name: "manage_browsers", + arguments: { action: "create", gpu: true, video_memory: "4GiB" }, + }), + ); + expect(createCalls).toEqual([{ gpu: true, video_memory: "4GiB" }]); + expect(created.browser.video_memory).toBe("4GiB"); + } finally { + await close(); + } + }); +}); + describe("manage_browsers id or name", () => { test("passes name and tags through create and update", async () => { const createCalls: unknown[] = []; diff --git a/src/lib/mcp/tools/browsers.ts b/src/lib/mcp/tools/browsers.ts index ee68879..a9efe1f 100644 --- a/src/lib/mcp/tools/browsers.ts +++ b/src/lib/mcp/tools/browsers.ts @@ -498,6 +498,12 @@ export function registerBrowserCapabilities( "(create) enable gpu acceleration. requires start-up or enterprise plan and headless=false.", ) .optional(), + video_memory: z + .enum(["2GiB", "4GiB"]) + .describe( + "(create) gpu video memory. requires gpu=true. `2GiB` (default) comes with 4 vcpus and 6 gb of memory; `4GiB` comes with 8 vcpus and 12 gb of memory and bills at twice the gpu rate. `4GiB` returns 529 when at capacity; retry later or omit it for `2GiB`.", + ) + .optional(), stealth: z .boolean() .describe( @@ -782,6 +788,8 @@ export function registerBrowserCapabilities( if (params.headless !== undefined) createParams.headless = params.headless; if (params.gpu !== undefined) createParams.gpu = params.gpu; + if (params.video_memory !== undefined) + createParams.video_memory = params.video_memory; if (params.stealth !== undefined) createParams.stealth = params.stealth; if (params.region !== undefined)