Skip to main content
Glama
web-browser-mcp-server

web-browser-mcp-server

by blazickjp

Twitter Follow Python Version License: MIT PyPI Downloads PyPI Version

โœจ Features

๐ŸŒ Enable AI assistants to browse and extract content from the web through a simple MCP interface.

The Web Browser MCP Server provides AI models with the ability to browse websites, extract content, and understand web pages through the Message Control Protocol (MCP). It enables smart content extraction with CSS selectors and robust error handling.

๐Ÿค Contribute โ€ข ๐Ÿ“ Report Bug

Related MCP server: mcp-web-tools

โœจ Core Features

  • ๐ŸŽฏ Smart Content Extraction: Target exactly what you need with CSS selectors

  • โšก Lightning Fast: Built with async processing for optimal performance

  • ๐Ÿ“Š Rich Metadata: Capture titles, links, and structured content

  • ๐Ÿ›ก๏ธ Robust & Reliable: Built-in error handling and timeout management

  • ๐ŸŒ Cross-Platform: Works everywhere Python runs

๐Ÿš€ Quick Start

Installing via Smithery

To install Web Browser Server for Claude Desktop automatically via Smithery:

npx -y @smithery/cli install web-browser-mcp-server --client claude

Installing Manually

Install using uv:

uv tool install web-browser-mcp-server

For development:

# Clone and set up development environment
git clone https://github.com/blazickjp/web-browser-mcp-server.git
cd web-browser-mcp-server

# Create and activate virtual environment
uv venv
source .venv/bin/activate

# Install with test dependencies
uv pip install -e ".[test]"

๐Ÿ”Œ MCP Integration

Add this configuration to your MCP client config file:

{
    "mcpServers": {
        "web-browser-mcp-server": {
            "command": "uv",
            "args": [
                "tool",
                "run",
                "web-browser-mcp-server"
            ],
            "env": {
                "REQUEST_TIMEOUT": "30"
            }
        }
    }
}

For Development:

{
    "mcpServers": {
        "web-browser-mcp-server": {
            "command": "uv",
            "args": [
                "--directory",
                "path/to/cloned/web-browser-mcp-server",
                "run",
                "web-browser-mcp-server"
            ],
            "env": {
                "REQUEST_TIMEOUT": "30"
            }
        }
    }
}

๐Ÿ’ก Available Tools

The server provides a powerful web browsing tool:

browse_webpage

Browse and extract content from web pages with optional CSS selectors:

# Basic webpage fetch
result = await call_tool("browse_webpage", {
    "url": "https://example.com"
})

# Target specific content with CSS selectors
result = await call_tool("browse_webpage", {
    "url": "https://example.com",
    "selectors": {
        "headlines": "h1, h2",
        "main_content": "article.content",
        "navigation": "nav a"
    }
})

โš™๏ธ Configuration

Configure through environment variables:

Variable

Purpose

Default

REQUEST_TIMEOUT

Webpage request timeout in seconds

30

๐Ÿงช Testing

Run the test suite:

python -m pytest

๐Ÿ“„ License

Released under the MIT License. See the LICENSE file for details.


Made with โค๏ธ by the Pear Labs Team

Available Tools

1 tool
browse_webpageC

Extract content from a webpage with optional CSS selectors for specific elements

Inputs: url (required), selectors.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelogโ€ฆ

    TDQS

    B3.1/5.0

    Scored across 1 tool

    Disambiguation5/5

    With only one tool, there is no possibility of ambiguity or overlap with other tools. The tool's purpose is clearly defined as extracting webpage content with optional element selection.

    Naming Consistency5/5

    The single tool name follows a clear verb_noun pattern (browse_webpage). Since there are no other tools to compare against, consistency is inherently perfect.

    Tool Count2/5

    A single tool for a web browser server is too minimal for the apparent scope. Basic web interactions like navigation, clicking, form filling, or handling multiple tabs are missing, making the server feel incomplete and limiting for agents.

    Completeness2/5

    The server is severely incomplete for a web browser domain. It only offers content extraction, lacking essential operations such as navigation, interaction with page elements, or session management, which are critical for typical web automation tasks.

    Maintenance

    ActivityInactive
    ResponsivenessLimited data

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      Not graded
      quality
      D
      maintenance
      Enables web browsing capabilities for locally served LLMs through URL text fetching, link extraction, and web search using Brave and DuckDuckGo engines. Designed to enhance LLMs with real-time web access through the MCP protocol.
      MIT
    • A
      license
      Not graded
      quality
      C
      maintenance
      Enables web search via DuckDuckGo and content extraction from URLs using Readability.js.
      54 npm
      1
      Do What The F*ck You Want To Public