MCP, MCP server
Web Agent Protocol
🌐Web Agent Protocol (WAP) - Record and replay user interactions in the browser with MCP support
Compatibility: Not stated.
Grade D
Two or more Medium findings, or a High finding. Only try it in a sandbox.
Not a guarantee. A hygiene check of the source at the commit shown, not a security audit.
Rescanned at commit eacb16595551, unchanged since the check below.
OBFUSCATION_ENCODED_BLOB OBFUSCATION_MINIFIED_PAYLOAD
Why this grade
- OBFUSCATION_ENCODED_BLOB Medium
Contains a long base64 shaped string in a file that should be readable.
chrome-extension/lib/purify.min.js, line 2
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis: - OBFUSCATION_MINIFIED_PAYLOAD Medium
Contains a very long line with almost no spaces in a script or style file.
chrome-extension/lib/purify.min.js, line 2
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:
Any High, or two or more Medium findings, give D. One Medium gives C. Low findings or a security Note give B. Each code names a finding behind the letter.
Grades are a hygiene check of the source at the commit shown, on the date checked, not a security audit or a guarantee. The free directory grades are automated. Before release, a PlugVet engineer reviews every paid report and any grade we hold back, including all F grades, against the source code and the evidence we quote.
What was checked
Plain notes from the hygiene checks.
Permissions
Concern
can delete files.
PERMISSION_DELETE_FILES
run_replay.py, line 40
shutil.rmtree(path, ignore_errors=True)
run_replay.py, line 240
shutil.rmtree("results")
browser_use/agent/service.py, line 313
version = subprocess.check_output(['git', 'describe', '--tags']).decode('utf-8').strip()
Show more
browser_use/browser/browser.py, line 214
subprocess.Popen(
wap_replay/generate_mcp_server.py, line 138
os.remove(existing_file)
Install and update
Concern
dependencies are not pinned.
INSTALL_UNPINNED
requirements.txt, line 25
langchain-core>=0.3.58,<0.4.0
Network
Concern
can reach a host that is not written as a fixed address.
NETWORK_NO_FIXED_HOST
browser_use/browser/browser.py, line 189
response = requests.get('http://localhost:9222/json/version', timeout=2)
browser_use/browser/browser.py, line 225
response = requests.get('http://localhost:9222/json/version', timeout=2)
chrome-extension/js/background.js, line 44
fetch(url, {
Secrets
Concern
reads a credential or environment file.
SECRETS_ENV_READ SECRETS_PATH_DOTENV
mcp_client.py, line 27
self.api_key = os.getenv("LLM_API_KEY")
mcp_client.py, line 31
"""Load environment variables from .env file."""
run_replay.py, line 71
api_key=SecretStr(os.getenv("AZURE_OPENAI_API_KEY_WEST_EU", "")),
Show more
run_replay.py, line 80
api_key=SecretStr(os.getenv("AZURE_OPENAI_API_KEY_EAST_US", "")),
run_replay.py, line 89
api_key=SecretStr(os.getenv("AZURE_OPENAI_API_KEY_EAST_US_2", "")),
run_replay.py, line 98
api_key=SecretStr(os.getenv("AZURE_OPENAI_API_KEY_WEST_US", "")),
browser_use/agent/service.py, line 66
SKIP_LLM_API_KEY_VERIFICATION = os.environ.get('SKIP_LLM_API_KEY_VERIFICATION', 'false').lower()[0] in 'ty1'
browser_use/agent/service.py, line 1393
f'\n\n❌ LLM {llm.__class__.__name__} connection test failed. Check that {", ".join(required_keys)} is set correctly in .env and that the LLM API account has sufficient funding.\n'
browser_use/browser/dolphin_service.py, line 26
self.api_token = os.getenv('DOLPHIN_API_TOKEN')
.gitignore, line 9
subgoals/
README.md, line 73
Create **.env** file under the repo root directory with your own API keys:
Agent instructions
Pass
No instruction to ignore earlier instructions or to hide a step.
Obfuscation
Concern
contains a minified payload. contains an encoded blob in a file that should be readable.
OBFUSCATION_ENCODED_BLOB OBFUSCATION_MINIFIED_PAYLOAD
chrome-extension/lib/purify.min.js, line 2
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:
data_samples/action_set_y757R6w6y17LVHXl/summary_event_20250523_011259.json, line 14
"pageHTMLContent": "<div id=\"a-page\"><img alt=\"\" src=\"https://m.media-amazon.com/images/G/15/gno/sprites/nav-sprite-global-1x-reorg-privacy._CB546817341_.png\"><title>Redragon
Licence
Pass
A licence file is present (LICENSE).
Maintainer activity
Note
the latest commit is more than 365 days old.
MAINTAINER_STALE
No file path was stored.
2025-06-03T12:01:57-04:00
Note
Hygiene check of commit eacb16595551. can delete files. dependencies are not pinned. can reach a host that is not written as a fixed address. reads a credential or environment file. contains a minified payload. contains an encoded blob in a file that should be readable. the latest commit is more than 365 days old.
Date and source
Date checked:
github.com
Commit graded: eacb165955519bacdc2bd2496301565e55b0ed02
This link goes to the original host. PlugVet does not host or check what you download from there, and installing it is your own decision and risk.