[Refactor]: Stagehand MCP becoming the Browserbase MCP#89
Conversation
…and init issues fixed
…tom models in config, session manager migrated to only use stagehand, rm browserbase SDK, remove unnecessary functions
…ics + multi-sessions update in readme
… uses datenow for extra uniqueness
* fix session url bugs * readme small updates + add github workflows to publish + ci
There was a problem hiding this comment.
Pull Request Overview
This PR refactors the MCP server by removing the old Stagehand-only implementation and introducing a unified Browserbase MCP powered by Stagehand.
- Fully deletes the
stagehanddirectory (old MCP implementation). - Adds a new TypeScript-based
src/directory with updated tool definitions, server setup, and CLI. - Updates branding to “Browserbase MCP” across resources, prompts, and documentation.
Reviewed Changes
Copilot reviewed 66 out of 77 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| stagehand/src/tools.ts | Removed old Stagehand tool definitions. |
| stagehand/src/server.ts | Removed legacy Stagehand MCP server logic. |
| src/utils.ts | Updated sanitizeMessage signature and added sanitizeForFilePath. |
| src/tools/index.ts | Newly exports Browserbase Stagehand tools and multi-session tools. |
| src/index.ts | Main MCP server entrypoint using Browserbase and Stagehand. |
| src/program.ts | CLI program to start the new MCP server via Stdio or HTTP transports. |
Files not reviewed (2)
- browserbase/package-lock.json: Language not supported
- stagehand/package-lock.json: Language not supported
| browserHeight: 768, | ||
| }, | ||
| cookies: undefined, | ||
| modelName: "gemini-2.0-flash", // Default Model |
There was a problem hiding this comment.
change to google/gemini-2.0-flash
| projectId, | ||
| modelName: (params.modelName || | ||
| config.modelName || | ||
| "gemini-2.0-flash") as AvailableModel, |
There was a problem hiding this comment.
google/gemini-2.0-flash
There was a problem hiding this comment.
i had to change it for it to deploy properly since i'm using the AvailableModel enum from the stagehand package.
should i just make a new type file in here for this?
| 'key in the action template. For example: {"action": "Fill in the password", "variables": {"password": "123456"}}', | ||
| ), | ||
| }); | ||
|
|
There was a problem hiding this comment.
yeah we don't call act explicitly because it calls observe under the hood for inference, let me revisit
| "author, and publication date from this blog post'. The more specific your instruction, " + | ||
| "the better the extraction results will be. Avoid vague instructions like 'get everything' " + | ||
| "or 'extract the data'. Instead, be explicit about the exact elements, text, or information you need.", | ||
| ), |
There was a problem hiding this comment.
note: should we add custom schemas as another parameter eventually?
What
Switching the Browserbase MCP to be purely stagehand based.
To be hosted by smithery.
Stagehand Primitives as tool calls + new tools to run stagehand sessions in parallel.