feat: add Browserless MCP browser automation plugin#2339
feat: add Browserless MCP browser automation plugin#2339andyMrtnzP wants to merge 2 commits intolanggenius:mainfrom
Conversation
crazywoola
left a comment
There was a problem hiding this comment.
❌ 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.
crazywoola
left a comment
There was a problem hiding this comment.
❌ 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.licenseas 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.
crazywoola
left a comment
There was a problem hiding this comment.
❌ 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.
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 / linksbrowserless_search— SearXNG web/news/image search with optional inline scrapebrowserless_map— discover every URL on a sitebrowserless_crawl— crawl + scrape up to a depthbrowserless_export— fetch a URL in its native content typebrowserless_function— run arbitrary Puppeteer JS server-sidebrowserless_download— run Puppeteer JS that triggers a file downloadbrowserless_performance— Lighthouse auditbrowserless_agent— stateful multi-turn agent (goto, click, type, snapshot, …)Authenticates with a single
api_key(Browserless API token). Credential validation hitsmcp.browserless.io/mcptools/liston save.Plugin metadata
Test plan
mcp.browserless.io/mcpwith a real tokendify plugin packagesucceeds;.difypkgis 23 KBdocker compose up(deferring — can iterate post-review)