返回市场
虚拟机-claude

虚拟机-claude

作者:badlogic40 星标更新:2025-08-12

项目介绍

VS Claude

一个集成MCP服务器的VS Code扩展,允许像Claude这样的MCP客户端与Visual Studio Code进行交互。

主要特性

  • 智能文件操作 - 在VS Code中打开文件、差异比较和Git比较
  • 批量操作 - 同时打开多个文件以提高工作效率
  • Git集成 - 查看不同文件版本之间的Git差异
  • 行高亮 - 跳转到特定行或高亮显示行范围

概览

VS Claude提供了一个简单的工具,使AI助手能够通过MCP(模型上下文协议)接口在VS Code中打开文件和差异。

导航工具

open - 在VS Code中打开文件、差异和Git比较

  • 打开文件并可选地高亮显示行
  • 显示两个文件之间的差异
  • 查看Git差异(工作更改、暂存、提交)
  • 单次操作打开多个文件
  • 查看mcp/main.go以获取完整的工具描述

安装

方案1:从VS Code扩展市场安装

  1. 打开VS Code
  2. 前往扩展(Cmd+Shift+X / Ctrl+Shift+X)
  3. 搜索“VS Claude”
  4. 点击安装

方案2:从源码构建

  1. 构建VSIX包:
git clone https://github.com/your-username/vs-claude.git
cd vs-claude
npm install
npm run build
npm install -g @vscode/vsce
vsce package
  1. 在VS Code中安装:
    • Cmd+Shift+P(Mac)或Ctrl+Shift+P(Windows/Linux)
    • 运行“Extensions: Install from VSIX...”
    • 选择生成的.vsix文件

设置Claude集成

安装后,系统会提示您为Claude安装MCP服务器。点击“安装”继续。

如果需要稍后或手动安装:

  1. 打开命令面板(Mac上的Cmd+Shift+P或Windows/Linux上的Ctrl+Shift+P
  2. 运行“VS Claude: Install MCP”
  3. 重启Claude以激活
  4. 如任务需要,指示Claude使用vs-claude工具

设置与其他AI助手的集成

如果您的AI助手支持MCP服务器:

  1. 打开命令面板(Mac上的Cmd+Shift+P或Windows/Linux上的Ctrl+Shift+P
  2. 运行“VS Claude: Install MCP”
  3. 点击“手动设置”
  4. 按照您的AI助手的MCP服务器配置说明进行操作

架构

VS Claude由两部分组成:

VS Code扩展(TypeScript)

  • 安装带有Claude CLI的MCP服务器
  • 使用VS Code API实现文件打开逻辑
  • 处理基于文件的IPC以与MCP客户端通信

命令:

  • VS Claude: Install MCP - 安装带有Claude的MCP服务器
  • VS Claude: Uninstall MCP - 从Claude中移除MCP服务器

MCP服务器(Go)

  • 将来自MCP客户端的工具调用转发给VS Code的简单代理
  • 将来自VS Code的响应返回给MCP客户端

通信流程

MCP客户端(Claude) ↔ MCP服务器 ↔ 文件系统 ↔ VS Code扩展
  • MCP服务器将命令写入~/.vs-claude/{windowId}.in
  • VS Code扩展将响应写入~/.vs-claude/{windowId}.out
  • 每个VS Code窗口都有一个唯一的ID,并且元数据存储在~/.vs-claude/{windowId}.meta.json
  • 当有多个窗口打开时,MCP服务器返回一个列出可用窗口的错误

开发

先决条件

  • Node.js 116+
  • Go 1.21+
  • VS Code

脚本

npm run build       # 构建TypeScript和Go二进制文件
npm run build:debug # 构建带Go调试符号(不交叉编译)
npm run check       # 使用Biome格式化、检查和类型检查所有代码
npm run test        # 运行测试
npm run clean       # 删除构建工件

构建系统

  • 使用esbuild进行扩展捆绑
  • 为macOS(Intel/ARM)、Linux和Windows构建跨平台Go二进制文件

项目结构

vs-claude/
├── src/                 # TypeScript扩展源码
│   ├── extension.ts     # 主入口点
│   ├── tools/           # 工具实现
│   │   ├── open-tool.ts # 文件打开逻辑
│   │   └── types.ts     # TypeScript类型
│   ├── command-handler.ts     # 命令调度器
│   ├── window-manager.ts      # 窗口IPC管理
│   ├── logger.ts              # 日志系统
│   └── setup.ts               # MCP安装逻辑
├── mcp/                 # Go MCP服务器源码
│   └── main.go         # MCP服务器实现
├── scripts/             # 构建脚本
│   ├── build-extension.js        # 扩展捆绑
│   └── build-mcp-server.sh       # 跨平台Go编译
├── test/                # 测试套件
│   ├── suite/           # 测试实现
│   └── test-workspace/  # 测试样本项目
├── build/              # 构建输出(生成)
│   ├── mcp/            # 跨平台Go二进制文件
│   └── extension/      # TypeScript编译输出
└── CLAUDE.md           # 项目特定指令

测试

该项目包括全面的测试,这些测试:

  • 启动带有扩展的VS Code
  • 测试文件打开功能
  • 验证MCP集成

运行测试:

npm test

开发

按F5以开发模式运行扩展。

故障排除

工具不可用

  1. 确保VS Code已运行且已安装扩展
  2. 检查MCP服务器是否已配置:claude mcp list
  3. 安装后重启Claude

多个VS Code窗口

当有多个窗口打开时,MCP服务器返回一个列出可用窗口的错误。MCP客户端必须在每次请求中指定一个windowId:

mcp_vs-claude_open({
  args: {"type": "file", "path": "/path/to/file.ts"},
  windowId: "window-123"
})

贡献

欢迎贡献!请阅读我们的贡献指南并向我们的仓库提交拉取请求。

发布到VS Code扩展市场

  1. 访问https://dev.azure.com/badlogicgames/badlogicgames
  2. 使用badlogicgames@gmail.com登录
  3. 点击右上角MZ旁边的非描述性图标
  4. 点击“个人访问令牌”
  5. 生成一个新的令牌,因为旧的可能已过期。选择“所有可访问组织”作为组织,范围全访问
  6. vsce publish,输入那个愚蠢的令牌
  7. 检查https://marketplace.visualstudio.com/manage/publishers/mariozechner?noPrompt=true以查看发布状态

许可证

[许可证信息]