Token导航 LogoToken导航TokenDH.com
Clojure MCP logo
运维云端未说明官方级别未说明来源级核验

Clojure MCP

MCP Server

ClojureMCP是一个连接LLM客户端与Clojure项目的MCP服务器,提供REPL工具和Clojure感知的编辑工具,支持REPL驱动开发和AI辅助编码。

工具数

15

提示词数

0

GitHub Stars

751

资源数

0
Claude云端部署DockerClaude DesktopClaude

安装说明

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

作者 / 组织

bhauman

提供方

bhauman

最后核验

2026/5/17 20:19

快速接入

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

详细介绍

Clojure MCP:人工智能辅助下的REPL驱动开发

ClojureMCP是Clojure的MCP服务器!

目录

- 项目总结管理 - 聊天会话总结和恢复

什么是ClojureMCP?

ClojureMCP是一个连接LLM客户端(如Claude)的MCP服务器 代码或克劳德桌面)到您的Clojure项目。它提供REPL 工具和支持Clojure的编辑工具,旨在处理Clojure 括号和格式可靠。

根据您的法学硕士客户,ClojureMCP可以:

  • 提供a 全套支持Clojure的代码辅助工具 适用于Claude desktop等桌面聊天应用程序,或
  • 填补Clojure特定的空白 CLI助手 已经拥有强大的文件编辑和shell工具(如REPL集成+Clojure感知编辑)。

我该如何使用它?

  1. 安装ClojureMCP(clojure -Ttools install-latest ...).
  2. 在LLM客户端中将其注册为MCP服务器。

如果您使用的是CLI助手,您通常更喜欢保留CLI的本机文件编辑工具,并使用ClojureMCP主要用于REPL集成(并作为编辑回退)。

如果你使用的是桌面聊天应用程序,你通常会使用完整的ClojureMCP工具链。

主要特点

  • Clojure REPL连接 -在评估之前修复分隔符
  • Clojure感知编辑 -使用parinfer、cljfmt和clj重写
  • Clojure开发的优化工具集

帮助和社区资源

📋 安装

先决条件

  • Clojure
  • Java (JDK 17或更高版本)
  • 可选,但强烈推荐: ripgrep 为了更好 grepglob_files 演出

安装ClojureMCP

使用Clojure工具安装程序安装ClojureMCP:

clojure -Ttools install-latest :lib io.github.bhauman/clojure-mcp :as mcp

这将在全球范围内安装ClojureMCP,使 clojure -Tmcp start 可从任何目录访问。

CLI助理

CLI编码助手(Claude Code、Codex、Gemini CLI)已经拥有强大的内联差异编辑和shell工具。

从...开始 clojure mcp灯 -它提供REPL集成和分隔符修复,同时保留CLI的原生内联差异显示。这对大多数Clojure开发都很有效。

