这是一个Visual Studio Code扩展(可在市场上找到),它允许Claude和其他MCP客户端直接在VS Code中编写代码!灵感来自Serena,但使用了VS Code内置的功能。非常适合通过添加VS Code特定功能(如符号搜索、文档大纲)来扩展现有的编码代理(如Claude Code),而无需重复它们已有的工具。请注意,此扩展使用流式HTTP API,而不是SSE API。
此扩展可以执行shell命令。这意味着存在潜在的安全风险,因此请谨慎使用,并确保您信任正在使用的MCP客户端且端口未暴露给任何网络。认证会有帮助,但由于MCP认证规范仍在变动中,目前尚未实现。
欢迎提交PR!
https://github.com/user-attachments/assets/20b87dfb-fc39-4710-a910-b9481dde1e90
npm install和npm run compile以构建它。Claude Desktop可以配置为使用此扩展作为MCP服务器。为此,您的claude_desktop_config.json文件应如下所示:
{
"mcpServers": {
"vscode-mcp-server": {
"command": "npx",
"args": ["mcp-remote@next", "http://localhost:3000/mcp"]
}
}
}
我还喜欢在Claude项目中使用此扩展,因为它允许我为Claude指定额外的指令。我发现以下提示效果很好:
您正在处理一个现有代码库,可以通过您的工具访问它。这些代码工具与VS Code工作区交互。
工作流程要点:
1. 总是首先在根目录(.)上使用list_files_code开始探索
2. 关键:在完成任务前对每组代码更改运行get_diagnostics_code
3. 对于小编辑(≤10行):使用replace_lines_code并提供确切的原始内容
4. 对于大改动、新文件或不确定的内容:使用create_file_code并设置overwrite=true
探索策略:
- 开始:使用path='.'的list_files_code(根目录永不递归)
- 理解结构:阅读关键文件如package.json、README、主要入口点
- 查找符号:使用search_symbols_code查找函数/类,使用get_document_symbols_code获取文件概述
- 编辑前:读取目标文件以了解当前内容
编辑最佳实践:
- 小修改:使用replace_lines_code(需要精确匹配原始内容)
- 如果replace_lines_code失败:读取目标行,然后使用正确的内容重试
- 大改动:使用create_file_code并设置overwrite=true更可靠
- 任何改动后:使用get_diagnostics_code检查错误
规划要求:
在进行代码修改之前,提出一个全面的计划,包括:
- 自信程度(1-10)及理由
- 将要使用的具体工具及其原因
- 将要修改的文件及方法(小编辑 vs 完全重写)
- 如何验证更改是否有效(诊断、测试等)
错误处理:
- 让错误自然发生 - 不要添加不必要的try/catch块
- 对于工具故障:遵循每个工具描述中的特定恢复指导
- 如果对文件内容不确定:使用read_file_code验证后再做更改
审批过程:
重要:只有在提出计划并获得明确批准后才能运行代码修改工具。每次更改都需要单独批准。
除非特别请求,否则不要添加测试。如果您认为测试很重要,请解释原因并让用户决定。
为了提高探索代码库时的上下文效率,考虑在您的CLAUDE.md中添加以下内容:
## VS Code 符号工具以提高上下文效率
使用VS Code符号工具减少上下文消耗:
- 使用`get_document_symbols_code`获取文件结构概述,而非阅读整个文件
- 使用`search_symbols_code`按名称在整个项目中查找符号
- 使用`get_symbol_definition_code`获取类型信息和文档,无需完整的文件上下文
- 工作流程:获取大纲 → 搜索符号 → 获取定义 → 只在必要时阅读实现
此扩展充当模型上下文协议(MCP)服务器,向MCP客户端公开VS Code的文件系统和编辑能力。
VS Code MCP Server扩展实现了符合MCP标准的服务器,允许AI模型和其他MCP客户端:
此扩展使AI助手和其他工具能够通过标准化的MCP协议与您的VS Code工作区交互。
该扩展创建了一个MCP服务器,该服务器:
list_files_code: 列出工作区中的文件和目录
path: 列出文件的路径recursive(可选): 是否递归列出文件read_file_code: 读取文件内容
path: 要读取的文件路径encoding(可选): 文件编码(默认:utf-8)maxCharacters(可选): 最大字符数(默认:100,000)create_file_code: 使用VS Code的WorkspaceEdit API创建新文件
path: 要创建的文件路径content: 写入文件的内容overwrite(可选): 如果文件存在是否覆盖(默认:false)ignoreIfExists(可选): 如果文件存在是否忽略(默认:false)replace_lines_code: 替换文件中的特定行
path: 要修改的文件路径startLine: 起始行号(1开始,包含)endLine: 结束行号(1开始,包含)content: 用于替换行的新内容originalCode: 验证用的原始代码get_diagnostics_code: 检查工作区中的警告和错误
path(可选): 要检查的文件路径(如果未提供,则检查整个工作区)severities(可选): 包含的严重性级别数组(0=错误,1=警告,2=信息,3=提示)。默认:[0, 1]format(可选): 输出格式('text' 或 'json')。默认:'text'includeSource(可选): 是否包含诊断来源。默认:true此工具特别适用于:
search_symbols_code: 在工作区中搜索符号
query: 符号名称的搜索查询maxResults(可选): 返回的最大结果数(默认:10)此工具适用于:
get_symbol_definition_code: 获取文件中符号的定义信息
path: 包含符号的文件路径line: 符号所在的行号symbol: 要查找的符号名称此工具提供:
特别适用于:
get_document_symbols_code: 获取文件中所有符号的概览,展示层次结构
path: 要分析的文件路径(相对于工作区)maxDepth(可选): 显示的最大嵌套深度此工具提供:
特别适用于:
execute_shell_command_code: 在VS Code集成终端中执行shell命令,具有shell集成
command: 要执行的shell命令cwd(可选): 命令的工作目录(默认:'.')此工具适用于:
目前仅支持一个工作区。此扩展也仅限本地使用,以避免将您的VS Code实例暴露到您可能连接的任何网络。
vscode-mcp-server.port: MCP服务器的端口号(默认:3000)vscode-mcp-server.host: MCP服务器的主机地址(默认:127.0.0.1)vscode-mcp-server.defaultEnabled: 是否在VS Code启动时默认启用MCP服务器vscode-mcp-server.enabledTools: 配置启用哪些工具类别(文件、编辑、shell、诊断、符号)选择性工具配置:对于已经具备某些功能的编码代理非常有用。例如,在Claude Code中,您可以禁用文件/编辑工具,只启用符号工具,以添加VS Code特定的符号搜索而不重复工具。
要将MCP客户端连接到此服务器,请配置它们使用:
http://localhost:3000/mcp
或者,如果您配置了自定义主机:
http://[您的主机]:3000/mcp
请记住,您需要先通过点击状态栏项启用服务器!
欢迎贡献!请随意提交问题或拉取请求。