返回市场
闭包-MCP

闭包-MCP

作者:bhauman635 星标更新:2025-11-20

项目介绍

Clojure MCP:带有AI辅助的REPL驱动开发

Clojure MCP 将AI模型连接到您的Clojure开发环境,通过大型语言模型(LLMs)提供一个卓越的REPL驱动开发体验。

重要更新

状态更新(2025年11月14日):近期Claude Code与Sonnet 4.5的改进减少了其对结构编辑的需求。

如果您正在使用 Claude Code(我强烈推荐您这样做),您应该从 clojure-mcp-light 开始。

如果您不使用 Claude Code,我还是强烈建议您使用 ClojureMCP。

🚀 快速概览

ClojureMCP 提供了将LLMs转化为以下功能的能力:

  • 强大的Clojure编码助手。
  • 强大的Clojure REPL助手:快速评估、调试和迭代。
  • 理解Clojure的编辑器:语法感知编辑、自动检查代码并平衡括号。

TLDR:这对我意味着什么?

仅靠Clojure MCP,您就可以将一个LLM变成一个强大的Clojure REPL和编码助手。

LLMs在Clojure REPL中表现出色:当前的LLMs无疑是出色的Clojure REPL助手,它们能够快速有效地进行评估,比您想象的要好得多。询问任何体验过的人,他们都会告诉您,LLMs在Clojure REPL中的表现远远超出了他们的预期。此外,我们必须记住,临时代码的形式和可维护性并不重要。

流畅的Clojure编辑:历史上,许多LLMs在处理括号方面遇到了困难。Clojure MCP采取了一种不同的编辑方法,显著提高了编辑接受率。Clojure MCP会检查传入的代码,如果可能的话修复括号,使用clj-rewrite应用语法感知补丁,然后检查并格式化最终结果。这是一个强大的编辑流水线,在需要支持的模型上编辑Clojure代码时表现得非常好。

这两个特性加上一套其他理解Clojure的工具,创造了一个全新的独特LLM开发体验,您至少应该尝试一次以了解它有多好。

目录

好消息

Clojure开发者可能会相信这样一个故事:现代LLMs是在主流编程语言的大量代码上训练的,因此当处理像Clojure这样的小众语言时,LLMs的表现不佳。我要告诉你的是,这并不是真的。

LLMs确实可以阅读和编写Clojure。然而,我们的秘密武器是REPL,以及它如何为LLMs提供一个快速聚焦的反馈循环来验证和细化代码。

在我看来,Clojure是一个非常适合LLM辅助开发的语言。它只需要一点桥梁……而这正是我试图通过ClojureMCP创建的东西。

🚀 概览

这个项目实现了一个MCP服务器,将AI模型连接到Clojure nREPL,并提供了专门的Clojure编辑工具,从而创造出独特的Clojure开发体验。

Clojure MCP提供了一组类似于Claude Code使用的工具,因此您可以使用它来处理Clojure 而无需其他工具。只需添加一个LLM循环或客户端,ClojureMCP就提供了一系列工具,让您能够有效地处理Clojure代码。

主要功能

  • Clojure REPL连接 - 这个连接会检查评估并自动平衡括号
  • Clojure感知编辑 - 使用parinfer、cljfmt和clj-rewrite
  • 优化的一套Clojure开发工具 - 超集的Claude Code工具

为什么使用AI驱动的REPL开发?

对于Clojurists来说,一个由LLM辅助的REPL是杀手级应用。

有了REPL,LLMs可以:

  • 迭代代码并在REPL中展示结果,然后再将其添加到您的代码中
  • 验证并探测您的代码中的错误
  • 调试您的代码
  • 以及其他更多

此外,在某些LLM客户端(包括Claude Desktop)中,您可以控制模型在任何时候可用的工具,因此您可以轻松地移除编辑文件的能力,并限制模型仅使用REPL工具,强制使用REPL。

注意:这些REPL能力在所有模型版本中都保持有价值,即使编辑能力随着模型如Sonnet 4.5的改进而提高。

