VS Code MCP Server
一个 Visual Studio Code 扩展(可在 Marketplace 获取),允许 Claude 和其他 MCP 客户端直接在 VS Code 中编写代码!灵感来源于 Serena,但利用了 VS Code 的内置功能。目前比 Serena 简单得多,但它确实有效!请注意,此扩展使用的是可流式传输的 HTTP API,而不是 SSE API。
此扩展允许执行 shell 命令。这意味着存在潜在的安全风险,因此请谨慎使用,并确保您信任所使用的 MCP 客户端,且端口未暴露给任何外部网络。身份验证会有所帮助,但由于 MCP 身份验证规范仍在变化中,目前尚未实现。
欢迎提交 PR(Pull Request)!
演示视频
安装
- 从 Marketplace 安装扩展,或克隆此仓库并运行
npm install
和npm run compile
来构建它。
Claude Desktop 配置
Claude Desktop 可以配置为使用此扩展作为 MCP 服务器。为此,您的
claude_desktop_config.json
文件应如下所示:我也喜欢在 Claude 项目中使用此扩展,因为它允许我为 Claude 指定额外的指令。我发现以下提示效果很好:
此扩展充当模型上下文协议(MCP)服务器,将 VS Code 的文件系统和编辑功能暴露给 MCP 客户端。
功能
VS Code MCP Server 扩展实现了一个符合 MCP 的服务器,允许 AI 模型和其他 MCP 客户端:
- 列出文件和目录:在您的 VS Code 工作区中
- 读取文件内容:支持编码和大小限制
- 搜索符号:在整个工作区中
- 获取符号定义:通过行号和符号名称获取悬停信息
- 创建新文件:使用 VS Code 的 WorkspaceEdit API
- 替换行:在文件中
- 检查诊断信息:在工作区中查找错误和警告
- 执行 shell 命令:在集成终端中执行,支持 shell 集成
- 切换服务器:通过状态栏项开启或关闭
此扩展使 AI 助手和其他工具能够通过标准化的 MCP 协议与您的 VS Code 工作区交互。
工作原理
该扩展创建了一个 MCP 服务器,它:
- 在可配置的端口上本地运行(启用时)
- 通过 HTTP 处理 MCP 协议请求
- 将 VS Code 的功能暴露为 MCP 工具
- 提供一个状态栏指示器,显示服务器状态,可点击以切换服务器开关
支持的 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
:起始行号(从 0 开始,包含)endLine
:结束行号(从 0 开始,包含)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
:符号的行号(从 0 开始)symbol
:在指定行上查找的符号名称- 符号的类型信息、文档和来源详情
- 显示符号所在行的代码上下文
- 符号范围信息
- 在不导航的情况下理解符号的含义
- 检查函数签名、类型定义或文档
- 快速参考 API 或库函数
此工具提供:
它特别适用于:
Shell 工具
- execute_shell_command_code:在 VS Code 集成终端中执行 shell 命令,支持 shell 集成
- 参数:
command
:要执行的 shell 命令cwd
(可选):命令的可选工作目录(默认:'.')- 运行 CLI 命令和构建操作
- 执行 git 命令
- 执行任何需要终端访问的 shell 操作
- 获取命令输出以进行分析和进一步处理
此工具适用于:
注意事项/TODO
目前仅支持一个工作区。该扩展也仅在本地运行,以避免将您的 VS Code 实例暴露给任何可能连接的网络。
扩展设置
此扩展提供了以下设置:
vscode-mcp-server.port
:MCP 服务器的端口号(默认:3000)
与 MCP 客户端一起使用
要将 MCP 客户端连接到此服务器,请将它们配置为使用:
请记住,您需要先通过点击状态栏项来启用服务器!
贡献
欢迎贡献!请随时提交问题或拉取请求。
许可证
MIT
- Author:waytomcp
- URL:https://www.waytomcp.com/article/juehang/vscode-mcp-server
- Copyright:All articles in this blog, except for special statements, adopt BY-NC-SA agreement. Please indicate the source!