github TypeScript re-analysis due

scrollDynasty/BrowserMesh

github

Multi-agent browser MCP runtime for isolated, persistent, parallel Playwright sessions. Run multiple AI agents without shared tabs or browser state.

maintainer
scrollDynasty
license
Apache-2.0
first seen
2026-08-27
last seen
2026-09-04
releases · 30d
8
short id

Drift inferred · capture-to-capture

No drift recorded — single capability capture; advisories appear once its surface changes.

capabilities 35 tools
transport stdio · http counts 35 tools · 0 res · 0 prompts permission surface via code analysis

tools

  • browser_action_and_wait
  • browser_back
  • browser_check
  • browser_click
  • browser_double_click
  • browser_drag_and_drop
  • browser_fill
  • browser_focus
  • browser_forward
  • browser_get_title
  • browser_get_url
  • browser_hover
  • browser_navigate
  • browser_observe
  • browser_page_close
  • browser_page_create
  • browser_page_list
  • browser_press
  • browser_reload
  • browser_runtime_info
  • browser_screenshot
  • browser_scroll
  • browser_scroll_into_view
  • browser_select_option
  • browser_session_close
  • browser_session_create
  • browser_session_get
  • browser_session_list
  • browser_snapshot
  • browser_state_list
  • browser_state_remove
  • browser_state_save
  • browser_uncheck
  • browser_visible_text
  • browser_wait
code evidence vv0.2.1 · github-tarball
evidence-backed findings quoted directly from the published source artifact — not inferred

code files: 80

filesystem 12

  • fs (weak) scrollDynasty-BrowserMesh-8d85176/scripts/generate-version.ts :1 import { readFile, writeFile } from 'node:fs/promises';
  • fs (weak) scrollDynasty-BrowserMesh-8d85176/scripts/verify-package.ts :8 import { constants } from 'node:fs';
  • fs scrollDynasty-BrowserMesh-8d85176/src/adapters/diagnostics/data-directory-probe.ts :1 import { constants } from 'node:fs';
  • fs scrollDynasty-BrowserMesh-8d85176/src/adapters/persistence/filesystem-state-repository.ts :1 import { mkdir, open, readdir, rename, rm, stat, writeFile } from 'node:fs/promises';
  • fs scrollDynasty-BrowserMesh-8d85176/src/adapters/playwright/playwright-browser-engine.ts :15 import { constants } from 'node:fs';
  • fs (weak) scrollDynasty-BrowserMesh-8d85176/tests/integration/doctor-cli.test.ts :2 import { mkdtemp, rm, writeFile } from 'node:fs/promises';
  • fs (weak) scrollDynasty-BrowserMesh-8d85176/tests/integration/fatal-process.test.ts :2 import { mkdtemp, readFile, rm } from 'node:fs/promises';
  • fs (weak) scrollDynasty-BrowserMesh-8d85176/tests/integration/stdio.test.ts :3 import { mkdtemp, rm } from 'node:fs/promises';
  • fs (weak) scrollDynasty-BrowserMesh-8d85176/tests/support/real-runtime.ts :1 import { mkdtemp, rm } from 'node:fs/promises';
  • fs (weak) scrollDynasty-BrowserMesh-8d85176/tests/unit/architecture.test.ts :1 import { readFile, readdir } from 'node:fs/promises';
  • fs (weak) scrollDynasty-BrowserMesh-8d85176/tests/unit/persistence.test.ts :1 import { mkdtemp, readdir, rm, writeFile } from 'node:fs/promises';
  • fs (weak) scrollDynasty-BrowserMesh-8d85176/tests/unit/publish-workflow.test.ts :2 import { readFile } from 'node:fs/promises';

shell / exec 5

  • shell (weak) scrollDynasty-BrowserMesh-8d85176/scripts/verify-package.ts :6 import { execFile } from 'node:child_process';
  • shell scrollDynasty-BrowserMesh-8d85176/src/install-browser.ts :1 import { spawn } from 'node:child_process';
  • shell (weak) scrollDynasty-BrowserMesh-8d85176/tests/integration/doctor-cli.test.ts :1 import { execFile } from 'node:child_process';
  • shell (weak) scrollDynasty-BrowserMesh-8d85176/tests/integration/fatal-process.test.ts :1 import { execFile } from 'node:child_process';
  • shell (weak) scrollDynasty-BrowserMesh-8d85176/tests/unit/publish-workflow.test.ts :1 import { execFile } from 'node:child_process';

network 4

  • net (weak) scrollDynasty-BrowserMesh-8d85176/scripts/verify-package.ts :10 import { createServer, type Server } from 'node:http';
  • net (weak) scrollDynasty-BrowserMesh-8d85176/tests/integration/browser-runtime.test.ts :2 import { createServer } from 'node:net';
  • net (weak) scrollDynasty-BrowserMesh-8d85176/tests/support/test-web-server.ts :1 import { createServer, type Server } from 'node:http';
  • net (weak) scrollDynasty-BrowserMesh-8d85176/tests/unit/test-web-server.test.ts :18 const response = await fetch(`${server.baseUrl}/delay?ms=${delay}`);

