Browser automation + bookmark management over FastMCP 3.2. Playwright-powered: Chrome, Firefox, Edge, Brave, CDP, CLI. React dashboard.
Drift inferred · capture-to-capture
No drift recorded — single capability capture; advisories appear once its surface changes.
transport stdio · http counts 17 tools · 0 res
· 0 prompts
permission surface via code analysis
tools
-
browse_items
-
browse_page
-
browse_url_cli
-
browse_workflow
-
browser_agent
-
browser_bookmarks
-
browser_help
-
browser_shutdown
-
click_element
-
close_browser
-
extract_text
-
fill_input
-
list_browsers
-
morning_briefing
-
press_key
-
screenshot
-
show_browsers_card
prompt-surface
shipped agent-instruction files + hidden-content / dangerous-code findings —
quoted from the analyzed source
analyzed commit da26820 · analyzer v33 · 1w ago
skills & prompt files 9
- skill sandraschi-browser-mcp-da26820/.agents/skills/session-start/SKILL.md
- agent-rules sandraschi-browser-mcp-da26820/.cursorrules
- agent-rules sandraschi-browser-mcp-da26820/.github/copilot-instructions.md
- skill sandraschi-browser-mcp-da26820/.opencode/skills/browser-mcp-session/SKILL.md
- agent-rules sandraschi-browser-mcp-da26820/.windsurfrules
- agent-rules sandraschi-browser-mcp-da26820/AGENTS.md
- agent-rules sandraschi-browser-mcp-da26820/CLAUDE.md
- prompt-file sandraschi-browser-mcp-da26820/assets/prompts/system.md
- prompt-file sandraschi-browser-mcp-da26820/assets/prompts/user.md
evidence-backed
findings quoted directly from the published source artifact — not inferred
code files: 63
filesystem 14
- fs (weak) sandraschi-browser-mcp-da26820/scripts/cua-smoke.py :16
from pathlib import Path - fs (weak) sandraschi-browser-mcp-da26820/scripts/cua-webapp-test.py :32
from pathlib import Path - fs sandraschi-browser-mcp-da26820/src/browser_mcp/bookmarks/chromium_common.py :3
from pathlib import Path - fs sandraschi-browser-mcp-da26820/src/browser_mcp/bookmarks/firefox/age_analyzer.py :2
from pathlib import Path - fs sandraschi-browser-mcp-da26820/src/browser_mcp/bookmarks/firefox/bookmark_manager.py :1
from pathlib import Path - fs sandraschi-browser-mcp-da26820/src/browser_mcp/bookmarks/firefox/bulk_operations.py :4
from pathlib import Path - fs sandraschi-browser-mcp-da26820/src/browser_mcp/bookmarks/firefox/core.py :2
import shutil - fs sandraschi-browser-mcp-da26820/src/browser_mcp/bookmarks/firefox/db.py :3
from pathlib import Path - fs sandraschi-browser-mcp-da26820/src/browser_mcp/bookmarks/firefox/link_checker.py :1
from pathlib import Path - fs sandraschi-browser-mcp-da26820/src/browser_mcp/bookmarks/firefox/search_tools.py :1
from pathlib import Path - fs sandraschi-browser-mcp-da26820/src/browser_mcp/bookmarks/firefox/status.py :2
from pathlib import Path - fs sandraschi-browser-mcp-da26820/src/browser_mcp/bookmarks/firefox/tag_manager.py :1
from pathlib import Path
show 2 more
- fs sandraschi-browser-mcp-da26820/src/browser_mcp/bookmarks/firefox/utils.py :3
from pathlib import Path - fs sandraschi-browser-mcp-da26820/src/browser_mcp/workflows/briefing.py :7
from pathlib import Path
shell / exec 3
- shell (weak) sandraschi-browser-mcp-da26820/scripts/cua-smoke.py :49
subprocess.run(["taskkill", "/F", "/IM", name, "/T"], capture_output=True, timeout=10) - shell (weak) sandraschi-browser-mcp-da26820/scripts/cua-webapp-test.py :27
import subprocess - shell sandraschi-browser-mcp-da26820/src/browser_mcp/server.py :309
import subprocess
network 5
- net (weak) sandraschi-browser-mcp-da26820/scripts/cua-smoke.py :15
import argparse, json, glob, os, subprocess, sys, time, urllib.request, urllib.error - net (weak) sandraschi-browser-mcp-da26820/scripts/cua-webapp-test.py :30
import urllib.error - net sandraschi-browser-mcp-da26820/src/browser_mcp/app.py :12
import httpx - net sandraschi-browser-mcp-da26820/src/browser_mcp/bookmarks/firefox/link_checker.py :4
import aiohttp - net (weak) sandraschi-browser-mcp-da26820/tests/test_server.py :85
from httpx import ASGITransport, AsyncClient
database 3
- db sandraschi-browser-mcp-da26820/src/browser_mcp/bookmarks/firefox/core.py :3
import sqlite3 - db sandraschi-browser-mcp-da26820/src/browser_mcp/bookmarks/firefox/db.py :2
import sqlite3 - db sandraschi-browser-mcp-da26820/src/browser_mcp/bookmarks/firefox/links.py :1
import sqlite3
tool registrations 17
- browser_bookmarks sandraschi-browser-mcp-da26820/src/browser_mcp/bookmarks/portmanteau.py :18
- show_browsers_card sandraschi-browser-mcp-da26820/src/browser_mcp/prefab_cards.py :12
- browse_page sandraschi-browser-mcp-da26820/src/browser_mcp/server.py :82
- click_element sandraschi-browser-mcp-da26820/src/browser_mcp/server.py :120
- extract_text sandraschi-browser-mcp-da26820/src/browser_mcp/server.py :142
- screenshot sandraschi-browser-mcp-da26820/src/browser_mcp/server.py :163
- fill_input sandraschi-browser-mcp-da26820/src/browser_mcp/server.py :187
- press_key sandraschi-browser-mcp-da26820/src/browser_mcp/server.py :207
- close_browser sandraschi-browser-mcp-da26820/src/browser_mcp/server.py :228
- list_browsers sandraschi-browser-mcp-da26820/src/browser_mcp/server.py :245
- browse_url_cli sandraschi-browser-mcp-da26820/src/browser_mcp/server.py :294
- browser_help sandraschi-browser-mcp-da26820/src/browser_mcp/server.py :349
show 5 more
- browser_shutdown sandraschi-browser-mcp-da26820/src/browser_mcp/server.py :400
- browse_workflow sandraschi-browser-mcp-da26820/src/browser_mcp/workflows/agentic.py :13
- morning_briefing sandraschi-browser-mcp-da26820/src/browser_mcp/workflows/briefing.py :24
- browser_agent sandraschi-browser-mcp-da26820/src/browser_mcp/workflows/browser_use_agent.py :24
- browse_items sandraschi-browser-mcp-da26820/src/browser_mcp/workflows/link_processor.py :14
declared dependencies 20
- fastmcp@>=3.4.4,<4
- httpx@>=0.27
- uvicorn@>=0.32
- fastapi@>=0.115
- starlette@>=0.46
- playwright@>=1.40
- psutil@>=5.9.0
- aiohttp@>=3.9.0
- browser-use@>=0.13.0
- prefab-ui@>=0.14.0
- pytest@>=8
- pytest-asyncio@>=0.24
show 8 more
- ruff@>=0.16.0,<0.17
- tauri-build@2
- tauri@2
- tauri-plugin-shell@2
- tauri-plugin-fs@2
- tauri-plugin-process@2
- serde@1
- serde_json@1