项目简介

VSC-MCP(Visual Studio Code - Model Context Protocol)是一个MCP服务器,旨在将代码编辑器(如Visual Studio Code)的语言服务能力(Language Server Protocol, LSP)以及文件系统操作功能暴露给大型语言模型(LLM)。通过标准的Model Context Protocol (MCP),LLM客户端可以调用VSC-MCP提供的工具,实现对代码项目的编程化分析、编辑和理解。

该项目支持两种运行模式:

  1. 独立模式 (Standalone Mode): 仅为TypeScript/JavaScript提供基本的LSP支持。
  2. Docker模式 (Docker Mode): 利用无头版VS Code(OpenVSCode Server)在Docker容器中运行,通过VS Code扩展提供更丰富、支持多种语言的LSP功能,并允许通过浏览器查看代码编辑实时效果。

主要功能点

  • 代码分析: 通过LSP工具获取代码的诊断信息(错误、警告)、查找符号(函数、类等)、查找符号的引用。
  • 代码编辑: 通过LSP工具精确编辑代码中的特定符号(函数体、类定义等)。
  • 文件操作: 提供基本的读写文件、在文件中搜索并替换内容的功能。
  • 多语言支持: 在Docker模式下,支持VS Code及其扩展所支持的任何编程语言的LSP功能。
  • 安全性: 支持通过环境变量限制文件操作仅限于指定的目录。

安装步骤

要安装和运行VSC-MCP,您需要先安装 Docker 和 Bun。

  1. 克隆仓库:
    git clone https://github.com/thomasgazzoni/vsc-mcp.git
    cd vsc-mcp
  2. 安装Bun依赖:
    bun install
  3. (可选,用于Docker模式)构建并启动OpenVSCode Server: 将您的项目目录挂载到容器中。替换 '/path/to/your/project' 为您的实际项目路径。
    PROJECT_PATH=/path/to/your/project docker-compose up -d
    这将在后台启动VS Code服务器。

服务器配置

MCP服务器需要通过MCP客户端进行注册和连接。以下是典型的MCP客户端配置(通常是JSON格式文件的一部分,例如Claude Desktop的配置)。

要将VSC-MCP服务器添加到您的MCP客户端配置中,请添加以下条目:

{
  "mcpServers": {
    "vsc-mcp": {
      "command": "bun",
      "args": [
        "<vsc_mcp_cloned_dir>/src/index.ts"
      ],
      "env": {
        "USE_VSCODE_LSP": "true", // 设置为 "true" 启用Docker/VS Code LSP模式;设置为 "false" 或不设置则为独立模式。
        "LOG_DIR": "<vsc_mcp_cloned_dir>/logs", // 指定日志文件存放目录
        "ALLOWED_DIRECTORIES": "/path/to/your/project" // 允许文件操作的目录列表,多个目录用逗号分隔。替换为您的实际项目路径。
      }
    }
  }
}

请将 '<vsc_mcp_cloned_dir>' 替换为您克隆 'vsc-mcp' 仓库的实际路径,并将 'ALLOWED_DIRECTORIES' 中的路径替换为您的项目实际路径,以便工具可以访问您的文件。

基本使用方法

一旦VSC-MCP服务器在您的MCP客户端配置中注册并启动,您的LLM客户端(例如支持MCP的AI助手)就能够发现并使用该服务器提供的工具。LLM可以根据对话内容和需要,自动调用以下工具来与您的代码库进行交互:

  • 'read_file': 读取文件内容。
  • 'write_file': 创建或覆盖文件。
  • 'search_replace_file': 在文件中搜索并替换内容。
  • 'read_symbol': 读取代码符号(如函数、类)的内容。
  • 'edit_symbol': 编辑代码符号的内容。
  • 'get_errors': 获取文件的代码诊断信息(错误、警告)。
  • 'find_references': 查找代码符号的所有引用。

LLM会根据这些工具的能力来理解您的指令,并执行相应的代码操作和分析。

信息

分类

开发者工具