世界を動かす技術を、日本語で。

Clojure MCP

概要

Clojure MCP は、AIアシスト付きREPL駆動開発を実現するClojure専用ツール群。 Claude Desktop と連携し、Clojureプロジェクトの生産性を大幅に向上。 nREPL を介してAIモデルと統合、編集・解析・整形など高度な支援を提供。 導入は簡単 で、依存関係の分離やAPIキー管理も柔軟に対応。 プロジェクト要約やワークフローの自動化 で、AIによる開発補助を最大化。

Clojure MCPとは

  • AIアシスト付きREPL駆動開発 を支援するClojure用MCP(Model Context Protocol)サーバー
  • 開発初期段階 であり、仕様変更やドキュメントの未整備に注意
  • Claude Desktop との併用で最適な体験を実現
  • Clojure特化 の編集・解析ツール(clj-kondo, parinfer, cljfmt, clj-rewrite等)を統合
  • Emacsライクな編集ハイライト (アルファ版)もサポート

主な機能

  • Clojure REPL への接続とAIアシストによる即時フィードバック
  • 構造認識型編集 :括弧の自動補完、リント、フォーマット
  • 状態管理付きファイルトラッキング :外部変更検知・編集競合防止
  • Clojure構文・意味論を理解した操作 で一貫性のある開発体験
  • 複数AIモデル対応 :Claude 3.7/4, Gemini 2.5, OpenAI o4-mini/o3等

MCPツールの一貫性と利点

  • ツール同士が状態・コンテキストを共有 し、賢い挙動を実現
  • 一貫したインターフェースとエラーハンドリング
  • Clojure開発に特化した安全性・効率性の高いワークフロー
  • ファイル状態の厳密な管理 で編集の信頼性向上

Claude Code等他ツールとの併用について

  • MCP単体利用を推奨 :フル機能を体験可能
  • ファイル状態管理やツール機能の競合 に注意
  • MCPの統合的アプローチに慣れてから 他ツールとの併用を検討

インストール手順

必要条件

  • Clojure 1.11以上
  • Java JDK 11以上
  • Claude Desktop (推奨)

MCPサーバーのセットアップ

  • deps.edn にgit依存またはローカルパスでclojure-mcpを追加
    • 例:
      {:aliases {:mcp {:deps {org.slf4j/slf4j-nop {:mvn/version "2.0.16"}
                             com.bhauman/clojure-mcp {:git/url "https://github.com/bhauman/clojure-mcp.git"
                                                      :git/sha "最新のSHA"}}
                      :exec-fn clojure-mcp.main/start-mcp-server :exec-args {:port 7888}}}}
      
    • 最新SHAはGitHubのコミット履歴参照、またはローカルcloneで確認
  • MCPサーバーは任意ディレクトリで起動可能 (プロジェクトディレクトリ外でもOK)
  • プロジェクト依存とは分離 して運用(混在禁止)

対象プロジェクトの設定

  • nREPLサーバー をプロジェクトで起動
    • 例:
      {:aliases {:nrepl {:extra-deps {nrepl/nrepl {:mvn/version "1.3.1"}}
                         :main-opts ["-m" "nrepl.cmdline" "--port" "7888"]}}}
      
  • nREPLはMCPサーバーと同一マシン上で稼働必須

Claude Desktopの設定

  • claude_desktop_config.json でMCP起動コマンドを指定
    • 例:
      {
        "mcpServers": {
          "clojure-mcp": {
            "command": "/bin/sh",
            "args": [
              "-c",
              "cd ~/workspace/clojure-mcp && PATH=/opt/homebrew/bin:$PATH && clojure -X:mcp :port 7888"
            ]
          }
        }
      }
      
  • パスやディレクトリは環境に応じて調整

動作確認

  • プロジェクトでnREPL起動clojure -M:nrepl
  • Claude Desktop再起動 ・接続確認(+ボタンで"Add from clojure-mcp"が表示される)

開発ワークフロー

  • Claude Desktopで新規会話開始
    • PROJECT_SUMMARY.md等のリソース追加推奨
    • clojure_repl_system_prompt等のプロンプトを活用
  • LLMに問題提起→提案→REPL検証→コード編集→テスト・コミット のサイクル
  • AIによるREPL操作やテスト実行も可能
  • こまめなコミット推奨 (AIの暴走防止)

プロジェクト要約管理

  • PROJECT_SUMMARY.md 自動生成・更新ワークフロー
    • コードベース構造・主要ファイル・依存・利用ツールをAIが解析・文書化
    • 新機能追加時はcreate-project-summaryプロンプトで再生成
    • AIアシスタントが即座にプロジェクト全体像を把握

LLM APIキー管理

  • 通常利用にAPIキー不要 (一部MCPツールのみ必要)
  • 必要な場合 :GEMINI_API_KEY, OPENAI_API_KEY, ANTHROPIC_API_KEYを取得・設定
  • 環境変数で管理 (exportやシェルプロファイルに記載)
  • Claude Desktop設定でenv指定も可能

