项目简介
Clojure MCP 是一个 Model Context Protocol (MCP) 服务器实现,专门为 Clojure 项目的 REPL 驱动开发提供 AI 辅助。它将 AI 模型与 Clojure nREPL 连接起来,并提供一套丰富的、理解 Clojure 语法的开发工具,旨在提升 Clojure 开发者的工作效率和体验。
主要功能点
- Clojure REPL 连接: 能够连接到正在运行的 Clojure nREPL 服务器,允许 AI 模型执行代码、检查状态。
- Clojure 智能编辑: 集成了多种 Clojure 工具(如 clj-kondo, parinfer, cljfmt),支持结构化、语法感知的代码编辑操作,帮助 AI 生成和修改正确格式的代码。
- 丰富的开发工具集: 提供一套为 Clojure 开发优化的工具,包括文件读取、内容搜索、代码评估、文件编辑、Shell 命令执行等。
- 会话状态管理: 服务器维护文件读写状态,确保 AI 在修改文件时的安全性。
- Prompt 和资源管理: 支持定义和提供 Prompt 模板(如生成项目摘要)和上下文资源(如项目文件、代码风格指南)给 AI 客户端使用。
- Agent 工具: 包含需要 API Key 的高级 AI Agent 工具,用于执行更复杂的任务(如代码评审、架构规划)。
安装步骤
-
设置 Clojure MCP 服务器:
- 确保已安装 Clojure (1.11+) 和 Java (JDK 11+)。
- 在你的全局或项目 'deps.edn' 文件中,添加 Clojure MCP 作为 git 依赖或本地依赖,并为其定义一个别名(例如 ':mcp'),同时指定服务器启动函数和参数(例如端口号)。
-
配置目标 Clojure 项目:
- 在你希望使用 AI 辅助的 Clojure 项目的 'deps.edn' 中,配置一个 nREPL 启动别名(例如 ':nrepl'),并指定端口号。确保 nREPL 运行的端口号与 MCP 服务器配置中连接 nREPL 的端口号一致。
-
配置 MCP 客户端 (例如 Claude Desktop):
- 编辑你的 MCP 客户端的配置文件(例如 Claude Desktop 的 'claude_desktop_config.json')。
- 在 'mcpServers' 部分,添加一个新的服务器配置项。
服务器配置 (供 MCP 客户端使用)
MCP 客户端需要知道如何启动并连接到 Clojure MCP 服务器。以下是一个典型的 JSON 配置结构,你需要根据你的实际安装路径和配置进行修改:
{ "mcpServers": { "服务器名称": { "command": "用于启动服务器的可执行文件或脚本路径", "args": [ "command 参数 1", "command 参数 2", "..." ] // 可选: 配置环境变量 // "env": { // "环境变量名": "环境变量值" // } } } }
- 服务器名称: 给这个 MCP 服务器连接起一个在客户端中显示的友好名称,例如 "clojure-mcp"。
- command: 执行 Clojure 命令的路径,通常是 '/bin/sh' 或直接是你的 'clojure' 命令路径。
- args: 传递给 command 的参数。通常会包含:
- 'cd /你的/clojure-mcp/安装路径': 进入 Clojure MCP 项目目录。
- 'PATH=/你的/系统/bin/路径:$PATH': 确保 'clojure' 等命令在 PATH 中可执行。
- 'clojure -X:你的mcp别名 :port 你的端口号': 使用 Clojure '-X' 命令以你定义的 ':mcp' 别名启动服务器,并指定端口号。
- env: 如果你的某些工具(如 Agent 工具)需要 API Keys,你可以在这里配置相应的环境变量,或者确保这些环境变量已经在启动服务器的环境中设置。
配置完成后,启动或重启你的 MCP 客户端。
基本使用方法
- 在你的目标 Clojure 项目目录中启动 nREPL 服务器,使用你在 'deps.edn' 中配置的别名和端口。
- 启动或重启你的 MCP 客户端(例如 Claude Desktop)。
- 在客户端界面中,验证是否检测到 Clojure MCP 服务器连接。
- 开始新的对话时,可以通过客户端界面从 Clojure MCP 服务器添加提供的资源(如项目摘要、项目信息)和 Prompt 模板(如 REPL 系统 Prompt)。
- 在与 AI 交互时,可以通过对话指示 AI 使用服务器提供的工具来执行 Clojure 代码评估、文件读写、代码编辑等操作,结合 REPL 进行迭代开发和验证。
- 利用 'PROJECT_SUMMARY.md' 管理工作流,在修改代码后使用相应的 Prompt 更新项目摘要,帮助 AI 更好地理解项目。
信息
分类
开发者工具