mcpField
V
VS Code MCP Server

VS Code MCP Server

本地服务
github.com/juehang开发工具39242 周前更新

关于 VS Code MCP Server

VS Code MCP Server 是一个 VS Code 扩展,把编辑器的文件、编辑、符号、诊断和终端能力通过 streamable HTTP 暴露给 Claude 等 MCP 客户端。它可以补充 Claude Code 等已有编码 Agent 的能力,而无需重复已有工具。

主要功能

  1. 01列出、读取、移动、重命名和复制工作区文件
  2. 02创建文件并替换指定行
  3. 03查询符号、文档大纲和符号定义
  4. 04获取错误与警告等诊断信息
  5. 05在集成终端中执行命令,可按类别启用工具

适用场景

  1. 01为 Claude Code 补充 VS Code 符号搜索和文档大纲
  2. 02在编辑后检查工作区诊断信息
  3. 03通过 MCP 客户端在 VS Code 工作区中执行构建或 git 命令

MCP 相关

该项目是 MCP 服务,以 streamable HTTP 方式在本地端口提供 VS Code 的文件、编辑、符号、诊断和终端工具,供 MCP 客户端连接。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"vscode": {
"command": "npx",
"args": [
"-y",
"mcp-remote"
]
}
}
}
启动命令npx -y mcp-remote

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npmmcp-remote

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

VS Code MCP 服务

一个 Visual Studio Code 扩展(可在 Marketplace 获取),可让 Claude 和其他 MCP 客户端直接在 VS Code 中编写代码!本扩展受到 Serena 启发,但使用的是 VS Code 内置功能。非常适合为 Claude Code 等现有编码 Agent 添加 VS Code 专属功能(符号搜索、文档大纲),而无需重复提供它们已有的工具。请注意,此扩展使用可流式传输的 HTTP API,而不是 SSE API。

此扩展可以执行 Shell 命令。这意味着存在潜在的安全风险,因此请谨慎使用,并确保信任所使用的 MCP 客户端,且端口未暴露给任何对象。目前 MCP 身份验证规范仍在变动,因此尚未实现身份验证功能。

欢迎提交 PR!

演示视频

https://github.com/user-attachments/assets/20b87dfb-fc39-4710-a910-b9481dde1e90

安装

  1. 从 Marketplace 安装扩展,或克隆此仓库并运行 npm install 和 npm run compile 进行构建。

Claude Desktop 配置

可以将 Claude Desktop 配置为使用此扩展作为 MCP 服务。为此,你的 claude_desktop_config.json 文件应如下所示:

{
  "mcpServers": {
    "vscode-mcp-server": {
        "command": "npx",
        "args": ["mcp-remote@next", "http://localhost:3000/mcp"]
    }

  }
}

我也喜欢在 Claude 项目中使用此扩展,因为这样可以为 Claude 指定额外的指令。我发现以下提示词效果不错:

You are working on an existing codebase, which you can access using your tools. These code tools interact with a VS Code workspace.

WORKFLOW ESSENTIALS:
1. Always start exploration with list_files_code on root directory (.) first
2. CRITICAL: Run get_diagnostics_code after EVERY set of code changes before completing tasks
3. For small edits (≤10 lines): use replace_lines_code with exact original content
4. For large changes, new files, or uncertain content: use create_file_code with overwrite=true

EXPLORATION STRATEGY:
- Start: list_files_code with path='.' (never recursive on root)
- Understand structure: read key files like package.json, README, main entry points
- Find symbols: use search_symbols_code for functions/classes, get_document_symbols_code for file overviews
- Before editing: read_file_code the target file to understand current content

EDITING BEST PRACTICES:
- Small modifications: replace_lines_code (requires exact original content match)
- If replace_lines_code fails: read_file_code the target lines, then retry with correct content
- Large changes: create_file_code with overwrite=true is more reliable
- After any changes: get_diagnostics_code to check for errors

PLANNING REQUIREMENTS:
Before making code modifications, present a comprehensive plan including:
- Confidence level (1-10) and reasoning
- Specific tools you'll use and why
- Files you'll modify and approach (small edits vs complete rewrites)
- How you'll verify the changes work (diagnostics, testing, etc.)

ERROR HANDLING:
- Let errors happen naturally - don't add unnecessary try/catch blocks
- For tool failures: follow the specific recovery guidance in each tool's description
- If uncertain about file content: use read_file_code to verify before making changes

APPROVAL PROCESS:
IMPORTANT: Only run code modification tools after presenting a plan and receiving explicit approval. Each change requires separate approval.

Do not add tests unless specifically requested. If you believe testing is important, explain why and let the user decide.

为了在探索代码库时提高上下文利用效率,可以将以下内容添加到 CLAUDE.md:

## VS Code Symbol Tools for Context Efficiency
Use VS Code symbol tools to reduce context consumption:
- `get_document_symbols_code` for file structure overview instead of reading entire files
- `search_symbols_code` to find symbols by name across the project
- `get_symbol_definition_code` for type info and docs without full file context
- Workflow: get outline → search symbols → get definitions → read implementation only when needed

