项目简介

这是一个专为VS Code远程开发环境设计的 Model Context Protocol (MCP) 服务器。它允许兼容MCP协议的AI助手或其他客户端,通过标准化的JSON-RPC接口与远程的VS Code实例及其工作区进行交互,提供上下文信息和执行开发相关任务。

主要功能点

  • 代码分析: 分析代码文件的结构、复杂度、指标和潜在问题。
  • 代码搜索: 在代码文件中搜索特定模式,返回匹配结果及上下文。
  • 代码修改: 执行添加、更新、移除、替换等操作来修改代码文件内容。
  • VS Code实例管理: 部署、列出、停止基于Docker的VS Code远程实例,支持安全的Web UI访问。
  • VS Code集群管理: 部署和管理多个VS Code实例组成的协作集群。
  • 资源管理: 管理与VS Code实例或任务关联的计算资源。
  • 安全访问控制: 支持基于令牌的认证和安全的密码处理。
  • 多传输协议: 支持通过Stdio (标准输入/输出) 或 WebSocket 进行通信。

安装步骤

您可以通过 npm 或 npx 来安装和使用这个软件包。

  1. 使用 npx (无需安装): 直接通过 'npx vsc-remote <命令>' 来运行。

    npx vsc-remote start
  2. 全局安装: 使用 npm 全局安装软件包。

    npm install -g vsc-remote
    vsc-remote start

MCP服务器配置 (供MCP客户端参考)

MCP客户端需要知道如何启动此服务器进程并与之通信。以下是客户端配置中可能需要的关键信息:

  • 服务器名称 (serverName): MCP服务器在发现阶段声明的唯一名称。
    • 'sparc2-mcp'
  • 启动命令 (command): 用于启动服务器进程的命令。
    • 'npx' (如果您使用 npx 方式运行) 或 'vsc-remote' (如果您已全局安装)
  • 命令参数 (args): 传递给启动命令的参数。
    • 启动服务器的参数通常是 '["vsc-remote", "start"]' (使用默认的Stdio模式)。
    • 如果您想使用 WebSocket 模式,参数可能是 '["vsc-remote", "start", "--mode", "websocket", "--port", "3001"]'。
    • 其他可选参数如 '--debug', '--token <您的令牌>', '--generate-token' 等也可根据需要添加。

典型的MCP客户端配置片段可能如下所示(JSON格式,仅为说明目的,请勿直接使用):

{
  "name": "VSCode Remote MCP",
  "serverName": "sparc2-mcp",
  "description": "Provides access to VSCode remote development environment.",
  "connection": {
    "type": "stdio", // 或 "websocket"
    "command": "npx",
    "args": ["vsc-remote", "start", "--mode", "stdio"]
    // 如果是 websocket:
    // "args": ["vsc-remote", "start", "--mode", "websocket", "--port", "3001"],
    // "url": "ws://localhost:3001"
  },
  "capabilities": {
    // 客户端从服务器发现这些能力
  }
}

客户端将根据这些配置信息启动服务器进程并建立连接,然后通过MCP协议进行交互。

基本使用方法

这个软件包主要是作为一个后台服务器运行,供AI助手等客户端程序调用。典型的交互流程如下:

  1. AI助手(MCP客户端)通过Stdio或WebSocket与服务器建立连接。
  2. 客户端发送 'mcp.initialize' 请求,服务器返回其能力声明(包括支持的工具)。
  3. 客户端发送 'mcp.listTools' 请求,获取详细的工具列表和输入/输出Schema。
  4. 客户端根据需要发送 'mcp.callTool' 请求,调用特定的工具并提供参数(例如,调用 'analyze_code' 工具分析文件,或调用 'deploy_vscode_instance' 工具启动一个VS Code实例)。
  5. 服务器执行工具任务,并通过 'mcp.callTool' 的响应返回结果。
  6. 客户端和服务器可以根据协议定义交换其他消息(如心跳、错误通知等)。

您也可以直接使用命令行工具体验部分功能:

  • 分析代码文件: 'npx vsc-remote analyze-code src/index.js'
  • 搜索代码: 'npx vsc-remote search-code "function" --directory src'
  • 部署VS Code实例: 'npx vsc-remote deploy-vscode-instance --name my-dev-box --workspace-path /path/to/your/code'

更多高级用法和详细的API文档(供客户端开发者参考)请查阅项目的官方文档。

信息

分类

开发者工具