web-browser-mcp-server
The web-browser-mcp-server enables AI assistants to browse and extract content from web pages through the Message Control Protocol (MCP) interface.
Capabilities:
Browse websites: Access and retrieve content from any webpage by providing its URL
Extract content: Capture full webpage content or target specific elements using CSS selectors
Handle complex pages: Process and analyze content from modern, dynamic websites
Structured data extraction: Capture specific data points, metadata, titles, links and sections
Flexible integration: Easily integrate with MCP-enabled systems and workflows
Error handling: Manage request timeouts and handle errors
The server leverages CSS selectors for smart content extraction from web pages, allowing targeted retrieval of specific elements from websites.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@web-browser-mcp-serverget the latest headlines from the BBC homepage"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
โจ 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 claudeInstalling Manually
Install using uv:
uv tool install web-browser-mcp-serverFor 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 |
| 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 toolbrowse_webpageC
Extract content from a webpage with optional CSS selectors for specific elements
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | The URL of the webpage to browse | |
| selectors | No | Optional CSS selectors to extract specific content |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool extracts content but fails to describe critical behaviors such as error handling (e.g., invalid URLs, network issues), performance traits (e.g., timeouts, rate limits), or output format. This leaves significant gaps in understanding how the tool operates beyond its basic function.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core purpose. It avoids redundancy and wastes no words, though it could be slightly more informative without sacrificing brevity. The structure is clear and direct, earning a high score for conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (web scraping with optional selectors), lack of annotations, and no output schema, the description is incomplete. It doesn't explain what 'content' includes (e.g., text, links, structure), how selectors are applied, or potential limitations (e.g., JavaScript-rendered content). This leaves the agent with insufficient context for reliable use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents both parameters ('url' and 'selectors') adequately. The description adds minimal value by mentioning 'optional CSS selectors for specific elements,' which aligns with the schema but doesn't provide additional syntax, examples, or constraints. This meets the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with a specific verb ('Extract') and resource ('content from a webpage'), and mentions optional CSS selectors for refinement. It distinguishes the tool's core function effectively, though without sibling tools, differentiation isn't applicable. However, it lacks specificity about what 'content' entails (e.g., text, HTML, metadata), which prevents a perfect score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives, prerequisites, or limitations. It mentions optional CSS selectors but doesn't explain when they are beneficial or necessary. With no sibling tools, context for usage is minimal, but the absence of any usage context results in a low score.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
1 tool update
- First observed
browse_webpage
TDQS
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.
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.
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.
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
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Stealth web browser for agents: search, fetch, click, download and type in persistent MCP sessions.
Web search, URL content extraction to Markdown, site mapping, and recursive web crawler.
Scrape, crawl and search the web for AI agents via MCP.
Web search and page-reading for AI agents. One-click OAuth connect, or a Caesar API key.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceEnables 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
- AlicenseAqualityDmaintenanceProvides web access capabilities for LLMs including search, fetching, content extraction, PDF reading, image viewing, and screenshots.346MIT
- AlicenseAqualityBmaintenanceEnables web scraping of URLs, including extracting text, links, images, metadata, taking screenshots, and using CSS selectors for structured data extraction.615MIT
- AlicenseNot gradedqualityDmaintenanceEnables web searching using Google search results with no API keys required.431MIT
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/blazickjp/web-browser-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server