secrets 1

  • secrets (weak) scrollDynasty-BrowserMesh-8d85176/tests/integration/fatal-process.test.ts :18 const secret = process.env.BROWSERMESH_FATAL_TEST_SECRET;

tool registrations 35

  • browser_runtime_info scrollDynasty-BrowserMesh-8d85176/src/adapters/mcp/server.ts :317
  • browser_session_create scrollDynasty-BrowserMesh-8d85176/src/adapters/mcp/server.ts :342
  • browser_session_list scrollDynasty-BrowserMesh-8d85176/src/adapters/mcp/server.ts :365
  • browser_session_get scrollDynasty-BrowserMesh-8d85176/src/adapters/mcp/server.ts :378
  • browser_session_close scrollDynasty-BrowserMesh-8d85176/src/adapters/mcp/server.ts :392
  • browser_page_create scrollDynasty-BrowserMesh-8d85176/src/adapters/mcp/server.ts :407
  • browser_page_list scrollDynasty-BrowserMesh-8d85176/src/adapters/mcp/server.ts :426
  • browser_page_close scrollDynasty-BrowserMesh-8d85176/src/adapters/mcp/server.ts :440
  • browser_navigate scrollDynasty-BrowserMesh-8d85176/src/adapters/mcp/server.ts :455
  • browser_back scrollDynasty-BrowserMesh-8d85176/src/adapters/mcp/server.ts :465
  • browser_forward scrollDynasty-BrowserMesh-8d85176/src/adapters/mcp/server.ts :475
  • browser_reload scrollDynasty-BrowserMesh-8d85176/src/adapters/mcp/server.ts :485
  • browser_get_url scrollDynasty-BrowserMesh-8d85176/src/adapters/mcp/server.ts :495
  • browser_get_title scrollDynasty-BrowserMesh-8d85176/src/adapters/mcp/server.ts :505
  • browser_snapshot scrollDynasty-BrowserMesh-8d85176/src/adapters/mcp/server.ts :515
  • browser_visible_text scrollDynasty-BrowserMesh-8d85176/src/adapters/mcp/server.ts :548
  • browser_observe scrollDynasty-BrowserMesh-8d85176/src/adapters/mcp/server.ts :571
  • browser_click scrollDynasty-BrowserMesh-8d85176/src/adapters/mcp/server.ts :595
  • browser_double_click scrollDynasty-BrowserMesh-8d85176/src/adapters/mcp/server.ts :610
  • browser_hover scrollDynasty-BrowserMesh-8d85176/src/adapters/mcp/server.ts :625
  • browser_focus scrollDynasty-BrowserMesh-8d85176/src/adapters/mcp/server.ts :640
  • browser_check scrollDynasty-BrowserMesh-8d85176/src/adapters/mcp/server.ts :655
  • browser_uncheck scrollDynasty-BrowserMesh-8d85176/src/adapters/mcp/server.ts :670
  • browser_scroll_into_view scrollDynasty-BrowserMesh-8d85176/src/adapters/mcp/server.ts :685
  • browser_scroll scrollDynasty-BrowserMesh-8d85176/src/adapters/mcp/server.ts :700
  • browser_drag_and_drop scrollDynasty-BrowserMesh-8d85176/src/adapters/mcp/server.ts :711
  • browser_fill scrollDynasty-BrowserMesh-8d85176/src/adapters/mcp/server.ts :728
  • browser_press scrollDynasty-BrowserMesh-8d85176/src/adapters/mcp/server.ts :743
  • browser_select_option scrollDynasty-BrowserMesh-8d85176/src/adapters/mcp/server.ts :758
  • browser_screenshot scrollDynasty-BrowserMesh-8d85176/src/adapters/mcp/server.ts :773
  • browser_wait scrollDynasty-BrowserMesh-8d85176/src/adapters/mcp/server.ts :812
  • browser_action_and_wait scrollDynasty-BrowserMesh-8d85176/src/adapters/mcp/server.ts :834
  • browser_state_save scrollDynasty-BrowserMesh-8d85176/src/adapters/mcp/server.ts :858
  • browser_state_list scrollDynasty-BrowserMesh-8d85176/src/adapters/mcp/server.ts :872
  • browser_state_remove scrollDynasty-BrowserMesh-8d85176/src/adapters/mcp/server.ts :885

install hooks 1

  • prepack scrollDynasty-BrowserMesh-8d85176/package.json :52 npm run generate:version

declared dependencies 20

  • @modelcontextprotocol/sdk@^1.30.0
  • playwright@1.62.1
  • yaml@^2.9.0
  • zod@^4.4.3
  • @eslint/js@^10.0.1
  • @fontsource-variable/geist@^5.3.0
  • @fontsource-variable/geist-mono@^5.3.0
  • @types/escape-html@^1.0.4
  • @types/node@^22.20.1
  • @vitest/coverage-v8@^4.1.10
  • ajv@^8.20.0
  • escape-html@^1.0.3
  • eslint@^10.0.2
  • prettier@^3.9.0
  • tsx@^4.23.0
  • typescript@^6.0.3
  • typescript-eslint@^8.56.1
  • vite@^8.2.1
  • vitepress@2.0.0-alpha.19
  • vitest@^4.1.0