考虑添加ClojureMCP 随着 :cli-assist 个人资料,如果你愿意:

  • 结构编辑回退 -clojure mcp light可以在编辑成功后修复parens,但在查找/替换匹配字符串与代码不匹配时(发生率\功能>代码执行和文件创建,然后将其关闭。

你可能也想转身 人工制品 也关了。

除Claude Desktop之外的其他客户端

请参阅 维基 为了 有关设置其他MCP客户端的信息。

在Claude Desktop中开始新对话

一旦一切准备就绪,我建议用克劳德开始新的聊天。

您要做的第一件事是初始化上下文 关于nREPL附带的对话中的Clojure项目。

在Claude Desktop中,单击 + 工具和可选添加

  • 资源 PROJECT_SUMMARY.md -(让LLM创建这个)见下文
  • 资源 Clojure Project Info -对nREPL互联项目的反思
  • 资源 LLM_CODE_STYLE.md -这是您的个人编码风格说明(将此仓库中的说明复制到项目的根目录)
  • 提示 clojure_repl_system_prompt -如何编写代码的说明-从Claude code中抄袭了一堆代码

然后开始聊天。

我会先陈述一个问题,然后与法学硕士聊天 交互式设计解决方案。你可以让克劳德“提出一个解决方案供我审查”。

对此进行一点迭代,然后要么:

A.在REPL中编码并验证想法。

不要低估LLMs使用REPL的能力!目前的LLM是 非常擅长使用Clojure REPL。

B.要求LLM对源代码进行更改,然后在文件编辑后让它验证REPL中的代码。

C.要求进行测试。 D.要求提交更改。

创建一个分支,让LLM经常提交,这样就不会因为方向不好而破坏好的工作。

项目总结管理

该项目包括一个维护LLM友好的工作流程 PROJECT_SUMMARY.md 这有助于助手快速理解代码库结构。

运作原理

  1. 创建摘要:要生成或更新PROJECT_SUMARY.md文件,请使用 + > clojure-mcp 菜单 create-update-project-summary。此提示将:

- 分析代码库结构 - 记录关键文件、依赖关系和可用工具 - 以针对法学硕士助理优化的格式生成全面的文档

  1. 使用摘要:与助手开始新对话时:

- “项目摘要”资源会自动加载Project_SUMARY.md - 这为助理提供了有关项目结构的即时上下文 - 助手可以提供更准确的帮助,而无需长时间的探索

  1. 保持更新:在添加了新功能或组件的富有成效的会议结束时:

- 调用 create-update-project-summary 再次提示 - 系统将使用新添加的功能更新PROJECT_SUMARY.md - 这确保了摘要与正在进行的开发保持同步

此工作流程创建了一个良性循环,每个会话都建立在以前会话积累的知识之上,使助手随着项目的发展而变得越来越有效。

聊天会话总结和恢复

Clojure MCP服务器提供了一对提示,用于启用 使用聊天会话的对话连续性 scratch_pad 工具。默认情况下,数据被存储 仅在内存中 本届会议。 要在服务器重新启动时保留摘要,您必须启用草稿板 使用划痕板部分中描述的配置选项进行持久化。

运作原理

系统使用两个互补的提示:

  1. chat-session-summarize:创建当前对话的摘要

- 将详细摘要保存到草稿栏 - 记录已完成的工作、正在进行的工作以及下一步的工作 - 接受可选 chat_session_key 参数(默认为 "chat_session_summary")

  1. chat-session-resume:从以前的对话中恢复上下文

- 读取PROJECT_SUMMARY.md文件 - 呼叫 clojure_inspect_project 当前项目状态 - 从草稿本检索上一个会话摘要 - 提供一个简短的8行摘要,总结事情的重点 - 接受可选 chat_session_key 参数(默认为 "chat_session_summary")

使用流程

结束会话:

  1. 在富有成效的对话结束时,调用 chat-session-summarize 提示
  2. 助理将在记事本中存储一份全面的摘要
  3. 由于草稿板的全局状态,此摘要在会话中持续存在

开始新会话:

  1. 继续工作时,调用 chat-session-resume 提示
  2. 助理将加载所有相关上下文并提供简短摘要
  3. 然后,您可以继续使用完整的上下文

多会话高级用法

您可以使用自定义键来维护多个并行对话上下文:

# For feature development
chat-session-summarize with key "feature-auth-system"

# For bug fixing
chat-session-summarize with key "debug-memory-leak"

# Resume specific context
chat-session-resume with key "feature-auth-system"

这允许在不同的开发上下文之间切换,同时保持每个对话线程的完整状态。

使用多个REPL

随着 list_nrepl_ports,代理可以同时发现您的Clojure和shadow cljs REPL。该工具识别哪些REPL是影子cljs实例,允许代理使用 clojure_eval 与适当 port 参数。

LLM API密钥

使用Clojure MCP服务器不需要这样做。
重要提示:如果您在 环境,然后ClojureMCP将在您使用时调用它们 这 dispatch_agent,architectcode_critique 工具。这些 调用将产生API费用。

提供了一些MCP工具,它们本身就是代理,它们需要API密钥才能发挥作用。

若要使用代理工具,您需要来自以下一个或多个提供程序的API密钥:

  • GEMINI_API_KEY -适用于Google Gemini型号

- 获取API密钥:https://makersuite.google.com/app/apikey - 使用人: dispatch_agent, architect, code_critique

  • OPENAI_API_KEY -对于GPT型号

- 获取API密钥:https://platform.openai.com/api-keys - 使用人: dispatch_agent, architect, code_critique

  • ANTHROPIC_API_KEY -适用于克劳德模特

- 获取API密钥:https://console.anthropic.com/ - 使用人: dispatch_agent

设置环境变量

选项1:在shell中导出

export ANTHROPIC_API_KEY="your-anthropic-api-key-here"
export OPENAI_API_KEY="your-openai-api-key-here"
export GEMINI_API_KEY="your-gemini-api-key-here"

选项2:添加到您的shell配置文件 (.bashrc, .zshrc等等)

# Add these lines to your shell profile
export ANTHROPIC_API_KEY="your-anthropic-api-key-here"
export OPENAI_API_KEY="your-openai-api-key-here"
export GEMINI_API_KEY="your-gemini-api-key-here"

为Claude Desktop配置LLM密钥

设置Claude Desktop时,请确保它可以通过更新配置来访问您的环境变量。

就我个人而言 source 它们就在bash命令中:

{
    "mcpServers": {
        "clojure-mcp": {
            "command": "/bin/sh",
            "args": [
                "-c",
                "source ~/.api_credentials.sh && PATH=/your/bin/path:$PATH && clojure -Tmcp start :not-cwd true :port 7888"
            ]
        }
    }
}
备注:代理工具将使用任何可用的API密钥。您不需要这三种工具,只需设置您有权访问的工具即可。这些工具将自动从可用模型中进行选择。目前,ANTHROPIC API仅限于dispatch_agent。

🧰 可用工具

中包含的默认工具 main.clj 按类别组织,以支持不同的工作流程:

只读工具

工具名称描述示例用法
LS返回文件和目录的递归树视图探索项目结构
read_file基于模式的Clojure文件探索智能文件阅读器使用折叠视图读取文件,模式匹配
grep使用正则表达式进行快速内容搜索查找包含特定模式的文件
glob_files基于模式的文件查找按名称模式查找文件,如 *.clj

代码评估

工具名称描述示例用法
clojure_eval评估当前命名空间中的Clojure代码;支持可选 port 多REPL工作流的参数测试表达式,连接到不同的REPL
list_nrepl_ports发现计算机上正在运行nREPL服务器查找可连接的可用REPL
bash在主机系统上执行shell命令运行测试、git命令、文件操作

文件编辑工具

工具名称描述示例用法
clojure_editClojure表单的结构感知编辑替换/插入函数,处理defmethod
clojure_edit_replace_sexp修改函数内的表达式更改特定的s表达式
file_edit通过替换文本字符串来编辑文件如果需要,请在编辑后进行修复
file_write写入带有安全检查的完整文件创建新文件,用验证覆盖

代理工具(需要API密钥)

工具名称描述示例用法
dispatch_agent使用只读工具启动代理以进行复杂搜索多步文件探索和分析
architect技术规划和实施指导系统设计、架构决策

实验工具

工具名称描述示例用法
scratch_pad用于结构化数据存储的持久工作区任务跟踪、规划、工具间通信,可选文件持久性(默认禁用)
code_critique交互式代码审查和改进建议迭代代码质量改进

主要工具功能

智能文件读取(read_file)

  • 折叠视图:仅显示大型Clojure文件的函数签名
  • 模式匹配:使用 name_pattern 按名称查找函数, content_pattern 搜索内容
  • defmethod支持:处理调度值,如 "area :rectangle" 或矢量调度
  • 多语言:Clojure文件获得智能功能,其他文件显示原始内容

结构感知编辑(clojure_edit)

  • 基于表单的操作:按类型和标识符定位函数,不匹配文本
  • 多项操作:替换、插入前、插入后
  • 语法验证:内置linting可防止括号不平衡
  • defmethod处理:使用限定名称和调度值

代码评估(clojure_eval)

  • REPL集成:在连接的nREPL会话中执行
  • Helper函数:内置命名空间和符号探索工具
  • 多个表达式:计算和分割多个表达式

Shell命令(bash)

  • 可配置执行:可以在nREPL上运行,也可以根据配置在本地运行
  • 会话隔离:使用nREPL模式时,在单独的会话中运行以防止REPL干扰
  • 输出截断:通过智能stderr/ststdout分配,一致的8500个字符限制
  • 路径安全:根据允许的目录验证文件系统路径

代理系统(dispatch_agent)

  • 自主搜索:处理复杂的多步骤勘探任务
  • 只读访问:代理具有只读工具访问权限
  • 详细结果:回报分析和调查结果

防刮垫(scratch_pad)

  • 持久工作区:存储结构化数据,用于规划和工具间通信
  • 内存模式:数据仅存储在内存中,会话结束时丢失(默认行为)
  • 基于路径的操作:使用 set_path, get_path, delete_path 用于精确的数据操作
  • JSON兼容性:存储任何兼容JSON的数据(对象、数组、字符串、数字、布尔值)

🔧 定制

ClojureMCP的设计是高度可定制的。在alpha阶段,创建自己的自定义MCP服务器是根据您的特定需求配置系统的主要方式。

您可以自定义:

  • 工具 -选择要包含的工具,使用多方法或简单映射创建新工具
  • 提示 -为工作流添加特定于项目的提示
  • 资源 -公开您的文档、配置和项目信息
  • 工具选择 -创建只读服务器、开发服务器或专用配置

定制方法既简单又强大——你本质上是在构建自己的个性化人工智能开发伙伴。

📖 完整的定制文档

快速入门: 创建自己的自定义MCP服务器 -这是大多数用户应该开始的地方。

CLI选项

传递给的值 clojure -Tmcp start 是EDN值。

:port

可选的 -要连接的nREPL服务器端口。使用时 :start-nrepl-cmd 没有 :port,将从命令输出中自动发现端口。

:port 7888

:host

可选的 -nREPL服务器主机。如果未指定,则默认为localhost。

:host "localhost":host "0.0.0.0"

:not-cwd

可选的 -如果为true,则不要将当前工作目录用作项目目录。需要 :port 待指定。MCP服务器将对nREPL连接进行自检,以发现项目的工作目录。

这对于在项目目录之外启动MCP服务器的Claude Desktop和其他客户端来说至关重要。通过连接到项目中运行的nREPL,ClojureMCP可以自动确定正确的工作目录。

:not-cwd true

:start-nrepl-cmd

可选的 -如果nREPL服务器尚未运行,则自动启动该服务器的命令。必须指定为字符串的向量。MCP服务器将启动此过程并管理其生命周期。

当不使用时 :port,MCP服务器将自动从命令的输出中解析端口。与一起使用时 :port,它将使用该固定端口。

重要:此选项需要启动 clojure-mcp 从您的项目目录(您的 deps.ednproject.clj 位于)。nREPL服务器将在当前工作目录中启动。这对于Claude Code和其他命令行LLM客户端特别有用,在这些客户端中,您希望在没有手动进程管理的情况下自动启动nREPL。

Claude Desktop用户注意事项:Claude Desktop不会从您的项目目录启动MCP服务器,因此 :start-nrepl-cmd 除非你也提供 :project-dir 作为指向特定项目的命令行参数。例如: :project-dir '"/path/to/your/clojure/project"'。此限制不影响从项目目录运行的Claude Code或其他基于CLI的工具。

:start-nrepl-cmd ["lein" "repl" ":headless"]:start-nrepl-cmd ["clojure" "-M:nrepl"]

:config-file

可选的 -指定配置文件的位置。必须是现有文件的路径。

:config-file "/path/to/config.edn"

:project-dir

可选的 -指定代码库的工作目录。这会覆盖nREPL连接对项目目录的自动自检。必须是指向现有目录的路径。

:project-dir "/path/to/your/clojure/project"

:nrepl-env-type

可选的 -指定我们通过nREPL连接连接到的环境类型。这会覆盖自动检测。有效选项包括:

  • :clj 适用于Clojure或ClojureScript
  • :bb 为了 巴巴什卡 -用于脚本编写的原生、快速启动的Clojure解释器
  • :basilisp 为了 Basilisp -面向Python 3.9的Clojure兼容Lisp方言+
  • :scittle 为了 Scittle -直接从浏览器脚本标签执行ClojureScript

:nrepl-env-type :bb

:shadow-cljs-repl-message

可选的 -控制shadow cljs REPL模式状态消息是否包含在eval结果中(默认值: true).当连接到影子cljs-nREPL时,每个eval结果前面都会添加一条关于cljs模式的状态消息。设置为 false 禁用此消息。

:shadow-cljs-repl-message false

:config-profile

可选的 -加载一个内置的配置文件,用于调整工具的可用性和描述。可用于根据特定用例定制ClojureMCP。

可用配置文件:

  • :cli-assist -CLI编码助手的最小工具集(Claude Code、Codex、Gemini CLI)。禁用冗余工具并进行配置 clojure_edit 作为本机编辑失败时的后备方案。

:config-profile :cli-assist

:enable-tools

可选的 -工具关键字允许列表。提供时,替换任何 :enable-tools 配置中的值。只有列出的工具可用。

:enable-tools [:clojure_eval :read_file]

:disable-tools

可选的 -工具关键字的阻止列表。提供时,替换任何 :disable-tools 配置中的值。列出的工具将被禁用。

:disable-tools [:bash :dispatch_agent]

:add-tools

可选的 -配置解析后强制启用特定工具。从禁用列表中删除工具,如果其中一个工具处于活动状态,则将其添加到启用列表中。这对于有选择地重新启用配置文件禁用的工具非常有用。

:add-tools [:my_custom_agent]

:remove-tools

可选的 -配置解析后强制禁用特定工具。将工具添加到禁用列表中,如果有工具处于活动状态,则将其从启用列表中删除。这对于有选择地禁用工具而不替换整个配置非常有用。

:remove-tools [:clojure_eval]

工具筛选应用程序顺序

  1. 配置已加载(主页+项目+配置文件合并)
  2. :enable-tools/:disable-tools 从opts替换配置值(如果提供)
  3. :remove-tools 已应用(强制禁用)
  4. :add-tools 已应用(强制启用--赢得 :remove-tools 重叠)
  5. ENABLE_TOOLS/DISABLE_TOOLS 环境变量仍然赢得了一切

组件过滤 有关启用/禁用列表如何在配置文件中工作的详细信息。

示例用法

# Basic usage with just port
clojure -Tmcp start :port 7888

# With automatic nREPL server startup and port discovery
# Perfect for CLI assistants - run this from your project directory
clojure -Tmcp start :start-nrepl-cmd '["lein" "repl" ":headless"]'

# For deps.edn projects (from project directory)
clojure -Tmcp start :start-nrepl-cmd '["clojure" "-M:nrepl"]'

# Auto-start with explicit port (uses fixed port, no parsing)
clojure -Tmcp start :port 7888 :start-nrepl-cmd '["clojure" "-M:nrepl"]'

# For Claude Desktop: must provide project-dir since it doesn't run from your project
clojure -Tmcp start :start-nrepl-cmd '["lein" "repl" ":headless"]' :project-dir '"/path/to/your/clojure/project"'

# With custom host and project directory
clojure -Tmcp start :port 7888 :host '"0.0.0.0"' :project-dir '"/path/to/project"'

# Using a custom config file
clojure -Tmcp start :port 7888 :config-file '"/path/to/custom-config.edn"'

# Specifying Babashka environment
clojure -Tmcp start :port 7888 :nrepl-env-type :bb

# Using cli-assist profile for CLI coding assistants
clojure -Tmcp start :config-profile :cli-assist

# cli-assist with a custom agent tool re-enabled
clojure -Tmcp start :config-profile :cli-assist :add-tools '[:my_custom_agent]'

# cli-assist but also remove clojure_eval
clojure -Tmcp start :config-profile :cli-assist :remove-tools '[:clojure_eval]'

# Full override — only these two tools
clojure -Tmcp start :enable-tools '[:clojure_eval :read_file]'

备注:shell需要正确引用字符串值,因此 '"value"' 字符串的语法。

⚙️ 配置

Clojure MCP服务器支持最小的项目特定配置 通过a .clojure-mcp/config.edn 项目根目录中的文件 目录。此配置提供安全控制和 MCP服务器的自定义选项。

配置文件位置

创建一个 .clojure-mcp/config.edn 项目根目录中的文件:

your-project/
├── .clojure-mcp/
│   └── config.edn
├── src/
├── deps.edn
└── ...

配置选项

配置有大量文件记录 这里.

配置示例

{:allowed-directories ["."
                       "src"
                       "test"
                       "resources"
                       "dev"
                       "/absolute/path/to/shared/code"
                       "../sibling-project"]
 :write-file-guard :partial-read
 :cljfmt false
 :bash-over-nrepl false}

配置详情

路径解析:

  • 相对路径(如 "src", "../other-project")相对于您的项目根进行解析
  • 绝对路径(如 "/home/user/shared")按原样使用
  • 项目根目录会自动包含在允许的目录中

安全:

  • 工具根据允许的目录验证所有文件操作
  • 尝试访问允许目录外的文件将失败,并出现错误
  • 这可以防止意外访问敏感的系统文件
  • Bash工具不尊重这些界限,所以要小心

默认行为:

  • 如果没有配置文件,则只能访问项目目录及其子目录
  • nREPL工作目录会自动添加到允许的目录中

备注:MCP服务器启动时加载配置。更改配置后重新启动服务器(或聊天代理)。

📝 许可证

Eclipse公共许可证-v 2.0

版权所有(c)2025布鲁斯·豪曼

本计划和随附材料可在 Eclipse公共许可证2.0的条款,可在 http://www.eclipse.org/legal/epl-2.0

许可证摘要

  • 自由使用 用于个人项目、内部业务工具和开发
  • 修改和分发 -欢迎改进和分叉
  • 商业用途 -企业可以不受限制地在商业上使用它
  • 灵活的许可 -可以与专有代码结合使用
  • 📤 分享改进 -源代码在分发时必须可用

目录标签

目录标签

Claude云端部署DockerClojure本地部署Clojure开发REPL工具AI辅助编码代码编辑nREPL集成

支持客户端

Claude DesktopClaude

接入字段

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

未说明

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

session

工具数量(toolCount,工具数)

15

资源数量(resourceCount,资源数)

0

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

0

权限和风险

未说明session部署方式未说明

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

安装前确认

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

仍需确认:installCommand

来源信息

继续浏览同类 MCP