项目简介
Calva Backseat Driver 是一个 VS Code 扩展,专为 Calva (VS Code 的 Clojure/ClojureScript 扩展) 设计。它作为一个 MCP (Model Context Protocol) 服务器运行,允许兼容的 AI 客户端(如 AI 编程助手)与你的 Clojure REPL 交互。通过这种方式,AI 不仅仅是生成代码,还能在真实的运行环境中执行代码、查询符号信息,从而实现更深入、更准确的交互式编程辅助。
主要功能点
该扩展作为 MCP 服务器,目前提供以下主要功能:
- 代码求值 (Evaluate Code):允许 AI 在连接的 Clojure REPL 中执行代码并获取结果。此功能默认关闭,需要用户在设置中明确启用,以保障安全。
- 符号信息查询 (Symbol info lookup):AI 可以查询 Clojure 符号的详细信息,包括文档字符串、参数签名等。
- clojuredocs.org 查询 (clojuredocs.org lookup):AI 可以从 clojuredocs.org 查询 Clojure 核心符号的文档、示例和相关信息。
- 资源访问 (Resources):提供类似符号信息和 clojuredocs 查询的数据资源访问能力(实验性)。
安装步骤
- 安装 VS Code。
- 在 VS Code 扩展市场搜索并安装 Calva 扩展。
- 在 VS Code 扩展市场搜索并安装 Calva Backseat Driver 扩展。
- 你需要一个支持 MCP 协议的 AI 客户端,例如 RooCode。
服务器配置
Calva Backseat Driver 作为一个内置的 MCP 服务器运行。AI 客户端需要配置如何启动并连接到这个服务器。由于技术限制,服务器内部启动一个 Socket 服务器,然后通过一个 Node.js 脚本作为 Stdio 包装器,供 MCP 客户端连接。
通常,MCP 客户端会通过一个配置文件(例如 '.vscode/mcp.json')来定义服务器。对于 Calva Backseat Driver,你需要添加一个服务器配置,指定其类型、启动命令和参数。
- 服务器名称 (server name): 建议使用 '"calva"' 或其他能标识该服务器的名称。
- 类型 (type): 应设置为 'stdio' (标准输入/输出),这是客户端与服务器通信的方式。
- 命令 (command): 应设置为 'node',因为服务器的启动脚本是通过 Node.js 运行的。
- 参数 (args): 这是一个数组,包含传递给 'node' 命令的参数。通常包括:
- 服务器启动脚本的路径。这个脚本位于 Calva Backseat Driver 扩展的安装目录下的 'dist/calva-backseat-driver.js'。配置时可以使用 VS Code 提供的占位符,例如 '${extensionInstallFolder:betterthantomorrow.calva-backseat-driver}/dist/calva-backseat-driver.js'。
- 一个端口文件的路径。服务器会将其监听的端口写入这个文件,供 Stdio 包装器读取。这个文件通常位于工作区目录下的 '.calva/mcp-server/port'。配置时可以使用 '${workspaceFolder}/.calva/mcp-server/port'。
具体的配置格式和位置取决于你使用的 MCP 客户端。请参考你的 AI 客户端文档进行配置。
基本使用方法
- 在 VS Code 中打开一个 Clojure 项目。
- 使用 Calva 将其连接到 Clojure/ClojureScript REPL。
- 如果希望 AI 能够执行代码,请在 VS Code 设置中搜索 "Calva MCP" 并启用相关选项。
- 重要步骤: 需要手动启动 Calva Backseat Driver 的内部 Socket 服务器。在 VS Code 命令面板中找到并执行 "Calva Backseat Driver: Start the socket server" 命令。
- 使用你的 MCP 客户端启动配置好的 Calva MCP 服务器(通常在客户端的 UI 或通过特定命令触发)。这会启动 Stdio 包装器,连接到之前手动启动的 Socket 服务器。
- 现在,你的 AI 代理应该可以通过 MCP 协议访问 Calva Backseat Driver 提供的工具和资源,与你的 REPL 进行交互了。
信息
分类
开发者工具