Token导航 LogoToken导航TokenDH.com
Clojure MCP Light logo
开发工具未说明官方级别未说明来源级核验

Clojure MCP Light

MCP Server

为Clojure开发者提供的LLM编程辅助工具集,包含自动修复括号错误和nREPL评估功能,优化与AI编程助手的协作流程。

工具数

0

提示词数

0

GitHub Stars

166

资源数

0
AI协作Claude开发工具Claude

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

bhauman

提供方

bhauman

最后核验

2026/5/17 20:19

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

详细介绍

clojure mcp灯

这不是MCP。

用于使用Clojure的LLM编码助手的简单CLI工具。

太长,读不下去了 使用LLM编码助手进行Clojure开发的三个CLI工具:

问题

LLM在编辑Clojure代码时会产生分隔符错误——括号、方括号和大括号不匹配。这导致了 “Paren编辑死亡循环” 其中AI反复无法修复分隔符错误,浪费令牌并阻碍进度。

次要问题:LLM编码助手需要连接到有状态的Clojure REPL进行评估。

这些工具解决了这两个问题。

快速参考

工具用例
clj-nrepl-eval任何法学硕士的REPL评估
clj-paren-repair-claude-hookClaude Code(或任何支持Claude钩子的LLM)
clj-paren-repairGemini CLI、Codex CLI、任何带shell的LLM

快速安装

安装挂钩工具:

bbin install https://github.com/bhauman/clojure-mcp-light.git --tag v0.2.2

注: 除非进行配置,否则挂钩将无法工作 ~/.claude/settings.json -请参阅下面的配置部分。

安装nREPL评估工具:

bbin install https://github.com/bhauman/clojure-mcp-light.git --tag v0.2.2 --as clj-nrepl-eval --main-opts '["-m" "clojure-mcp-light.nrepl-eval"]'

安装按需维修工具:

bbin install https://github.com/bhauman/clojure-mcp-light.git --tag v0.2.2 --as clj-paren-repair --main-opts '["-m" "clojure-mcp-light.paren-repair"]'

有关重要的配置和使用细节,请参阅下面的各个工具部分。

需求

- 注: 使用Codex和其他沙盒bash执行工具时,需要1.12.212或更高版本

可选:

______________________________________________________________________

clj-nrepl-eval 无MCP的LLM nREPL连接

nREPL客户端,用于从命令行评估Clojure代码。

这为编码助手提供了通过shell访问REPL eval的权限 电话。它专为LLM交互而设计,并允许 LLM可以发现和管理其REPL会话,而无需 以配置MCP服务器。

它有什么帮助

  • 让LLM评估正在运行的REPL中的代码
  • 为每个目标维护持久会话
  • 自动发现nREPL端口
  • 评估前自动修复分隔符
  • 指导LLM的有用输出

安装

安装分为两个步骤,安装命令行工具和 然后告诉编码助手 clj-nrepl-eval.

bbin install https://github.com/bhauman/clojure-mcp-light.git --tag v0.2.2 --as clj-nrepl-eval --main-opts '["-m" "clojure-mcp-light.nrepl-eval"]'

或者从本地结账:

bbin install . --as clj-nrepl-eval --main-opts '["-m" "clojure-mcp-light.nrepl-eval"]'

通过启动nREPL并执行测试评估来验证它是否已安装并正常工作。

# this missing paren is there to demonstrate that delimiters are repaired automatically
clj-nrepl-eval -p 7888 "(+ 1 2 3" 
# => 6

告诉LLM clj-nrepl-eval

选择其中一种或多种方法。每种都有权衡:

方法可用性何时使用信息最适合
自定义说明所有LLM客户端始终处于上下文中最简单、最有效
Slash命令大多数编码助手当你调用它时按需感知
技能仅限Claude CodeLLM在需要时拉取自动、上下文感知

每个都可以安装 本地 (每个项目)或 全球范围内 (所有项目)。

自定义说明

最简单,也许也是最有效的方法。与所有LLM编码助理一起工作。

添加到您的自定义说明文件中:

  • 全球: ~/.claude/CLAUDE.md, ~/.gemini/GEMINI.md, ~/.codex/AGENTS.md
  • 本地: ./CLAUDE.md, ./GEMINI.md, ./AGENTS.md 在项目根中