此扩展作为 Model Context Protocol(MCP)服务,向 MCP 客户端提供 VS Code 的文件系统和编辑功能。

功能

VS Code MCP Server 扩展实现了一个符合 MCP 标准的服务,可让 AI 模型和其他 MCP 客户端:

  • 列出文件和目录:列出 VS Code 工作区中的文件和目录
  • 读取文件内容:支持编码格式和大小限制
  • 移动文件和目录:正确重构导入内容
  • 重命名文件和目录:自动更新引用
  • 复制文件:将文件复制到新位置(仅限文件,不支持目录)
  • 搜索符号:在工作区中搜索符号
  • 获取符号定义:按行和符号名称获取符号定义及悬停信息
  • 创建新文件:使用 VS Code 的 WorkspaceEdit API
  • 替换文件中的行
  • 检查诊断信息:检查工作区中的错误和警告
  • 执行 Shell 命令:在集成终端中通过 Shell 集成执行
  • 切换服务状态:通过状态栏项开启或关闭服务

此扩展使 AI 助手和其他工具能够通过标准化的 MCP 协议与 VS Code 工作区交互。

工作原理

此扩展会创建一个 MCP 服务,该服务:

  1. 在可配置的端口上本地运行(启用时)
  2. 通过 HTTP 处理 MCP 协议请求
  3. 将 VS Code 功能作为 MCP 工具提供
  4. 显示服务状态指示器,可点击以开启或关闭服务

支持的 MCP 工具

文件工具
  • list_files_code:列出工作区中的文件和目录

    • 参数:
      • path:要列出文件的路径
      • recursive(可选):是否递归列出文件
  • read_file_code:读取文件内容

    • 参数:
      • path:要读取的文件路径
      • encoding(可选):文件编码(默认值:utf-8)
      • maxCharacters(可选):最大字符数(默认值:100,000)
  • move_file_code:使用 VS Code 的 WorkspaceEdit API 将文件或目录移动到新位置

    • 参数:
      • sourcePath:要移动的文件或目录的当前路径
      • targetPath:要将文件或目录移动到的新路径
      • overwrite(可选):目标已存在时是否覆盖(默认值:false)
  • rename_file_code:使用 VS Code 的 WorkspaceEdit API 重命名文件或目录

    • 参数:
      • filePath:要重命名的文件或目录的当前路径
      • newName:文件或目录的新名称
      • overwrite(可选):具有新名称的文件已存在时是否覆盖(默认值:false)
  • copy_file_code:使用 VS Code 的文件系统 API 将文件复制到新位置

    • 参数:
      • sourcePath:要复制的文件路径
      • targetPath:要创建副本的路径
      • overwrite(可选):目标已存在时是否覆盖(默认值:false)
编辑工具
  • 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:要在指定行查找的符号名称

    此工具提供:

    • 符号的类型信息、文档和源代码详情
    • 显示符号所在行的代码上下文
    • 符号范围信息

    特别适用于:

    • 无需跳转即可了解符号的含义
    • 查看函数签名、类型定义或文档
    • 快速查阅 API 或库函数
  • get_document_symbols_code:获取文件中所有符号的大纲,展示其层级结构

    • 参数:
      • path:要分析的文件路径(相对于工作区)
      • maxDepth(可选):要显示的最大嵌套深度

    此工具提供:

    • 文档的完整符号树(类似于 VS Code 的大纲视图)
    • 显示类、函数、方法、变量等的层级结构
    • 每个符号的位置信息和类型
    • 按符号类型统计的摘要

    特别适用于:

    • 快速了解文件结构和组织方式
    • 概览文档中的所有符号
    • 分析代码架构和关系
    • 查找文件中特定类型的所有符号
Shell 工具
  • execute_shell_command_code:在 VS Code 集成终端中通过 Shell 集成执行 Shell 命令

    • 参数:
      • command:要执行的 Shell 命令
      • cwd(可选):命令的可选工作目录(默认值:'.')

    此工具适用于:

    • 运行 CLI 命令和构建操作
    • 执行 git 命令
    • 执行任何需要访问终端的 Shell 操作
    • 获取命令输出,以便分析和进一步处理

注意事项/TODO

目前仅支持一个工作区。此扩展也仅在本地运行,以避免将 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:配置启用的工具类别(file、edit、shell、diagnostics、symbol)

选择性工具配置:适用于已具备某些功能的编码 Agent。例如,使用 Claude Code 时,你可以禁用文件/编辑工具,只启用符号工具,以增加 VS Code 特有的符号搜索功能,避免工具重复。

与 MCP 客户端搭配使用

要将 MCP 客户端连接到此服务,请将其配置为使用:

http://localhost:3000/mcp

或者,如果你配置了自定义主机:

http://[your-host]:3000/mcp

请记住,必须先点击状态栏项目启用服务!

贡献

欢迎贡献!欢迎提交问题或拉取请求。

许可证

MIT

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。