vs-code-mcp-server
# 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
Scored across 29 tools
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.
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.
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.
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.