Skip to content

feat: add Browserless MCP browser automation plugin#2339

Open
andyMrtnzP wants to merge 2 commits intolanggenius:mainfrom
andyMrtnzP:add-browserless-plugin
Open

feat: add Browserless MCP browser automation plugin#2339
andyMrtnzP wants to merge 2 commits intolanggenius:mainfrom
andyMrtnzP:add-browserless-plugin

Conversation

@andyMrtnzP
Copy link
Copy Markdown

Summary

Adds the Browserless plugin (browserless/browserless) — a Tool plugin that exposes 9 browser-automation tools backed by the official Browserless MCP server (https://mcp.browserless.io/mcp).

Tools:

  • browserless_smartscraper — extract markdown / HTML / screenshot / PDF / links
  • browserless_search — SearXNG web/news/image search with optional inline scrape
  • browserless_map — discover every URL on a site
  • browserless_crawl — crawl + scrape up to a depth
  • browserless_export — fetch a URL in its native content type
  • browserless_function — run arbitrary Puppeteer JS server-side
  • browserless_download — run Puppeteer JS that triggers a file download
  • browserless_performance — Lighthouse audit
  • browserless_agent — stateful multi-turn agent (goto, click, type, snapshot, …)

Authenticates with a single api_key (Browserless API token). Credential validation hits mcp.browserless.io/mcp tools/list on save.

Plugin metadata

Test plan

  • All 9 MCP tools verified end-to-end against mcp.browserless.io/mcp with a real token
  • dify plugin package succeeds; .difypkg is 23 KB
  • Local Dify install verified via docker compose up (deferring — can iterate post-review)

Copy link
Copy Markdown
Member

@crazywoola crazywoola left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

❌ Request Changes

Decision: Request changes

Failed Checks

Check Status Detail Required action
Install test ❌ Fail Command failed (1): /var/folders/yl/54qqf2s909z2kjf8_vy8sg940000gn/T/pr-review-helper-k1f0i21l/.venv/bin/python /var/folders/yl/54qqf2s909z2kjf8_vy8sg940000gn/T/pr-review-helper-k1f0i21l/toolkit/validator/test-plugin-install.py -d /var/folders/yl/54qqf2s909z2… Fix the plugin so test-plugin-install.py passes.

Full Check Results

Check Status Detail Required action
PR content language ✅ Pass PR title/body CJK ratio=0.0% (zh=0, en=1131, ignored_zh=0, allowed_zh<=0) None.
Project structure ✅ Pass All expected files present: manifest.yaml, README.md, PRIVACY.md. _assets/: yes. None.
Manifest author ✅ Pass author is valid. None.
Icon validation ✅ Pass icon exists: _assets/icon.svg None.
Version check ✅ Pass version 0.0.1 is available. None.
README language ✅ Pass README.md CJK ratio=0.0% (zh=0, en=1527, allowed_zh<=0) None.
PRIVACY.md ✅ Pass PRIVACY.md exists and is non-empty. None.
Dependency install ✅ Pass requirements installed successfully. None.
dify_plugin version ✅ Pass dify_plugin version 0.6.2 satisfies >= 0.5.0. None.
Install test ❌ Fail Command failed (1): /var/folders/yl/54qqf2s909z2kjf8_vy8sg940000gn/T/pr-review-helper-k1f0i21l/.venv/bin/python /var/folders/yl/54qqf2s909z2kjf8_vy8sg940000gn/T/pr-review-helper-k1f0i21l/toolkit/validator/test-plugin-install.py -d /var/folders/yl/54qqf2s909z2… Fix the plugin so test-plugin-install.py passes.
Packaging test ✅ Pass packaging check passed. None.

Next steps

  • Install test: Fix the plugin so test-plugin-install.py passes.

Please address these issues and push an update.

Copy link
Copy Markdown
Member

@crazywoola crazywoola left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

❌ Request Changes

Decision: Request changes

Failed Checks

Check Status Detail
Dependency install ❌ Fail Command failed (1): /var/folders/c5/ssq8b54n0rj6rbmghy7_2xdm0000gn/T/pr-review-helper-fh1k5wju/.venv/bin/pip install -r /var/folders/c5/ssq8b54n0rj6rbmghy7_2xdm0000gn/T/pr-review-helper-fh1k5wju/unpacked_plugin/requirements.txt error: subprocess-exited-with-e…
dify_plugin version ❌ Fail dify_plugin must be installed and >= 0.5.0, but it was not found.
Install test ❌ Fail Command failed (1): /var/folders/c5/ssq8b54n0rj6rbmghy7_2xdm0000gn/T/pr-review-helper-fh1k5wju/.venv/bin/python /var/folders/c5/ssq8b54n0rj6rbmghy7_2xdm0000gn/T/pr-review-helper-fh1k5wju/toolkit/validator/test-plugin-install.py -d /var/folders/c5/ssq8b54n0rj6…

Full Check Results

Check Status Detail
PR content language ✅ Pass PR title/body CJK ratio=0.0% (zh=0, en=1131, ignored_zh=0, allowed_zh<=0)
Project structure ✅ Pass All expected files present: manifest.yaml, README.md, PRIVACY.md. _assets/: yes.
Manifest author ✅ Pass author is valid.
Icon validation ✅ Pass icon exists: _assets/icon.svg
Version check ✅ Pass version 1.0.0 is available.
README language ✅ Pass README.md CJK ratio=0.0% (zh=0, en=1527, allowed_zh<=0)
PRIVACY.md ✅ Pass PRIVACY.md exists and is non-empty.
Dependency install ❌ Fail Command failed (1): /var/folders/c5/ssq8b54n0rj6rbmghy7_2xdm0000gn/T/pr-review-helper-fh1k5wju/.venv/bin/pip install -r /var/folders/c5/ssq8b54n0rj6rbmghy7_2xdm0000gn/T/pr-review-helper-fh1k5wju/unpacked_plugin/requirements.txt error: subprocess-exited-with-e…
dify_plugin version ❌ Fail dify_plugin must be installed and >= 0.5.0, but it was not found.
Install test ❌ Fail Command failed (1): /var/folders/c5/ssq8b54n0rj6rbmghy7_2xdm0000gn/T/pr-review-helper-fh1k5wju/.venv/bin/python /var/folders/c5/ssq8b54n0rj6rbmghy7_2xdm0000gn/T/pr-review-helper-fh1k5wju/toolkit/validator/test-plugin-install.py -d /var/folders/c5/ssq8b54n0rj6…
Packaging test ✅ Pass packaging check passed.

Required Fixes

  • Dependency install: Command failed (1): /var/folders/c5/ssq8b54n0rj6rbmghy7_2xdm0000gn/T/pr-review-helper-fh1k5wju/.venv/bin/pip install -r /var/folders/c5/ssq8b54n0rj6rbmghy7_2xdm0000gn/T/pr-review-helper-fh1k5wju/unpacked_plugin/requirements.txt
    error: subprocess-exited-with-error

    × Building wheel for tiktoken (pyproject.toml) did not run successfully.
    │ exit code: 1
    ╰─> [50 lines of output]
    /private/var/folders/c5/ssq8b54n0rj6rbmghy7_2xdm0000gn/T/pip-build-env-u2vahor5/overlay/lib/python3.14/site-packages/setuptools/config/_apply_pyprojecttoml.py:82: SetuptoolsDeprecationWarning: project.license as a TOML table is deprecated
    !!

            ********************************************************************************
            Please use a simple string containing a SPDX expression for `project.license`. You can also use `project.license-files`. (Both options available on setuptools>=77.0.0).
    
            By 2027-Feb-18, you need to update your project and remove deprecated calls
            or your builds will no longer be supported.
    
            See https://packaging.python.org/en/latest/guides/writing-pyproject-toml/#license for details.
            ********************************************************************************
    
    !!
      corresp(dist, value, root_dir)
    running bdist_wheel
    running build
    running build_py
    creating build/lib.macosx-26.0-arm64-cpython-314/tiktoken
    copying tiktoken/registry.py -> build/lib.macosx-26.0-arm64-cpython-314/tiktoken
    copying tiktoken/__init__.py -> build/lib.macosx-26.0-arm64-cpython-314/tiktoken
    copying tiktoken/core.py -> build/lib.macosx-26.0-arm64-cpython-314/tiktoken
    copying tiktoken/model.py -> build/lib.macosx-26.0-arm64-cpython-314/tiktoken
    copying tiktoken/load.py -> build/lib.macosx-26.0-arm64-cpython-314/tiktoken
    copying tiktoken/_educational.py -> build/lib.macosx-26.0-arm64-cpython-314/tiktoken
    creating build/lib.macosx-26.0-arm64-cpython-314/tiktoken_ext
    copying tiktoken_ext/openai_public.py -> build/lib.macosx-26.0-arm64-cpython-314/tiktoken_ext
    running egg_info
    writing tiktoken.egg-info/PKG-INFO
    writing dependency_links to tiktoken.egg-info/dependency_links.txt
    writing requirements to tiktoken.egg-info/requires.txt
    writing top-level names to tiktoken.egg-info/top_level.txt
    reading manifest file 'tiktoken.egg-info/SOURCES.txt'
    reading manifest template 'MANIFEST.in'
    warning: no files found matching 'Makefile'
    adding license file 'LICENSE'
    writing manifest file 'tiktoken.egg-info/SOURCES.txt'
    copying tiktoken/py.typed -> build/lib.macosx-26.0-arm64-cpython-314/tiktoken
    running build_ext
    running build_rust
    error: can't find Rust compiler
    
    If you are using an outdated pip version, it is possible a prebuilt wheel is available for this package but pip is not able to install from it. Installing from the wheel would avoid the need for a Rust compiler.
    
    To update pip, run:
    
        pip install --upgrade pip
    
    and then retry package installation.
    
    If you did intend to build this package from source, try installing a Rust compiler from your system package manager and ensure it is on the PATH during installation. Alternatively, rustup (available at https://rustup.rs) is the recommended way to download and update the Rust compiler toolchain.
    [end of output]
    

    note: This error originates from a subprocess, and is likely not a problem with pip.
    ERROR: Failed building wheel for tiktoken
    error: failed-wheel-build-for-install

× Failed to build installable wheels for some pyproject.toml based projects
╰─> tiktoken

  • dify_plugin version: dify_plugin must be installed and >= 0.5.0, but it was not found.
  • Install test: Command failed (1): /var/folders/c5/ssq8b54n0rj6rbmghy7_2xdm0000gn/T/pr-review-helper-fh1k5wju/.venv/bin/python /var/folders/c5/ssq8b54n0rj6rbmghy7_2xdm0000gn/T/pr-review-helper-fh1k5wju/toolkit/validator/test-plugin-install.py -d /var/folders/c5/ssq8b54n0rj6rbmghy7_2xdm0000gn/T/pr-review-helper-fh1k5wju/unpacked_plugin

Please address these issues and push an update.

Copy link
Copy Markdown
Member

@crazywoola crazywoola left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

❌ Request Changes

Decision: Request changes

Failed Checks

Check Status Detail
Install test ❌ Fail Command failed (1): /var/folders/c5/ssq8b54n0rj6rbmghy7_2xdm0000gn/T/pr-review-helper-de0y2hvj/.venv/bin/python /var/folders/c5/ssq8b54n0rj6rbmghy7_2xdm0000gn/T/pr-review-helper-de0y2hvj/toolkit/validator/test-plugin-install.py -d /var/folders/c5/ssq8b54n0rj6…

Full Check Results

Check Status Detail
PR content language ✅ Pass PR title/body CJK ratio=0.0% (zh=0, en=1131, ignored_zh=0, allowed_zh<=0)
Project structure ✅ Pass All expected files present: manifest.yaml, README.md, PRIVACY.md. _assets/: yes.
Manifest author ✅ Pass author is valid.
Icon validation ✅ Pass icon exists: _assets/icon.svg
Version check ✅ Pass version 1.0.0 is available.
README language ✅ Pass README.md CJK ratio=0.0% (zh=0, en=1527, allowed_zh<=0)
PRIVACY.md ✅ Pass PRIVACY.md exists and is non-empty.
Dependency install ✅ Pass requirements installed successfully.
dify_plugin version ✅ Pass dify_plugin version 0.6.2 satisfies >= 0.5.0.
Install test ❌ Fail Command failed (1): /var/folders/c5/ssq8b54n0rj6rbmghy7_2xdm0000gn/T/pr-review-helper-de0y2hvj/.venv/bin/python /var/folders/c5/ssq8b54n0rj6rbmghy7_2xdm0000gn/T/pr-review-helper-de0y2hvj/toolkit/validator/test-plugin-install.py -d /var/folders/c5/ssq8b54n0rj6…
Packaging test ✅ Pass packaging check passed.

Required Fixes

  • Install test: Command failed (1): /var/folders/c5/ssq8b54n0rj6rbmghy7_2xdm0000gn/T/pr-review-helper-de0y2hvj/.venv/bin/python /var/folders/c5/ssq8b54n0rj6rbmghy7_2xdm0000gn/T/pr-review-helper-de0y2hvj/toolkit/validator/test-plugin-install.py -d /var/folders/c5/ssq8b54n0rj6rbmghy7_2xdm0000gn/T/pr-review-helper-de0y2hvj/unpacked_plugin

Please address these issues and push an update.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants