Browser Automation MCP Server
π€ Browser Automation Agent
A powerful browser automation tool built with MCP (Model Controlled Program) that combines web scraping capabilities with LLM-powered intelligence. This agent can search Google, navigate to webpages, and intelligently scrape content from various websites including GitHub, Stack Overflow, and documentation sites.
π Features
π Google Search Integration: Finds and retrieves top search results for any query
πΈοΈ Intelligent Web Scraping: Tailored scraping strategies for different website types:
π GitHub repositories
π¬ Stack Overflow questions and answers
π Documentation pages
π Generic websites
π§ AI-Powered Processing: Uses Mistral AI for understanding and processing scraped content
π₯· Stealth Mode: Implements browser fingerprint protection to avoid detection
πΎ Content Saving: Automatically saves both screenshots and text content from scraped pages
ποΈ Architecture
This project uses a client-server architecture powered by MCP:
π₯οΈ Server: Handles browser automation and web scraping tasks
π€ Client: Provides the AI interface using Mistral AI and LangGraph
π‘ Communication: Uses stdio for client-server communication
βοΈ Requirements
π Python 3.8+
π Playwright
π§© MCP (Model Controlled Program)
π Mistral AI API key
π₯ Installation
Clone the repository:
git clone https://github.com/yourusername/browser-automation-agent.git
cd browser-automation-agentInstall dependencies:
pip install -r requirements.txtInstall Playwright browsers:
playwright installCreate a
.envfile in the project root and add your Mistral AI API key:
MISTRAL_API_KEY=your_api_key_hereπ Usage
Running the Server
python main.pyRunning the Client
python client.pySample Interaction
Once both the server and client are running:
Enter your query when prompted
The agent will:
π Search Google for relevant results
π§ Navigate to the top result
π Scrape content based on the website type
πΈ Save screenshots and content to files
π€ Return processed information
π οΈ Tool Functions
get_top_google_url
π Searches Google and returns the top result URL for a given query.
browse_and_scrape
π Navigates to a URL and scrapes content based on the website type.
scrape_github
π Specializes in extracting README content and code blocks from GitHub repositories.
scrape_stackoverflow
π¬ Extracts questions, answers, comments, and code blocks from Stack Overflow pages.
scrape_documentation
π Optimized for extracting documentation content and code examples.
scrape_generic
π Extracts paragraph text and code blocks from generic websites.
π File Structure
browser-automation-agent/
βββ main.py # MCP server implementation
βββ client.py # Mistral AI client implementation
βββ requirements.txt # Project dependencies
βββ .env # Environment variables (API keys)
βββ README.md # Project documentationπ€ Output Files
The agent generates two types of output files with timestamps:
πΈ
final_page_YYYYMMDD_HHMMSS.png: Screenshot of the final page stateπ
scraped_content_YYYYMMDD_HHMMSS.txt: Extracted text content from the page
βοΈ Customization
You can modify the following parameters in the code:
π₯οΈ Browser window size: Adjust
widthandheightinbrowse_and_scrapeπ» Headless mode: Set
headless=Truefor invisible browser operationπ’ Number of Google results: Change
num_resultsinget_top_google_url
β Troubleshooting
π Connection Issues: Ensure both server and client are running in separate terminals
π Playwright Errors: Make sure browsers are installed with
playwright installπ API Key Errors: Verify your Mistral API key is correctly set in the
.envfileπ£οΈ Path Errors: Update the path to
main.pyinclient.pyif needed
π License
π€ Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
Built with π§© MCP, π Playwright, and π§ Mistral AI
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Raghu6798/Browser_scrape_mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server