まとめ

  • Clojure MCPはAI×REPL駆動開発の新しい形 を提案
  • Clojure開発の効率・安全性・一貫性を大幅に向上
  • 導入・運用もシンプル で、開発現場への適用が容易
  • コミュニティへの貢献・フィードバック歓迎

Hackerたちの意見

チャットボットのデスクトップアプリって何の意味があるの?こういうのにはAPIがあると思ってたんだけど。ローカルでコードを動かす必要があるなら、なんでGoogleに金払ってClaudeを動かすの? > 「最初はClaude Desktopと一緒に使うのをおすすめするよ。見た目もいいし、API料金もかからないから!」 これ、誰にとっても意味あるの?

具体的に何を聞きたいのかよくわからないけど。例えば、Clojureのプロジェクトがあって、それがコンピュータのフォルダにあって、たぶんGitリポジトリをクローンしたり初期化したりしたんだよね。で、clojure-mcpに接続できるエージェント的なLLMを使いたいと。そうすれば、LLMにプロジェクトのソースファイルやフォルダ構成、リソース、ドキュメントを実際に編集させることができる。選択肢はあまり多くないけど、 - Amazon Q CLI - Claude Code CLI - OpenAI Codex CLI が一番いいと思う。それから、CursorやWindsurf、Copilotエージェントモード(今はパブリックプレビュー中)みたいなIDEベースのものもあるけど。彼らが言ってるのは、Claude DesktopもMCPをサポートしていて、API料金なしで使えるってこと。正直、IDE内のものはあまり良くないと思う。エディタの中にこんなものを入れる必要はないよね。個人的にはCLIの方が好きだけど、Claude Desktopをサイドバーとして使うのも簡単だと思うよ。

もしMCPがあって、例えばフロントエンドが動いているChromeタブに接続できたら、エージェントがウェブページを視覚的に検査したり、ネットワークやコンソールタブを見たりできるようになるよね。それはめっちゃ役立つと思う。今そんなのある?

プレイライトMCP

REPL駆動の開発は、現在のエージェントの概念と自然に合ってる気がする。ちなみに、ブルースはClojurescript用のホットリロードツールであるfigwheelも作ったよ。 https://figwheel.org

LLMがREPLとやり取りするって意味なら、ちょっとわからないな。REPLは開発者が状態を追跡するためにかなりの規律が必要だから。LLMはこの長期的な状態追跡がほとんどの人間よりも下手みたい。たぶん、すぐに忘れたり、未定義の関数を呼んだり、自分のインターフェースを間違えたりするだろうね。

REPL駆動の開発から簡単に回帰テストを取得する方法を見てみたいな。一般的に、チャットボット統合でモックを素早く設定する方法が気になる。

READMEに書いてあった、API料金を避けるためにClaude Desktopと一緒に使うっていうのは、Claudeを使ったMCPのセットアップには最高のヒントだね。Clojureユーザーじゃないけど、JetbrainsのMCPサーバーを設定して、Claude Desktopがすごくうまく動いてる。Jetbrainsを使うときに、プロジェクトのコンテキストを得るためにCLAUDE.mdをチェックするようにClaudeに指示するシステムプロンプトを追加したけど、これもすごくうまくいってるよ。

でも、Claude Codeは最大サブスクリプションで実行することもできるよ(無料じゃないけど、上限があって高使用が可能で、純粋なAPIコストよりずっと安い)。

これを見て「また盛り上がってるバイブのコーディングツールか」と思うかもしれないね。Clojureがシンプルさとコードを深く理解すること(長期的なメンテナンスと信頼性を目指す)に関するものであれば、なんでこれが必要なんだろう? Clojureを使っていると、主に2つのケースでLLMを使ってるんだ。1つ目は検索、2つ目はデザインフィードバック。最初のケースは、LLMチャットインターフェースを使ったことがある人には明らかだよね。伝統的な検索エンジンよりもLLMに聞いた方が答えが得やすいことが多いから。2つ目のケースはもっと面白い。システムのデザインは、使う言語よりも重要だと思ってる。デザインが良い他の言語のコードベースを引き継ぐ方が、デザインが悪いClojureのコードベースよりもずっといい。Clojureにはその言語自体と周りのコミュニティに埋め込まれた価値観があって、Clojureプログラマーは自然と「まず考えて、次にコードを書く」ことが奨励されるんだ。2つ目のケースで直面した問題は、LLMに文脈を伝えるのが結構大変で、詳細な質問に答えてもらうのが難しいこと。だから、一般的なデザインの質問をして、それをClojureに翻訳する時にLLMを使うことが多い。既存のClojureコードについて具体的な質問をするのは、労力に見合わないと感じてるから、実際にLLMに話す時はもっと一般的なことを言うように自分を訓練してきた。Claude CodeとのこのMCPは、一般的なデザインフィードバックだけじゃなくて、自分のコードについて質問を始めるきっかけになりそうだ。最近マルチテナンシーサポートを追加したプロジェクトにこれを接続してみたんだけど、低レベルの変更が必要だった。Claude CodeとここにリンクされているClojure MCPを使って、次の質問をしたんだ。> セットアップ後に必要な :app-id がある場合、チェックすべき場所で見落としているところはある? 実際、具体的なファイルやコードの場所について良いフィードバックをもらえたのは、約10秒の労力で済んだよ。ただ、コストは$0.48かかったけどね。これがあれば、Claude Maxプランに加入するかもしれないな…。

