MCP-Browse
About
An MCP Server that gives the LLM some basic browsing capabilities
Details
- Author
- tylergannon
- Downloads
- 368
- Categories
- Other, Automation
Jump to
- Gesture-based protocol for browser interactions
- Supports Navigation, Click, Input, Download, ExecuteScript
- Streamed responses for navigation and input gestures
- Uses Protocol Buffers for efficient typed communication
- Focused on automating e-commerce site workflows
Install Go 1.18+ and Protocol Buffers compiler, clone the repository, run go mod download, generate Protocol Buffer code with buf generate, then create a client using NewMCPBrowserServiceClient and invoke gesture operations like Navigate, Click, and Input which return streamed responses.
MCP-Browse
A browser control protocol for automation and e-commerce site interaction.
Overview
MCP-Browse provides a clean, streamlined interface for controlling browser interactions through a remote protocol. It's particularly focused on common e-commerce site interactions like:
- Navigation to pages
- Clicking on elements
- Entering form data
- Downloading images and files
- Executing JavaScript
All operations use protocol buffers for efficient, typed communication.
Protocol Design
The protocol is designed around "gestures" that represent user interactions with a browser:
1. Navigate - Visit a URL with optional redirect handling
2. Click - Click on elements using ID or CSS selectors
3. Input - Enter values in form fields (text, checkboxes, select dropdowns)
4. Download - Retrieve images or files
5. ExecuteScript - Run JavaScript on the page and get results
Browser gesture operations (Navigate, Click, Input) return streamed responses that include:
- Zero or more redirect events
- Page content or error information
- A completion event
Utility operations (Download, ExecuteScript) return a single response with the requested data.
Example Usage
// Create a client
// client := NewMCPBrowserServiceClient(...)
// Navigate to a product page
navigateReq := apiv1.NavigateRequest_builder{
Url: stringPtr("https://example-shop.com/products"),
AllowRedirects: boolPtr(true),
}.Build()
// Process the response stream
// stream, err := client.Navigate(context.Background(), navigateReq)
// handleResponseStream(stream)
// Click on a product
clickReq := apiv1.ClickRequest_builder{
CssSelector: stringPtr(".product-item"),
}.Build()
// Process the response stream
// stream, err = client.Click(context.Background(), clickReq)
// handleResponseStream(stream)
// Add to cart
clickReq = apiv1.ClickRequest_builder{
CssSelector: stringPtr(".add-to-cart-button"),
}.Build()
// Process the response stream
// stream, err = client.Click(context.Background(), clickReq)
// handleResponseStream(stream)
Building and Running
Prerequisites
- Go 1.18+
- Protocol Buffers compiler
Setup
1. Clone the repository
2. Install dependencies:
go mod download
3. Generate Protocol Buffer code:
buf generate
Run Tests
go test ./...
License
MIT License
Sign in to leave a review
Use Google, GitHub, or an email account so ratings stay tied to real people.
No reviews posted yet.


