Skip to main content
Glama

MCP Web Browser Server

MCP Web 浏览器服务器

由 Playwright 提供支持的模型上下文协议 (MCP) 的高级 Web 浏览服务器,通过灵活、安全的 API 实现无头浏览器交互。

🌐 功能

  • 无头 Web 浏览:通过 SSL 证书验证绕过导航到任何网站
  • 整页内容提取:检索完整的 HTML 内容,包括动态加载的 JavaScript
  • 多标签支持:创建、管理和在多个浏览器标签之间切换
  • 高级Web交互工具
    • 提取文本内容
    • 点击页面元素
    • 在表单字段中输入文本
    • 截取屏幕截图
    • 使用过滤功能提取页面链接
    • 向任意方向滚动页面
    • 在页面上执行 JavaScript
    • 刷新页面
    • 等待导航完成
  • 资源管理:闲置后自动清理未使用的资源
  • 增强页面信息:获取有关当前页面的详细元数据

🚀 快速入门

先决条件

  • Python 3.10+
  • MCP SDK
  • 剧作家

安装

# Install MCP and Playwright pip install mcp playwright # Install browser dependencies playwright install

Claude Desktop 的配置

添加到您的claude_desktop_config.json

{ "mcpServers": { "web-browser": { "command": "python", "args": [ "/path/to/your/server.py" ] } } }

💡 使用示例

基本网页导航

# Browse to a website page_content = browse_to("https://example.com") # Extract page text text_content = extract_text_content() # Extract text from a specific element title_text = extract_text_content("h1.title")

网络互动

# Navigate to a page browse_to("https://example.com/login") # Input text into a form input_text("#username", "your_username") input_text("#password", "your_password") # Click a login button click_element("#login-button")

屏幕截图

# Capture full page screenshot full_page_screenshot = get_page_screenshots(full_page=True) # Capture specific element screenshot element_screenshot = get_page_screenshots(selector="#main-content")

链接提取

# Get all links on the page page_links = get_page_links() # Get links matching a pattern filtered_links = get_page_links(filter_pattern="contact")

多标签浏览

# Create a new tab tab_id = create_new_tab("https://example.com") # Create another tab another_tab_id = create_new_tab("https://example.org") # List all open tabs tabs = list_tabs() # Switch between tabs switch_tab(tab_id) # Close a tab close_tab(another_tab_id)

高级交互

# Scroll the page scroll_page(direction="down", amount="page") # Execute JavaScript on the page result = execute_javascript("return document.title") # Get detailed page information page_info = get_page_info() # Refresh the current page refresh_page() # Wait for navigation to complete wait_for_navigation(timeout_ms=5000)

🛡️ 安全功能

  • SSL 证书验证绕过
  • 安全浏览器上下文管理
  • 自定义用户代理配置
  • 错误处理和全面日志记录
  • 可配置超时设置
  • CSP旁路控制
  • 防止 cookie 被窃取

🔧 故障排除

常见问题

  • SSL 证书错误:自动绕过
  • 页面加载缓慢:调整browse_to()方法中的超时时间
  • 未找到元素:仔细验证选择器
  • 浏览器资源使用情况:闲置一段时间后自动清理

日志记录

所有重要事件均记录详细信息,以便于调试。

📋 工具参数

browse_to(url: str, context: Optional[Any] = None)

  • url :要导航到的网站
  • context :可选上下文对象(当前未使用)

extract_text_content(selector: Optional[str] = None, context: Optional[Any] = None)

  • selector :可选的 CSS 选择器,用于提取特定内容
  • context :可选上下文对象(当前未使用)

click_element(selector: str, context: Optional[Any] = None)

  • selector :要点击的元素的 CSS 选择器
  • context :可选上下文对象(当前未使用)

get_page_screenshots(full_page: bool = False, selector: Optional[str] = None, context: Optional[Any] = None)

  • full_page :捕获整个页面截图
  • selector :屏幕截图的可选元素
  • context :可选上下文对象(当前未使用)
  • filter_pattern :用于过滤链接的可选文本模式
  • context :可选上下文对象(当前未使用)

input_text(selector: str, text: str, context: Optional[Any] = None)

  • selector :输入元素的 CSS 选择器
  • text :要输入的文本
  • context :可选上下文对象(当前未使用)

create_new_tab(url: Optional[str] = None, context: Optional[Any] = None)

  • url :在新标签页中导航到的可选 URL
  • context :可选上下文对象(当前未使用)

switch_tab(tab_id: str, context: Optional[Any] = None)

  • tab_id :要切换到的选项卡的 ID
  • context :可选上下文对象(当前未使用)

list_tabs(context: Optional[Any] = None)

  • context :可选上下文对象(当前未使用)

