MCP server for browser-use
Project description
browser-mcp
A MCP (Model Control Protocol) server for browser-use library. This package allows AI agents to perform web browsing tasks through a standardized interface.
Installation
You can install the package using pip:
pip install browser-mcp
Or with uv (recommended):
uv pip install browser-mcp
After installation, you'll need to install Playwright's browser dependencies:
playwright install
Alternatively, you can use the browser-mcp-run command which will automatically install these dependencies if they're missing.
Setup
For development, clone the repository and install in development mode:
# Clone the repository
git clone https://github.com/pranav7/browser-mcp.git
cd browser-mcp
# Install dependencies with uv
uv pip install -e .
# Or with pip
pip install -e .
Environment Variables
Create a .env file with your OpenAI API key:
OPENAI_API_KEY=your_api_key_here
Usage
Running the MCP Server
In Development Mode
When working with the package in development mode, you can run it directly with Python:
mcp dev browser_mcp/server.py
In Production
After installing the package from PyPI, you can run it with uvx:
uvx browser-mcp
The package is specifically designed to work with uvx, which allows for more efficient package loading and execution.
With Automatic Dependency Check
You can also use the browser-mcp-run command, which checks for and installs Playwright dependencies automatically before starting the server:
browser-mcp-run
This ensures that all required Playwright browsers are installed on your system.
Using as a Client
from mcp.client import Client
async def main():
client = await Client.connect()
# Perform a task with the browser
result = await client.rpc("perform_task_with_browser",
task="Search for the latest news about AI and summarize the top 3 results")
print(result)
await client.close()
Programmatic Usage
You can also use the package programmatically:
# In development mode
from src import run
# In production (after installing the package)
# from browser_mcp import run
# Run the MCP server with stdio transport
run(transport="stdio")
# Or with SSE transport
# run(transport="sse")
Available RPC Methods
search_web(task: str, model: str = "gpt-4o-mini")- Performs basic web searches using browser-use Agent. Themodelparameter is optional and defaults to "gpt-4o-mini".search_web_with_planning(task: str, base_model: str = "gpt-4o-mini", planning_model: str = "o3-mini")- Performs complex web searches that require planning. Uses a planner LLM for better task decomposition. Bothbase_modelandplanning_modelparameters are optional with their respective defaults.
Development
Testing
Tests can be run with:
python -m unittest discover
You can also test the package functionality with:
python test_uvx.py
This script will:
- Test importing the package directly (development mode)
- Attempt to run it with uvx (production mode)
Note: The uvx test may fail in development mode unless the package is published to PyPI. This is expected behavior.
Publishing to PyPI
This project uses GitHub Actions to automatically publish to PyPI when a new release is created. The workflow:
- Builds the package using uv
- Publishes it to PyPI using trusted publishing
To create a new release:
- Update the version in
pyproject.toml - Create a new release on GitHub
- The GitHub Action will automatically build and publish the package
License
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file browser_mcp-0.1.3.tar.gz.
File metadata
- Download URL: browser_mcp-0.1.3.tar.gz
- Upload date:
- Size: 8.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8d6c17351c72cfdd9caf80ca580131d743627c8ea683b0969b11cc754d02b7fc
|
|
| MD5 |
5190e5322fb856a2d1bff59ce42eca1e
|
|
| BLAKE2b-256 |
50a86eef54fd5b96d88de0c08a1fcbc835b8cc5160e7565cf9b3443e07efe245
|
Provenance
The following attestation bundles were made for browser_mcp-0.1.3.tar.gz:
Publisher:
python-publish.yml on pranav7/browser-mcp
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
browser_mcp-0.1.3.tar.gz -
Subject digest:
8d6c17351c72cfdd9caf80ca580131d743627c8ea683b0969b11cc754d02b7fc - Sigstore transparency entry: 181166032
- Sigstore integration time:
-
Permalink:
pranav7/browser-mcp@e6551361cc4943b6b0afd311e30d21f957d4a9a3 -
Branch / Tag:
refs/tags/v0.1.3 - Owner: https://github.com/pranav7
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
python-publish.yml@e6551361cc4943b6b0afd311e30d21f957d4a9a3 -
Trigger Event:
release
-
Statement type:
File details
Details for the file browser_mcp-0.1.3-py3-none-any.whl.
File metadata
- Download URL: browser_mcp-0.1.3-py3-none-any.whl
- Upload date:
- Size: 9.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b1fbe67f0059a82db2885f8e645a3b9f2a44ba75b5158c78e5fa4bcfd7892adf
|
|
| MD5 |
b1c499b68e0978f14476f2b26e6fcdc7
|
|
| BLAKE2b-256 |
e56905cbf785367a7439179089156c52d16ce2651df4daa16dd614f6fa1a0fac
|
Provenance
The following attestation bundles were made for browser_mcp-0.1.3-py3-none-any.whl:
Publisher:
python-publish.yml on pranav7/browser-mcp
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
browser_mcp-0.1.3-py3-none-any.whl -
Subject digest:
b1fbe67f0059a82db2885f8e645a3b9f2a44ba75b5158c78e5fa4bcfd7892adf - Sigstore transparency entry: 181166033
- Sigstore integration time:
-
Permalink:
pranav7/browser-mcp@e6551361cc4943b6b0afd311e30d21f957d4a9a3 -
Branch / Tag:
refs/tags/v0.1.3 - Owner: https://github.com/pranav7
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
python-publish.yml@e6551361cc4943b6b0afd311e30d21f957d4a9a3 -
Trigger Event:
release
-
Statement type: