首页/编程智能体/calva-mcp-server

calva-mcp-server

查看源码
2025-5-11
Words 1852Read Time 5 min
Score:85

Calva MCP Server 是一个 VS Code 扩展,为 Clojure REPL 提供 MCP 服务器功能,使 AI 助手能够与 REPL 交互,提升代码生成和调试的准确性。

Clojure

让 CoPilot 成为交互式程序员

Calva MCP 服务器
这是一个为 Calva(VS Code 的 Clojure/ClojureScript 扩展)设计的 Model Context Protocol (MCP) 服务器扩展,使 AI 助手能够利用 REPL 的强大功能。

功能

  • 工具:代码评估(默认禁用),访问 Clojure REPL 以自由评估代码
  • 工具:符号信息查询,AI 可以查找感兴趣的符号,并获取文档字符串、参数信息等
  • 工具:clojuredocs.org 查询,获取 Clojure 核心符号的文档、示例以及“参见”信息
  • 资源:符号信息查询(实验性),与工具相同
  • 资源:clojuredocs.org 查询(实验性),与工具相同

评估功能是可选启用的

由于评估 Clojure 代码可能存在风险,服务器默认禁用此功能,因此你可以将服务器用于其他用途。在 VS Code 设置中搜索 Calva MCP 以启用它。
请注意,这里的安全模型有多层保护。该服务器默认禁用评估功能,且符合规范的 MCP 服务器将默认处于低信任模式,并在每次 LLM 想要使用工具时请求你的确认。如果你在 Calva MCP 设置中启用该工具,并配置你的 AI 客户端允许其无需询问即可使用,则将启用完全的 YOLO 模式。

为什么选择 Calva MCP 服务器?

“我希望 Copilot 能够真正运行我的 Clojure 代码,而不仅仅是猜测它可能做什么。”
Calva MCP 服务器通过为 AI 编码助手提供访问 REPL 的能力,将其从静态代码生成器转变为交互式编程伙伴。(请在使用前仔细考虑其影响。)

将你的 AI 助手转变为交互式编程伙伴

厌倦了 AI 工具生成看似合理但在运行时崩溃的 Clojure 代码?Calva MCP 服务器让你的 AI 助手能够:
  • 在实际环境中评估代码 - 不再有“这可能有效”的猜测
  • 查看真实的数据结构,而不仅仅是预测其形状
  • 在建议函数之前使用真实输入进行测试
  • 与你一起调试,访问运行时错误
  • 从代码库的实际行为中学习

为重视交互式编程的 Clojure 开发者打造

作为 Clojure 开发者,我们知道 REPL 不仅仅是一个控制台——它是我们工作流程的核心。现在,你的 AI 助手可以加入这个工作流程,理解你的数据和函数在实际情况下的存在方式,而不仅仅是它们在静态代码中的表现。
在 test-projects/example/AI_INTERACTIVE_PROGRAMMING.md 中,你可以找到一个尝试让 AI 利用 REPL 进行交互式编程的示例。(效果不一,欢迎提供帮助!)

入门指南

先决条件

  • 一个 AI 编码助手(例如 GitHub Copilot)
  • 项目所需的任何 Clojure 环境依赖项(例如 Clojure、Babashka 等)

安装

VS Code/CoPilot 需要一个 stdio 服务器来进行通信。我找不到让 MCP 客户端在 VS Code 扩展内部启动 stdio 服务器的方法。(我认为这实际上是不可能的。)因此,Calva MCP 服务器内部是一个套接字服务器,它在启动时将其绑定的端口写入一个端口文件。扩展中捆绑了一个 node 脚本(即包装器),它将启动一个包装套接字 MCP 服务器的 stdio 服务器。包装器脚本将端口文件作为参数。由于这些原因,每个工作区将有一个 Calva MCP 服务器,端口文件将写入工作区根目录下的 .calva 目录。
  1. 从 VS Code 的扩展面板安装 Calva MCP 服务器
  1. 启动 Calva MCP 套接字服务器
  1. 添加 MCP 服务器配置(可能因 MCP 客户端而异)
  1. 停止 Calva MCP 套接字服务器(至少这是一个值得考虑的习惯)

CoPilot 配置

在你项目的 .vscode/mcp.json 中添加一个 "calva" 条目,如下所示:
该文件的 VS Code 编辑器也是启动和停止 stdio 服务器的 UI。
请为其他 AI 客户端添加配置!🙏

使用

为了让 CoPilot(或任何 MCP 客户端)使用 Calva MCP 服务器,需要在启动 stdio 包装器之前启动套接字服务器。对于 CoPilot,后者是从 VS Code 的 MCP 服务器 UI 启动的。目前,套接字服务器需要始终手动启动。
  1. 将 Calva 连接到你的 Clojure/ClojureScript 项目
  1. 执行命令:Calva MCP 服务器:启动套接字服务器
  1. .vscode/mcp.json 中,使用 "calva" 服务器上的 启动 按钮。
  1. 如果你希望 AI 拥有完整的 REPL 功能,请在设置中启用此功能
  1. 开始使用你的 AI 助手,享受 REPL 的超能力!

工作原理

Calva MCP 服务器实现了 Model Context Protocol (MCP),在 AI 助手和你的 REPL 之间搭建了一座桥梁:
  1. 当你的 AI 助手需要更好地理解你的代码时,它可以在你的 REPL 中执行代码
  1. 结果流回 AI,使其了解实际的数据结构和函数行为
  1. 这创建了一个强大的反馈循环,建议基于运行时信息不断改进
  1. 你仍然控制着这个过程,受益于一个真正理解你运行代码的 AI 伙伴

进行中

这是一个非常早期的、基础的 MCP 服务器。
“计划”(希望)是我们将暴露更多 Calva 的功能。请告诉我们你希望看到哪些功能。

贡献

欢迎贡献!问题、PR,任何形式的贡献都欢迎。在提交 PR 之前,我们建议先提交一个问题,说明要解决的问题。你也可以在开始工作之前与我们讨论该问题。

许可证 🍻🗽

MIT

赞助我的开源工作 ♥️

你可以通过以下链接表达对我工作的喜爱:
上一篇
minecraft-mcp-server
下一篇
freshservice_mcp