close_tab(tab_id: Optional[str] = None, context: Optional[Any] = None)

  • tab_id :要关闭的选项卡的可选 ID(默认为当前选项卡)
  • context :可选上下文对象(当前未使用)

refresh_page(context: Optional[Any] = None)

  • context :可选上下文对象(当前未使用)

get_page_info(context: Optional[Any] = None)

  • context :可选上下文对象(当前未使用)

scroll_page(direction: str = "down", amount: str = "page", context: Optional[Any] = None)

  • direction :滚动方向(‘向上’,‘向下’,‘向左’,‘向右’)
  • amount :滚动量(‘页’、‘一半’或数字)
  • context :可选上下文对象(当前未使用)

wait_for_navigation(timeout_ms: int = 10000, context: Optional[Any] = None)

  • timeout_ms :等待的最长时间(以毫秒为单位)
  • context :可选上下文对象(当前未使用)

execute_javascript(script: str, context: Optional[Any] = None)

  • script :要执行的 JavaScript 代码
  • context :可选上下文对象(当前未使用)

🤝 贡献

欢迎贡献代码!欢迎提交 Pull 请求。

开发设置

# Clone the repository git clone https://github.com/random-robbie/mcp-web-browser.git # Create virtual environment python -m venv venv source venv/bin/activate # On Windows use `venv\Scripts\activate` # Install dependencies pip install -e .[dev]

📄 许可证

MIT 许可证

🔗 相关项目

💬 支持

如有问题或疑问,请在 GitHub 上打开问题

Deploy Server
A
security – no known vulnerabilities
A
license - permissive license
A
quality - confirmed to work

local-only server

The server can only run on the client's local machine because it depends on local resources.

先进的网络浏览服务器通过安全的 API 实现无头浏览器交互,提供导航、内容提取、元素交互和屏幕截图等功能。

  1. 🌐 功能
    1. 🚀 快速入门
      1. 先决条件
      2. 安装
      3. Claude Desktop 的配置
    2. 💡 使用示例
      1. 基本网页导航
      2. 网络互动
      3. 屏幕截图
      4. 链接提取
      5. 多标签浏览
      6. 高级交互
    3. 🛡️ 安全功能
      1. 🔧 故障排除
        1. 常见问题
        2. 日志记录
      2. 📋 工具参数
        1. browse_to(url: str, context: Optional[Any] = None)
        2. extract_text_content(selector: Optional[str] = None, context: Optional[Any] = None)
        3. click_element(selector: str, context: Optional[Any] = None)
        4. get_page_screenshots(full_page: bool = False, selector: Optional[str] = None, context: Optional[Any] = None)
        5. get_page_links(filter_pattern: Optional[str] = None, context: Optional[Any] = None)
        6. input_text(selector: str, text: str, context: Optional[Any] = None)
        7. create_new_tab(url: Optional[str] = None, context: Optional[Any] = None)
        8. switch_tab(tab_id: str, context: Optional[Any] = None)
        9. list_tabs(context: Optional[Any] = None)
        10. close_tab(tab_id: Optional[str] = None, context: Optional[Any] = None)
        11. refresh_page(context: Optional[Any] = None)
        12. get_page_info(context: Optional[Any] = None)
        13. scroll_page(direction: str = "down", amount: str = "page", context: Optional[Any] = None)
        14. wait_for_navigation(timeout_ms: int = 10000, context: Optional[Any] = None)
        15. execute_javascript(script: str, context: Optional[Any] = None)
      3. 🤝 贡献
        1. 开发设置
      4. 📄 许可证
        1. 🔗 相关项目
          1. 💬 支持

            Related MCP Servers

            • A
              security
              F
              license
              A
              quality
              Enables AI agents to interact with web browsers using natural language, featuring automated browsing, form filling, vision-based element detection, and structured JSON responses for systematic browser control.
              Last updated -
              51
              • Linux
              • Apple
            • -
              security
              A
              license
              -
              quality
              Enables browser automation and real-time computer vision tasks through AI-driven commands, offering zero-cost digital navigation and interaction for enhanced web experiences.
              Last updated -
              0
              1
              MIT License
            • A
              security
              A
              license
              A
              quality
              A headless browser MCP server that allows AI agents to fetch web content and perform Google searches without API keys, supporting various output formats like Markdown, JSON, HTML, and text.
              Last updated -
              2
              17
              MIT License
            • A
              security
              A
              license
              A
              quality
              A headless server that enables reading and sending Gmail emails through API calls without requiring local credentials or browser access, designed to run remotely in containerized environments.
              Last updated -
              4
              24
              52
              MIT License
              • Linux
              • Apple

            View all related MCP servers

            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/random-robbie/mcp-web-browser'

            If you have feedback or need assistance with the MCP directory API, please join our Discord server