atxtechbro / atxtechbro/dotfiles

feat: add vendored Playwright MCP server for browser automation

Open
#766 0 comments 0 reactions 0 assignees View on GitHub
automation enhancement mcp
Dominant language
Shell
Stars
27
Forks
2
PR merge metrics
No merged PRs in 30d

Description

## Overview
Add a vendored copy of Microsoft's Playwright MCP server to enable stable, customizable browser automation within the dotfiles ecosystem.

## Architectural Decision
This is a deliberate choice to **vendor** (copy and own) the Playwright MCP server code rather than:
- Using it as a git submodule
- Installing via npm/pip
- Tracking upstream updates

### Rationale
- **Stability**: Need consistent behavior without surprise updates
- **Customization**: Ability to modify for specific workflow needs
- **Self-containment**: Dotfiles should be fully functional after clone
- **Control**: Direct ownership of critical automation infrastructure

## Implementation Plan

### 1. Clone and Import
```bash
# Clone microsoft/playwright-mcp to temporary location
git clone https://github.com/microsoft/playwright-mcp.git /tmp/playwright-mcp

# Copy to MCP servers directory
cp -r /tmp/playwright-mcp mcp/servers/playwright-mcp

# Remove git tracking
rm -rf mcp/servers/playwright-mcp/.git
```

### 2. Clean File Structure
Remove unnecessary files:
- `.github/` directory
- `README.md` (replace with minimal version)
- `examples/` directory
- `tests/` directory (unless needed for validation)
- Any demo/sample files
- Development-only configs

### 3. Essential Files Only
Keep only:
- Core server implementation
- Required dependencies/configs
- License file (for attribution)
- Minimal runtime requirements

### 4. Add Attribution
Create minimal `README.md`:
```markdown
# Playwright MCP Server (Vendored)

This is a vendored copy of Microsoft's Playwright MCP server.
Original source: https://github.com/microsoft/playwright-mcp

Vendored on: [DATE]
Original commit: [COMMIT_SHA]

This copy is maintained independently and does not track upstream changes.
```

### 5. Integration
- Add to `mcp/generate-mcp-config.sh`
- Update `.gitignore` as needed
- Test with Claude Code and other MCP clients

## Acceptance Criteria
- [ ] Server successfully starts after fresh clone of dotfiles
- [ ] No external repository dependencies
- [ ] Clean file structure with only runtime-essential files
- [ ] Proper attribution to Microsoft's original work
- [ ] Working browser automation through MCP protocol
- [ ] Integration with existing MCP infrastructure

## Risks & Considerations

### Maintenance Burden
- We're freezing at the current version
- Critical security fixes must be manually ported
- Feature updates won't be automatic

### Update Strategy
- Periodically review upstream for critical fixes
- Document any local modifications clearly
- Consider re-vendoring if major improvements warrant it

### Technical Debt
- Taking ownership means maintaining compatibility
- May diverge from upstream API over time
- Need to handle any breaking MCP protocol changes

## Notes
This follows the established pattern of vendoring when we need stability and control over critical components. Similar to how we might vendor specific versions of tools rather than relying on system packages.

The decision to vendor rather than submodule is intentional - we want full control and the ability to modify without upstream constraints.

Contributor guide

No contributing guide indexed for this repository

Research direction

Start by reviewing mcp/generate-mcp-config.sh and the upstream microsoft/playwright-mcp repository, then determine the runtime files and dependencies needed for a vendored copy. Done means a fresh dotfiles clone starts the server without external repository dependencies, includes attribution, and supports browser automation through the existing MCP infrastructure.

Written by the indexing model from the issue text.

Assessment

Tech stack
shell
Domain
tooling
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.