🧠 模型兼容性

这些工具设计用于最新版本的LLM模型。为了获得最佳的S表达式编辑和Clojure特定工具体验,我们推荐使用来自以下供应商的最新模型:

  • Anthropic Claude(最新的Sonnet/Opus模型)
  • Google Gemini(最新的模型)
  • OpenAI(最新的GPT和o系列模型)

我个人几乎使用最新的Claude模型做几乎所有的事情,并且订阅了Anthropic的Max。我从中获得的价值远超过我支付的费用。

与Claude Code和其他代码助手一起使用

ClojureMCP可以与几乎任何LLM客户端一起使用,例如Claude Desktop、Claude Code等。

对于Claude Code用户:我推荐使用clojure-mcp-light方法,该方法提供了最小化的集成,针对Claude Code进行了优化。

对于Claude Desktop用户:ClojureMCP与Claude Desktop配合得非常好,在这里您可以更清楚地看到工具输出,了解工具是如何协同工作的,使LLM能够作为有效的Clojure编码助手。

对于其他LLM客户端:本文档中描述的完整的ClojureMCP工具集特别有益于使用其他LLM模型或客户端,这些客户端可以从专门的编辑工具中受益。

如果这是您第一次尝试使用LLM作为代码助手,我仍然推荐首先尝试Claude Desktop。Claude Desktop提供了一个透明的LLM工具循环,您可以查看LLM正在做什么,没有任何隐藏的内容。

帮助和社区资源

  • Clojurians Slack的#ai-assisted-coding频道非常活跃,我在这里花费了很多时间。
  • ClojureMCP Wiki有关于各种集成和沙盒的信息。

📋 安装

先决条件

  • Clojure
  • Java(JDK 17或更高版本)
  • 可选但强烈推荐ripgrep,以获得更好的grepglob_files性能

设置ClojureMCP

本指南将逐步引导您完成设置过程。

安装概述

  1. 配置nREPL:在项目中设置并验证nREPL服务器,端口为7888(您可以使用任何端口)
  2. 安装ClojureMCP:在~/.clojure/deps.edn中添加clojure-mcp
  3. 配置MCP客户端:在Claude Desktop或其他MCP客户端中将clojure-mcp设置为MCP服务器
  4. 安装Riggrep(可选)ripgrep是一个智能、快速的文件搜索工具,尊重.gitignore

注意:此设置验证所有组件是否协同工作。确认基本设置有效后,您可以自定义特定配置细节(如端口号)。

步骤1:配置目标项目的nREPL连接

在您希望获得AI协助的Clojure项目中,您需要确保可以在端口7888(您可以使用任何端口)上启动nREPL服务器。

对于deps.edn项目

在项目deps.edn中添加一个:nrepl别名:

{
  ;; ... 您的项目依赖项 ...
  :aliases {
    ;; AI连接的nREPL服务器
    ;; 包含所有您希望在开发中可用的路径
    :nrepl {:extra-paths ["test"]
            :extra-deps {nrepl/nrepl {:mvn/version "1.3.1"}}
            :main-opts ["-m" "nrepl.cmdline" "--port" "7888"]}}}

验证配置:

$ clojure -M:nrepl

您应该看到nREPL服务器在端口7888上启动。

对于Leiningen项目

启动nREPL服务器:

$ lein repl :headless :port 7888

步骤2:安装Clojure MCP服务器

~/.clojure/deps.edn中将clojure-mcp作为别名添加:

{:aliases
  {:mcp
    {:deps {org.slf4j/slf4j-nop {:mvn/version "2.0.16"} ;; 用于stdio服务器所需
            com.bhauman/clojure-mcp {:git/url "https://github.com/bhauman/clojure-mcp.git"
                                     :git/tag "v0.1.12"
                                     :git/sha "79b9d5a"}}
     :exec-fn clojure-mcp.main/start-mcp-server
     :exec-args {:port 7888}}}}

查找最新版本:访问[https://github.com/bhauman/clojure-mcp/commits/main](https://github.com/bhauman/clojure-m.