# Clojure REPL Evaluation

The command `clj-nrepl-eval` is installed on your path for evaluating Clojure code via nREPL.

**Discover nREPL servers:**

`clj-nrepl-eval --discover-ports`

**Evaluate code:**

`clj-nrepl-eval -p 
 ""`

With timeout (milliseconds)

`clj-nrepl-eval -p 
 --timeout 5000 ""`

The REPL session persists between evaluations - namespaces and state are maintained.
Always use `:reload` when requiring namespaces to pick up changes.

斜杠命令

允许您在需要时将REPL意识插入到对话中。大多数编码助手都提供此功能(安装方式因客户而异)。

  • /启动nrepl -在后台启动nREPL服务器并报告端口
  • /clojure nrepl -提供详细的使用信息 clj-nrepl-eval

克劳德代码 -用途 .md 文件在 commands/ 目录:

# Global: ~/.claude/commands/
# Local: .claude/commands/
mkdir -p ~/.claude/commands
cp commands/*.md ~/.claude/commands/

双子星命令行工具 -用途 .toml 文件(文档):

# Global: ~/.gemini/commands/
# Local: .gemini/commands/

Codex 命令行界面 -用途 .md 文件(文档):

# Global: ~/.codex/prompts/

技能

允许LLM在实际需要时提取REPL信息。目前只有克劳德代码。

# Global (all projects)
mkdir -p ~/.claude/skills
cp -r skills/clojure-eval ~/.claude/skills/

# Local (this project only)
mkdir -p .claude/skills
cp -r skills/clojure-eval .claude/skills/

使用提示

最简单的策略: 在编码会话之前启动nREPL

在要求LLM使用nREPL之前,先启动nREPL。这样就可以了 只需在当前项目中查找服务器的端口 随着 --discover-ports开始与REPL互动的最低仪式。

高级: 让LLM开始并管理您的nREPL会话

Claude和其他LLM完全有能力启动你的nREPL 服务器处于后台,并从输出中读取端口。他们 如果服务器挂在错误的eval上,也可以杀死服务器。

根据您的工作流程进行自定义

一旦你开始与 clj-nrepl-eval 在编码助手内部, 很快就会清楚如何调整上述提示以适应 您的特定项目和工作流程。

______________________________________________________________________

clj-paren修复克劳德钩

克劳德代码挂钩 让你跑 在Claude的工具调用之前或之后执行shell命令。这个钩子 拦截写入/编辑操作并自动修复分隔符 在它们到达文件系统之前发生错误。

在我的使用中,这些钩子已经修复了100%检测到的错误。

注: 其目的是在其他LLM客户端添加钩子支持时,创建和发布特定于客户端的钩子工具。例如,当Gemini CLI添加钩子时 clj-paren-repair-gemini-hook 工具将可用。

为什么使用钩子而不是MCP工具?

使用基于MCP的编辑工具,您将失去Claude Code的原生UI 集成——工具调用的格式很差,很难 阅读。Hooks使Claude Code能够正常运行其原生代码 编辑/写入工具,保留您习惯的干净差异UI,同时 在幕后透明地修复分隔符错误。

它有什么帮助

  • 在将错误写入磁盘之前透明地修复错误
  • 用途 零令牌 -发生在LLM调用之外
  • 保留Claude Code的原生差异UI和工具集成
  • 全局安装一次,适用于所有Clojure文件编辑

安装

bbin install https://github.com/bhauman/clojure-mcp-light.git --tag v0.2.2

或者从本地结账:

bbin install .

配置

添加 ~/.claude/settings.json:

{
  "hooks": {
    "PreToolUse": [
      {
        "matcher": "Write|Edit",
        "hooks": [
          {
            "type": "command",
            "command": "clj-paren-repair-claude-hook --cljfmt"
          }
        ]
      }
    ],
    "PostToolUse": [
      {
        "matcher": "Edit|Write",
        "hooks": [
          {
            "type": "command",
            "command": "clj-paren-repair-claude-hook --cljfmt"
          }
        ]
      }
    ],
    "SessionEnd": [
      {
        "hooks": [
          {
            "type": "command",
            "command": "clj-paren-repair-claude-hook --cljfmt"
          }
        ]
      }
    ]
  }
}

选项

  • --cljfmt -使用cljfmt启用自动代码格式化
  • --stats -启用统计跟踪(日志到 ~/.clojure-mcp-light/stats.log)
  • --log-level LEVEL -设置日志级别(跟踪、调试、信息、警告、错误)
  • --log-file PATH -日志文件的路径(默认: ./.clojure-mcp-light-hooks.log)
  • -h, --help -显示帮助消息

运作原理

  • PreTool使用挂钩 在写入/编辑操作之前运行,在写入之前修复内容
  • PostTool使用挂钩 在编辑操作后运行,修复引入的任何问题
  • 会话结束挂钩 Claude Code会话结束时清理临时文件

写入操作:如果检测到分隔符错误,则在写入之前通过parinfer修复内容。如果无法修复,则写入被阻止。

编辑操作:在编辑之前创建备份。编辑后,如果存在分隔符错误,则会自动修复。如果无法修复,则从备份中还原文件。

统计跟踪

统计跟踪有助于验证这些工具是否正常工作。 在某些时候,Clojurists可能不需要它们——要么是因为模型停止了 产生分隔符错误,或因为助手包括parinfer 内部。追踪有助于我们知道那一天何时到来。

添加 --stats 要跟踪分隔符事件,请执行以下操作:

clj-paren-repair-claude-hook --cljfmt --stats

统计数据已写入 ~/.clojure-mcp-light/stats.log 作为EDN:

{:event-type :delimiter-error, :hook-event "PreToolUse", :timestamp "2025-11-09T14:23:45.123Z", :file-path "/path/to/file.clj"}
{:event-type :delimiter-fixed, :hook-event "PreToolUse", :timestamp "2025-11-09T14:23:45.234Z", :file-path "/path/to/file.clj"}

使用附带的统计摘要脚本:

./scripts/stats-summary.bb

样本输出:

clojure-mcp-light Utility Validation
============================================================

Delimiter Repair Metrics
========================
  Total Writes/Edits:           829
  Clean Code (no errors):       794  ( 95.8% of total)
  Errors Detected:               35  (  4.2% of total)
  Successfully Fixed:            35  (100.0% of errors)
  Failed to Fix:                  0  (  0.0% of errors)
  Parse Errors:                   0  (  0.0% of fix attempts)

日志记录

启用调试日志记录:

# Debug level
clj-paren-repair-claude-hook --log-level debug --cljfmt

# Trace level (maximum verbosity)
clj-paren-repair-claude-hook --log-level trace --log-file ~/hook-debug.log

验证安装

echo '{"hook_event_name":"PreToolUse","tool_name":"Write","tool_input":{"file_path":"test.clj","content":"(def x 1)"}}' | clj-paren-repair-claude-hook

验证挂钩是否在Claude代码中运行:

Claude Code编辑Clojure文件后,展开工具输出以查看 钩子消息。在终端中,按 ctrl-r (或单击编辑)和 查找围绕差异的这些消息:

⎿ PreToolUse:Edit hook succeeded:
  ... edit diff ...
⎿ PostToolUse:Edit hook succeeded:

如果您没有看到这些消息,请检查您的 ~/.claude/settings.json 挂钩配置正确。

测试分隔符修复:

提示Claude代码故意编写格式错误的Clojure(例如,缺失 关闭paren)以验证钩子是否自动固定。

专业提示

与…结合 clj-paren-repair 为了实现完全覆盖,钩子可以处理编辑/写入工具,但LLM也可以通过Bash(sed、awk)进行编辑。拥有这两种工具可以解决所有问题。

______________________________________________________________________

clj-paren维修

不支持钩子的LLM编码助手的shell命令 (如Gemini CLI和Codex CLI)。当LLM遇到分隔符时 错误,它调用此工具进行修复,而不是尝试手动修复。

关键见解: 当我们在“Paren-Edit死亡循环”中反复观察AI时 未能修复分隔符错误——我们正在拼命寻找解决方案。 clj-paren-repair 提供了一条使这种行为短路的逃生路线。

为什么这样做: 现代SOTA模型只需 小分隔符差异。这些错误很小,不会出错 可以可靠地修复它们。这个简单的解决方案效果惊人。

吊钩与电缆修复: 钩子在可用时是明显的赢家——它们 使用零令牌,无需LLM调用即可发生。然而, clj-paren-repair 适用于任何具有shell访问权限的LLM。当Gemini CLI获得 钩子支撑,我们应该使用它们。在那之前, clj-paren-repair 足够了。

两者结合使用: 即使配置了钩子,也具有 clj-paren-repair 提供完整的覆盖范围。钩子处理编辑/写入工具,但LLM 还可以通过Bash(sed、awk等)编辑文件。拥有这两种工具可以解决所有问题。

它有什么帮助

  • 提供“Paren编辑死亡循环”的逃生路线
  • LLM在遇到分隔符错误时调用它
  • 适用于 任何 具有shell访问权限的LLM
  • 使用cljfmt自动格式化文件

安装

bbin install https://github.com/bhauman/clojure-mcp-light.git --tag v0.2.2 --as clj-paren-repair --main-opts '["-m" "clojure-mcp-light.paren-repair"]'

或者从本地结账:

bbin install . --as clj-paren-repair --main-opts '["-m" "clojure-mcp-light.paren-repair"]'

用法

clj-paren-repair path/to/file.clj
clj-paren-repair src/core.clj src/util.clj test/core_test.clj
clj-paren-repair --help

设置:自定义说明

添加到全局或本地自定义说明文件 (GEMINI.md, AGENTS.md, CLAUDE.md 等等):

# Clojure Parenthesis Repair

The command `clj-paren-repair` is installed on your path.

Examples:
`clj-paren-repair `
`clj-paren-repair path/to/file1.clj path/to/file2.clj path/to/file3.clj`

**IMPORTANT:** Do NOT try to manually repair parenthesis errors.
If you encounter unbalanced delimiters, run `clj-paren-repair` on the file
instead of attempting to fix them yourself. If the tool doesn't work,
report to the user that they need to fix the delimiter error manually.

The tool automatically formats files with cljfmt when it processes them.

______________________________________________________________________

同时使用多种工具

Claude Code用户的最佳实践:

  1. 配置钩子以自动固定(零令牌)
  2. 也有 clj-paren-repair 可用于基于Bash的编辑
  3. 使用 clj-nrepl-eval 用于REPL评估

对于其他LLM客户端(Gemini CLI、Codex等):

  1. 安装 clj-paren-repair 并添加自定义说明
  2. 使用 clj-nrepl-eval 用于REPL评估

______________________________________________________________________

这些工具解决(和不解决)什么

问题A:输出中的分隔符错误 -已解决

这些工具修复了编辑结果中不匹配/缺失的括号。

问题B:old_string匹配失败 -未解决

有时LLMs很难产生 old_string 这与文件内容完全匹配,导致编辑失败。这在较新的型号中不太常见。

关于问题B的完整解决方案: ClojureMCP sexp编辑工具。

______________________________________________________________________

为什么不直接使用ClojureMCP?

ClojureMCP 提供了全面的Clojure工具,但:

  • ClojureMCP工具不是客户端的原生工具——没有差异UI,没有集成的输出格式
  • ClojureMCP与客户端已有的工具重复/冲突
  • 这些CLI工具有效 *随着* 客户端的原生工具,而不是替换它们

你可以两者结合使用。将ClojureMCP配置为仅公开 :clojure_eval 如果需要:

;; .clojure-mcp/config.edn
{:enable-tools [:clojure_eval]
 :enable-prompts []
 :enable-resources []}

您还可以使用ClojureMCP的提示、资源和代理 创建一套跨LLM客户端工作的工具的功能。

______________________________________________________________________

贡献

欢迎投稿和想法!请随意:

  • 带有建议或错误报告的未决问题
  • 提交带有改进的PR
  • 分享你的实验以及哪些有效(或无效)

许可证

Eclipse公共许可证版本2.0(EPL-2.0)

许可证.md 获取完整的许可证文本。

目录标签

目录标签

AI协作Claude开发工具Clojure本地部署Clojure开发LLM编程助手括号修复REPL评估

支持客户端

Claude

接入字段

传输方式(transport,传输协议)

未说明

鉴权方式(authType,认证方式)

session

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

未说明session部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

仍需确认:installCommand

来源信息

继续浏览同类 MCP