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

lein MCP

MCP Server

一个Leiningen插件,集成Model Context Protocol (MCP)与nREPL,允许AI助手如Claude与Clojure开发环境交互。

工具数

0

提示词数

0

GitHub Stars

0

资源数

0
Claude云端部署DockerClaude DesktopClaude

安装说明

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

作者 / 组织

ctford

提供方

ctford

最后核验

2026/5/17 20:20

快速接入

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

详细介绍

莱茵·麦克普

Leiningen插件将模型上下文协议(MCP)与nREPL集成在一起,允许像Claude这样的AI助手与您的Clojure开发环境进行交互。

特性

  • 莱宁根原住民融合:使用单个命令启动启用MCP的REPL lein mcp 命令
  • nREPL中间件:自动启动MCP HTTP服务器以及nREPL
  • MCP工具:为AI助手提供评估代码、加载文件、切换命名空间和搜索符号的工具
  • MCP资源:公开会话状态、命名空间、文档和源代码

安装

添加到您的 ~/.lein/profiles.clj:

{:user {:plugins [[lein-mcp "0.1.0-SNAPSHOT"]]}}

或添加到您的项目 project.clj:

:plugins [[lein-mcp "0.1.0-SNAPSHOT"]]

用法

快速开始

启动启用MCP的REPL:

lein mcp

这将:

  1. 启动nREPL服务器(默认端口:自动分配或从 :repl-options)
  2. 启动MCP HTTP服务器(默认端口:8787)
  3. 打印两台服务器的连接信息

自定义端口

# Custom nREPL port
lein mcp :nrepl-port 7888

# Custom MCP HTTP port
lein mcp :mcp-port 9000

# Both custom ports
lein mcp :nrepl-port 7888 :mcp-port 9000

无头模式

不使用交互式REPL运行:

lein mcp :headless

配置

添加到您的 project.clj:

:repl-options {
  :mcp-port 8787  ; Custom MCP HTTP port
  :nrepl-middleware [lein-mcp.middleware/wrap-mcp]  ; Explicit middleware (optional)
}

使用Claude代码

  1. 在项目目录中启动MCP服务器:
   cd /path/to/your/project
   lein mcp :headless

这创建了一个 .mcp-port 包含端口号的文件(对脚本和工具很有用)。

  1. 通过添加配置Claude代码 .mcp.json 对于您的项目:
   {
     "mcpServers": {
       "lein-mcp": {
         "url": "http://localhost:8787",
         "transport": "http"
       }
     }
   }
  1. Claude Code在此目录中工作时将连接到MCP服务器

与Claude Desktop一起使用

添加到您的 ~/Library/Application Support/Claude/claude_desktop_config.json:

{
  "mcpServers": {
    "clojure": {
      "command": "curl",
      "args": [
        "-X", "POST",
        "-H", "Content-Type: application/json",
        "--data-binary", "@-",
        "http://localhost:8787"
      ]
    }
  }
}

或者使用支持HTTP传输的专用MCP客户端。

MCP工具

该插件为AI助手提供了以下工具:

eval clojure

在REPL会话中评估Clojure代码。

参数:

  • code (string,必填):要计算的Clojure代码

例子:

{
  "tool": "eval-clojure",
  "arguments": {
    "code": "(+ 1 2 3)"
  }
}

加载文件

加载并评估Clojure文件。

参数:

  • file-path (string,必填):Clojure文件的路径

例子:

{
  "tool": "load-file",
  "arguments": {
    "file-path": "src/myapp/core.clj"
  }
}

设置ns

切换到其他命名空间。

参数:

  • namespace (string,必填):要切换到的命名空间

例子:

{
  "tool": "set-ns",
  "arguments": {
    "namespace": "myapp.core"
  }
}

关于

搜索与模式匹配的符号。

参数:

  • query (字符串,必填):搜索模式(字符串或正则表达式)

例子:

{
  "tool": "apropos",
  "arguments": {
    "query": "map"
  }
}

MCP资源

该插件公开了这些资源:

  • clojure://session/current-ns -当前命名空间名称
  • clojure://session/namespaces -所有已加载的命名空间
  • clojure://doc/{symbol} -符号的文档(例如。, clojure://doc/map)
  • clojure://source/{symbol} -符号的源代码(例如。, clojure://source/defn)

建筑

lein-mcp由几个部分组成:

  1. 莱宁根任务 (leiningen.mcp):入口点 lein mcp 命令
  2. nREPL中间件 (lein-mcp.middleware):将MCP与nREPL生命周期集成
  3. MCP服务器 (lein-mcp.server):用于MCP JSON-RPC请求的HTTP服务器
  4. MCP协议 (lein-mcp.protocol):处理MCP协议并转换为nREPL操作
  5. nREPL客户端 (lein-mcp.client):将MCP服务器连接回nREPL

运作原理

┌─────────────┐         ┌──────────────┐         ┌─────────────┐
│   Claude    │   HTTP  │  MCP Server  │  nREPL  │   nREPL     │
│  (AI Tool)  ├────────►│  (port 8787) ├────────►│(auto-assign)│
│             │  JSON-  │              │ BEncode │             │
└─────────────┘   RPC   └──────────────┘         └─────────────┘
                               │
                               │ Middleware Hook
                               ▼
                        ┌──────────────┐
                        │ Clojure REPL │
                        │   Session    │
                        └──────────────┘

当你奔跑时 lein mcp:

  1. Leiningen使用MCP中间件启动nREPL
  2. 中间件在端口8787上启动HTTP服务器
  3. HTTP服务器作为客户端连接回nREPL
  4. MCP JSON-RPC请求通过HTTP到达
  5. 请求被转换为nREPL操作
  6. 结果以JSON-RPC响应的形式返回

发展

建筑

lein install  # Install to local Maven repo

测试

# In a test project
lein mcp

# In another terminal, test with curl
curl -X POST http://localhost:8787 \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "initialize",
    "params": {
      "protocolVersion": "2024-11-05",
      "capabilities": {}
    }
  }'

许可证

版权所有©2024克里斯·福特

在Eclipse公共许可证版本1.0下分发。

目录标签

目录标签

Claude云端部署DockerClojure本地部署Clojure开发AI集成REPL工具nREPL插件代码评估

支持客户端

Claude DesktopClaude

接入字段

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

未说明

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

session

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

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

0

权限和风险

未说明session部署方式未说明

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

安装前确认

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

仍需确认:installCommand

来源信息

继续浏览同类 MCP