これだよ。インデックス化されたコードをつなげてない開発者がたくさんいるんだ。「自分のコードについて質問を始める場所」とかね。彼らはこれを検索エンジンのように扱ってる。LLMに自分のコードをインデックス化させるのが理想なんだ。そうすれば、LLMの本当の力が見えてくる。ネタバレ:すごいよ。

3つ目の方法を試してみるべきだと思うよ:3. エージェンティックコーディング(別名バイブコーディング)これがClojure-MCPとClaude Desktopで試せるやつだよ。Amazon Q CLIも試せるよ(無料プランもあるしね)。Clojureに特化してるわけじゃないから、活用できるワークフローを見つける必要があるよ。アプローチは2つある。

  1. 開発者主導型 ここではプロジェクトと基本的なプロジェクト構造を設定するよ。使いたい依存関係を追加して、srcフォルダやテストフォルダを設定するんだ。それから、作りたい名前空間を作り始めるけど、実装はしないで、ただ(ns ...)を作って、説明文を付けるだけ。API用の公開関数も追加できるけど、これも実装しないで、署名と説明文だけを追加する。次に、そのためのテスト名前空間を作るよ。テストしたい関数のためにdeftestを作って、(testing ...)を追加するけど、ボディは追加しないで、テストの説明だけを書くんだ。そしたらAIにテストと名前空間の実装を埋めてもらって、すべてのテストケースが通るようにして、テストを実行して、すべてが通るまで繰り返す。次に、AIに自己コードレビューをさせて、コメントがなくなるまでコードを改善させる。必要に応じてセキュリティや例外処理、ログ記録についても言及すると、そこに取り組んでくれるよ。これを繰り返していく感じ。自分のテストを追加して、より確実にすることもできるし、実際に試してもらって修正を依頼することもできるよ。
  2. プロダクト主導型 ここではプロダクトマネージャーのふりをするよ。プロジェクトを作って、ユーザーストーリーやアプリ/サービスの機能を説明するマークダウンファイルを追加していくんだ。それからAIにデザイン仕様書を生成してもらう。これをレビューして、気に入るまで繰り返す。次に、AIにデリバリープランとテストプランを作成させる。これもレビューして、気に入るまで繰り返す。次に、AIにデリバリーをマイルストーンに分けさせて、最初のマイルストーンのタスクを分解させる。ここでもレビューして、繰り返す。次に、AIに最初のタスクを実装させて、テストもつける。これもレビューして、繰り返す。次は次のタスク、って感じで続けていくよ。

見た目も良くて、便利なニッチを埋めてるね。残念ながら、私はGemini、OpenAI、ローカルモデルしか使ってないから、これはClaude用に設定されてるんだ。将来的に他のプラットフォームがサポートされるか確認するためにカレンダーにリマインダーを設定したよ。話は変わるけど、Google JulesがClojure開発に役立つことがわかった。

GeminiとOpenAIのサポートがあるみたいだよ。https://github.com/bhauman/clojure-mcp?tab=readme-ov-file#ll...

MCPはClaudeに固有のものではないと思う。私の理解では、MCPサポートのあるどんなエージェントやクライアントでも動作するはずだよ。Bruceは特にClaude Desktopを推奨してるのは、トークンコストを気にせずにClojure MCPを試すのが簡単だからだね。

状態を持つREPLに完全に接続されたLLMアシスタントを使ってみるまでは、推測できないよ。その体験は素晴らしい。開発中のコードに対するフィードバックが早くて密接だから。LLMエージェントは、関数のコードを書いた後に、すぐにいくつかのスモークテストの式を続けて、その全てを一度に評価するんだ。開発中のコードを試すために、創造的にテストハーネスを設定することもあるよ。(HTMLエンドポイント、サーバーの起動と停止、モックなどを考えてみて)それはそこから続いていくんだ。体験だよ、読者には早めに体験してほしい。これは非常に効果的なワークフローで、すごくいいから!

ClojureのREPLでAIを使ったワークフローのデモを短い動画で作ってもらえる可能性はある?

Clojure MCP用のフラッピーバードデモだよ!

https://www.youtube.com/watch?v=F61YWNapxJg これはクールなデモだね。大きなコードベースでこのREPLアシスタントのアプローチがどれだけうまく機能するか、興味があるよ。

デモの動画があるよ: https://www.youtube.com/watch?v=F61YWNapxJg