Skip to main content
Glama
aditya-613

vs-code-mcp-server

by aditya-613
README.md
# VS Code MCP Server

A comprehensive Model Context Protocol (MCP) server designed to provide AI assistants with powerful VS Code integration capabilities, offering 29 specialized tools for file operations, command execution, project analysis, and development workflow automation.

## šŸš€ Features

- **šŸ“ File Operations**: Complete file and directory management (8 tools)
- **⚔ Advanced File Editing**: Precise line-level editing with validation (6 tools)
- **šŸ–„ļø Command Execution**: System command execution and process management (8 tools)
- **šŸ“Š Project Analysis**: Codebase insights and dependency discovery (3 tools)
- **šŸ” VS Code Integration**: Symbol search, definitions, and diagnostics (4 tools)

## šŸ“¦ Installation

### Prerequisites

- Node.js 18.0.0 or higher
- Claude Desktop (or any MCP-compatible client)

### Setup

1. **Clone the repository:**
   ```bash
   git clone <your-repo-url>
   cd vs-code-mcp-server
   ```

2. **Install dependencies:**
   ```bash
   npm install
   ```

3. **Build the server:**
   ```bash
   npm run build
   ```

### Configuration

Add the server to your MCP client configuration. For Claude Desktop, edit the config file:

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

```json
{
  "mcpServers": {
    "vs-code-mcp-server": {
      "command": "node",
      "args": ["/path/to/your/vs-code-mcp-server/dist/index.js"],
      "env": {}
    }
  }
}
```

> **Note:** Replace `/path/to/your/vs-code-mcp-server` with the actual path to your cloned repository.

## šŸ› ļø Available Tools

### šŸ“ File Operations (8 tools)

| Tool | Description |
|------|-------------|
| `list_files_code` | List files and directories with optional recursive listing |
| `read_file_code` | Read file contents with encoding and line range options |
| `create_file_code` | Create new files with overwrite protection |
| `delete_file_code` | Delete files and directories with recursive options |
| `copy_file_code` | Copy files and directories to new locations |
| `move_file_code` | Move or rename files and directories |
| `create_directory_code` | Create directories with recursive parent creation |
| `search_files_code` | Search for text patterns across files with regex support |

### ⚔ Advanced File Operations (6 tools)

| Tool | Description |
|------|-------------|
| `replace_lines_code` | Replace specific lines with content validation |
| `insert_lines_code` | Insert content at specific line positions |
| `delete_lines_code` | Delete specific line ranges from files |
| `append_to_file_code` | Append content to file end |
| `prepend_to_file_code` | Prepend content to file beginning |
| `find_and_replace_code` | Advanced find/replace with regex support |

### šŸ–„ļø Command Execution (8 tools)

| Tool | Description |
|------|-------------|
| `execute_shell_command_code` | Execute shell commands with timeout control |
| `execute_streaming_command_code` | Execute commands with real-time output streaming |
| `kill_process_code` | Kill processes by PID or name |
| `list_processes_code` | List running processes with filtering |
| `kill_all_processes_code` | Kill multiple processes matching patterns |
| `check_command_code` | Check command availability on system |
| `get_system_info_code` | Get comprehensive system information |
| `run_script_code` | Execute script files with appropriate interpreters |

### šŸ“Š Project Analysis (3 tools)

| Tool | Description |
|------|-------------|
| `analyze_project` | Analyze project structure and provide insights |
| `get_project_stats` | Get detailed codebase statistics |
| `find_dependencies` | Discover and analyze project dependencies |

### šŸ” VS Code Integration (4 tools)

| Tool | Description |
|------|-------------|
| `search_symbols_code` | Search for symbols across workspace with fuzzy matching |
| `get_symbol_definition_code` | Get symbol definitions with type information |
| `get_document_symbols_code` | Get hierarchical symbol outline for files |
| `get_diagnostics_code` | Analyze code for errors and warnings |

## šŸ”§ Development

### Scripts

- `npm run build` - Build the TypeScript source
- `npm run start` - Start the MCP server
- `npm run dev` - Build and start in development mode
- `npm run watch` - Watch for changes and rebuild automatically
- `npm run test` - Run the test suite

### Project Structure

```
src/
ā”œā”€ā”€ index.ts              # Main server implementation
ā”œā”€ā”€ tools/                # Tool definitions and handlers
│   ā”œā”€ā”€ file-tools.ts     # Basic file operations
│   ā”œā”€ā”€ advanced-file-tools.ts # Advanced file editing
│   ā”œā”€ā”€ command-tools.ts  # Command execution
│   ā”œā”€ā”€ project-tools.ts  # Project analysis
│   └── vscode-integration-tools.ts # VS Code features
ā”œā”€ā”€ types/                # TypeScript type definitions
ā”œā”€ā”€ utils/                # Utility functions
│   ā”œā”€ā”€ file-utils.ts     # File operation utilities
│   ā”œā”€ā”€ command-utils.ts  # Command execution utilities
│   ā”œā”€ā”€ file-watcher.ts   # File watching capabilities
│   └── logger.ts         # Logging utilities
```

## šŸ”’ Security

This MCP server is designed for defensive development tasks only. It includes:

- Input validation and sanitization
- Safe file operation boundaries
- Process execution controls
- Error handling and logging

## šŸ¤ Contributing

1. Fork the repository
2. Create a feature branch (`git checkout -b feature/amazing-feature`)
3. Commit your changes (`git commit -m 'Add amazing feature'`)
4. Push to the branch (`git push origin feature/amazing-feature`)
5. Open a Pull Request

## šŸ“ License

This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.

## šŸ› Issues & Support

If you encounter any issues or have questions:

1. Check the [Issues](../../issues) section
2. Create a new issue with detailed information
3. Include error logs and configuration details

## šŸ™ Acknowledgments

- Built with the [Model Context Protocol SDK](https://github.com/modelcontextprotocol/typescript-sdk)
- Designed for integration with [Claude Desktop](https://claude.ai/)
- Supports VS Code development workflows

TDQS

B3/5.0

Scored across 29 tools

Disambiguation4/5

Most tools have clearly distinct purposes, such as file operations versus process management. However, execute_shell_command_code and execute_streaming_command_code are similar, and several file editing tools (replace_lines, insert_lines, find_and_replace) could be confused despite their specific descriptions.

Naming Consistency3/5

The majority of tools follow a verb_noun_code pattern (e.g., list_files_code, read_file_code). However, a few tools omit the '_code' suffix (analyze_project, get_project_stats, find_dependencies), creating inconsistency in the naming convention.

Tool Count2/5

With 29 tools, the server pushes beyond the typical upper bound for a well-scoped toolset. The breadth of file, code analysis, and system operations justifies a large surface, but the count feels excessive and could overwhelm agents.

Completeness4/5

The toolset provides comprehensive coverage for file operations (create, read, update, delete, search) and code analysis (symbols, diagnostics, project insights). Minor gaps exist, such as no direct tool to inspect file metadata or manage editor tabs, but these are not critical for the domain.

Maintenance

ActivityInactive
ResponsivenessNo issues