Skip to main content
Glama
rlaksana

Watchtower DAP Windows Debugging

by rlaksana
README.md
# Watchtower DAP Windows Debugging

**Windows-native MCP ⇄ DAP bridge enabling step-through debugging for C#, Node/TS, Python, and Dart**

## Overview

Watchtower is a Model Context Protocol (MCP) server that provides unified debugging capabilities across multiple programming languages on Windows. It acts as a bridge between MCP clients and various debug adapters, offering a consistent interface for debugging workflows.

## Features

- **Windows-Native**: Optimized for Windows 10/11 with Windows-specific adapter detection
- **Multi-Language Support**: C# (vsdbg/netcoredbg), Node.js/TypeScript (vscode-js-debug), Python (debugpy), Dart/Flutter (DAP adapter)
- **Unified MCP Interface**: All 13 required DAP tools exposed through MCP protocol
- **Launch & Attach**: Support for both launching new processes and attaching to running processes
- **Deterministic Debug Loop**: Cursor-based event polling with pagination
- **Security-By-Default**: Environment variables and command-line arguments redacted in logs
- **High Performance**: Time to First Break ≤ 1000ms, Step operations p95 ≤ 200ms
- **Observability Foundation**: OpenTelemetry metrics and structured logging

## Architecture

```
┌─────────────────┐    ┌─────────────────┐    ┌─────────────────┐
│   MCP Client    │───▶│  Watchtower     │───▶│ Debug Adapters  │
│   (Claude Code) │    │   Server        │    │  (DAP Clients) │
└─────────────────┘    └─────────────────┘    └─────────────────┘
                              │
                              ▼
                       ┌─────────────────┐
                       │  Event Ring     │
                       │  Buffer        │
                       └─────────────────┘
```

## Development Status

- **Specification**: ✅ Complete
- **Implementation Plan**: ✅ Complete
- **Tasks & Checklists**: ✅ Complete
- **Analysis**: ✅ Complete (9.2/10 rating)
- **Implementation**: 🚧 Phase 1 - Setup

## Quick Start (Alpha)

```bash
# Install dependencies
npm install

# Build the project
npm run build

# Run the MCP server
npm start

# Or run directly
npx dist/watchtower serve
```

## Alpha Release Goals

- [ ] Node.js debugging with breakpoints and stepping
- [ ] Python debugging with breakpoints and stepping
- [ ] Basic MCP tool coverage (dap.start, dap.setBreakpoints, etc.)
- [ ] Integration with Claude Code MCP configuration

## Requirements

- Windows 10/11
- Node.js 22 LTS
- Target language debug adapters (auto-detected)

## Constitution

This project operates under the [Watchtower Constitution](specs/001-dap-windows-debug/constitution.md) with principles including:

- **Windows-Native Focus**: No Linux/WSL support in v1
- **DAP as Single Source of Truth**: All debugging through DAP adapters
- **Minimal MCP Tool Surface**: Only essential tools exposed
- **Security-By-Default**: Redaction and validation active by default
- **Observability Foundation**: Comprehensive metrics and logging

## Project Structure

```
mcp-watchtower/
├── src/                    # TypeScript source code
│   ├── adapters/           # Language-specific adapters
│   ├── server/             # MCP server implementation
│   ├── transport/          # DAP transport layer
│   ├── tools/              # MCP tool implementations
│   └── types/              # TypeScript type definitions
├── tests/                  # Test files
│   ├── contract/           # Contract tests
│   ├── integration/        # Integration tests
│   └── unit/               # Unit tests
├── docs/                   # Documentation
├── specs/                  # Specification documents
└── dist/                   # Built JavaScript artifacts
```

## Quality Gates

The project includes comprehensive quality checklists for:

- ✅ **Requirements Validation**: 42 functional requirements validated
- ✅ **Quality Gates**: 60 validation items across all dimensions
- ✅ **Release Readiness**: 65 items tracking Alpha/Beta/GA milestones

## Implementation Phases

1. **Setup**: Project initialization and tooling
2. **Foundational**: Core infrastructure (transport, sessions, adapters)
3. **User Story 1**: Node.js + Python debugging (Alpha)
4. **User Story 2**: Multi-language support (Beta)
5. **User Story 3**: Remote attachment (Beta)
6. **Polish**: Documentation, samples, CI, hardening (GA)

## Contributing

This project follows the [implementation tasks](specs/001-dap-windows-debug/tasks.md) and [quality guidelines](specs/001-dap-windows-debug/checklists/).

## License

See LICENSE file.