# CCW MCP Server

The CCW MCP Server exposes CCW tools through the Model Context Protocol, allowing Claude Desktop and other MCP clients to access CCW functionality.

## Installation

1. Install CCW globally or link it locally:
```bash
npm install -g ccw
# or
npm link
```

2. The MCP server executable is available as `ccw-mcp`.

## Configuration

### Claude Desktop Configuration

Add this to your Claude Desktop MCP settings file:

**macOS**: `~/Library/Application Support/Claude/claude_desktop_config.json`
**Windows**: `%APPDATA%\Claude\claude_desktop_config.json`

```json
{
  "mcpServers": {
    "ccw-tools": {
      "command": "ccw-mcp",
      "args": []
    }
  }
}
```

If CCW is not installed globally, use the full path:

```json
{
  "mcpServers": {
    "ccw-tools": {
      "command": "node",
      "args": ["/full/path/to/ccw/bin/ccw-mcp.js"]
    }
  }
}
```

### Restart Claude Desktop

After updating the configuration, restart Claude Desktop for the changes to take effect.

## Available Tools

The MCP server exposes the following CCW tools:

### File Operations
- **edit_file** - Edit files with update or line mode
- **write_file** - Create or overwrite files

### Code Analysis
- **smart_search** - Intelligent code search with hybrid/exact/ripgrep modes
- **get_modules_by_depth** - Get module hierarchy by depth
- **classify_folders** - Classify project folders
- **detect_changed_modules** - Detect modules with git changes

### Session Management
- **session_manager** - Manage workflow sessions

### UI/Design Tools
- **discover_design_files** - Find design-related files
- **ui_generate_preview** - Generate UI previews
- **ui_instantiate_prototypes** - Create UI prototypes
- **convert_tokens_to_css** - Convert design tokens to CSS

### Documentation
- **generate_module_docs** - Generate module documentation
- **update_module_claude** - Update CLAUDE.md files

### CLI Execution
- **cli_executor** - Execute CLI commands through CCW

## Usage in Claude Desktop

Once configured, you can use CCW tools directly in Claude Desktop conversations:

```
Can you use edit_file to update the header in README.md?

Use smart_search to find authentication logic: smart_search(query="authentication")

Get the module structure with get_modules_by_depth
```

## Testing the Server

You can test the MCP server is working by checking the logs in Claude Desktop:

1. Open Claude Desktop
2. Check Developer Tools (Help → Developer Tools)
3. Look for `ccw-tools v6.1.4 started` message
4. Check Console for any errors

## Troubleshooting

### Server not starting
- Verify `ccw-mcp` is in your PATH or use full path in config
- Check Node.js version (requires >= 16.0.0)
- Look for errors in Claude Desktop Developer Tools

### Tools not appearing
- Restart Claude Desktop after configuration changes
- Verify JSON syntax in configuration file
- Check server logs for initialization errors

### Tool execution errors
- Ensure you have proper file permissions
- Check tool parameters match expected schema
- Review error messages in tool responses

## Development

To modify or extend the MCP server:

1. Edit `ccw/src/mcp-server/index.js` for server logic
2. Add/modify tools in `ccw/src/tools/`
3. Register new tools in `ccw/src/tools/index.js`
4. Restart the server (restart Claude Desktop)

## Architecture

The MCP server follows this structure:

```
ccw/
├── bin/
│   └── ccw-mcp.js          # Executable entry point
├── src/
│   ├── mcp-server/
│   │   └── index.js        # MCP server implementation
│   └── tools/
│       ├── index.js        # Tool registry
│       ├── edit-file.js    # Individual tool implementations
│       ├── write-file.js
│       └── ...
```

The server uses the `@modelcontextprotocol/sdk` to implement the MCP protocol over stdio transport.
