Add scout MCP server for browser recon + msgspec workspace dep

- tools/scout/: browser automation MCP server using Pydoll (CDP, no WebDriver)
  - scout_visit, scout_elements (text-first), scout_click, scout_fill, scout_select
  - scout_scroll, scout_text, scout_screenshot (opt-in)
  - scout_har_start / scout_har_stop (asyncio task holds recording context open)
  - scout_analyze: HAR parsing with HarEntry/HarSummary msgspec structs
  - Standalone project (not workspace member — websockets conflict with prefect)
  - Runs via: uv run --directory tools/scout scout-server

- .mcp.json: registers scout as Claude Code MCP server (project scope)

- msgspec>=0.19 added to root project deps (workspace-wide struct/validation)

- coding_philosophy.md: document msgspec as approved dep, usage rules

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Deeman
2026-02-21 15:44:02 +01:00
parent c9e9562030
commit b167a0a9f4
10 changed files with 1934 additions and 1 deletions

View File

@@ -201,6 +201,13 @@ active_users = [u for u in users if u.is_active()]
- Small, focused libraries
- Direct solutions
- Understanding what code does
**Approved dependencies (earn their place):**
- `msgspec` — struct types and validation at system boundaries (external APIs, user input,
inter-process data). Use `msgspec.Struct` instead of dataclasses when you need: fast
encode/decode, built-in validation, or typed containers for boundary data.
**Rule:** use Structs at boundaries (API responses, HAR entries, MCP tool I/O) —
keep internal plumbing as plain dicts/tuples.
</question_dependencies>
</architecture_principles>