pietrozullo/browser-use-mcp
Project Overview
browser-use-mcp
An MCP server that lets LLMs control a real web browser via natural language commands.
True Intent (AI Assessment)
Expose the browser-use browser-automation agent as an MCP tool so LLM clients can perform web tasks in natural language.
README Accuracy
Notes
Behavior matches the README. Minor issues: the pip install URL in the README uses a placeholder username, and LLM provider selection is implicit (first matching env var wins) rather than user-selectable.
This is a small Python package that implements a Model Context Protocol (MCP) server exposing a single tool called `run_browser_use_task`. When an MCP-compatible client (like Claude Desktop or mcp-use) sends a natural-language task, the server spins up a `browser-use` Agent backed by a LangChain chat model and drives a Playwright-controlled Chromium browser to complete it.
The problem it addresses is connecting LLM assistants to actual web browsing capability. Rather than each chat client re-implementing browser automation, this package packages the `browser-use` library behind the standardized MCP interface so any MCP-aware client can use it as a plug-in tool for tasks like navigating pages, clicking, filling forms, and summarizing content.
The intended users are developers building LLM agents or power-users of Claude Desktop / other MCP clients who want their assistant to browse the web. Installation is via pip from the git repo with an optional-dependency group per LLM provider, plus `playwright install chromium`. Once configured in the client's `mcpServers` block with an appropriate API key, the assistant can call the browser tool automatically.
Internally the code is tiny (~13KB). `main.py` sets up a `FastMCP` server, registers one async tool, parses a `--model` CLI arg, and runs over stdio. `models.py` picks a LangChain chat model based on which provider API key is present in the environment (OpenAI, Anthropic, Google, Cohere, Mistral, Groq, Together, AWS Bedrock, Fireworks, and more), with a hard-coded priority order. The heavy lifting (agent loop, DOM handling, planning) is delegated to the external `browser-use` library.
No red flags in the code. It is a thin, honest wrapper. Note the README's install snippet points to a placeholder `yourusername` GitHub path, and provider selection is priority-based on env vars rather than explicit, which could confuse users who have multiple keys set.
| Languages | Python |
| Runtime | Python 3.11+ |
| Framework | FastMCP (Model Context Protocol server) |
| Database | None detected |
| Package Manager | pip (hatchling build backend) |
| Key Dependencies | mcp[cli], browser-use, playwright, python-dotenv, langchain-openai, langchain-anthropic, langchain-google-genai, langchain-groq |
| Build Tool | Hatchling |
| Test Framework | pytest (declared in dev extras, no tests present) |