Code MCP Server
# VSCode MCP
This monorepo contains the VSCode MCP Server and its companion VSCode Extension, which together enable AI agents and assistants, like Goose or Claude, to interact with VSCode through the Model Context Protocol.
## Project Structure
```
vscode-mcp/
├── server/ # MCP server implementation
└── extension/ # VS Code extension
```
## Quick Start
1. Install the MCP Server
```bash
npx vscode-mcp-server install
```
2. Install the MCP Extension
> [MCP Extension](https://marketplace.visualstudio.com/items?itemName=block.vscode-mcp-extension)
## Configuration
### Goose Desktop Setup

- ID: `code-mcp`
- Name: `VS Code`
- Description: `Allows interaction with VS Code through the Model Context Protocol`
- Command: `npx vscode-mcp-server`
### Claude Desktop Setup
Add this to your Claude Desktop config file (`~/Library/Application Support/Claude/claude_desktop_config.json`):
```json
{
"mcpServers": {
"vscode-mcp-server": {
"command": "npx",
"args": ["vscode-mcp-server"],
"env": {}
}
}
}
```
## Available Tools
The Code MCP server provides the following tools for AI agents to interact with VS Code:
### `create_diff`
Creates and shows a diff for modifying existing files:
- Shows changes preview before applying
- Requires user approval
- Only works with existing files
### `open_file`
Opens files in the VS Code editor:
- Used for viewing new or modified files
### `open_project`
Opens a project folder in VS Code:
- Sets up working directory for AI agent
### `check_extension_status`
Checks if extension is installed and responding
### `get_extension_port`
Gets the port number for VS Code MCP Extension
### `list_available_projects`
Shows projects from port registry file
## License
This project is licensed under the Apache License 2.0 - see the [LICENSE](LICENSE) file for details.
Copyright 2025 Block, Inc.
This product includes software developed at [Block, Inc.](https://block.xyz/)
TDQS
Scored across 73 tools
Multiple tools have overlapping purposes, causing ambiguity. For example, 'git_diff' and 'enhanced_git_diff' both show git differences, 'preview_changes' and 'preview_changes_enhanced' both preview changes, and 'get_current_session' and 'get_session_info' appear to retrieve the same information. Tools like 'run_command', 'secure_run_command', and 'secure_run_command_sequence' also have unclear boundaries, making it difficult for an agent to choose the right one without trial and error.
Most tools follow a consistent verb_noun or verb_adjective_noun pattern (e.g., 'create_directory', 'analyze_code', 'docker_build'), with clear and descriptive names. However, there are minor deviations, such as 'npm_command' and 'pip_install' using different naming styles, and some redundancy in names like 'git_diff' vs. 'enhanced_git_diff', but overall the naming is readable and predictable.
With 73 tools, the count is excessive for a code-focused server, leading to bloat and potential confusion. Many tools could be consolidated (e.g., multiple Docker tools, redundant git and preview tools) without losing functionality. This large number suggests poor scoping and makes the toolset overwhelming for agents to navigate effectively.
The toolset provides comprehensive coverage for code development, including file operations, git management, Docker containerization, dependency installation, and session tracking. It supports full CRUD/lifecycle operations across these domains, with no obvious gaps. Agents can perform end-to-end workflows from project creation to deployment and cleanup.