mcpField
M
Make CoPilot an Interactive Programmer

Make CoPilot an Interactive Programmer

ローカル
marketplace.visualstudio.com開発ツール641 週間前に更新

Make CoPilot an Interactive Programmer について

Make CoPilot an Interactive Programmer は、Copilot や Cursor などの AI コーディングエージェントに Calva の Clojure ツールを提供する VS Code 拡張機能で、Backseat Driver とも呼ばれます。Clojure 開発者を対象とし、REPL での評価と構造的編集をサポートします。MCP サーバーとしても利用できます。

主な機能

  1. 01接続済みの Calva REPL でのコード評価
  2. 02Clojure ファイルの構造的な作成と編集
  3. 03Parinfer による括弧のバランス調整
  4. 04シンボル情報と clojuredocs.org の検索
  5. 05読み取り可能なリソースとしてのスキル提供

活用シーン

  1. 01エージェントによる REPL での実装方法の調査
  2. 02トップレベルフォームの一括編集
  3. 03Clojure コア関数のドキュメントと例の検索

MCP 対応

本プロジェクトは MCP サーバーとして動作し、Calva の評価、編集、ドキュメント検索ツールとスキルのリソースを MCP クライアントに公開します。その他のハーネスではプロジェクトごとの設定が必要です。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

インストール方法は未掲載です

このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。

リポジトリ

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

VS Code でネイティブ AI インタラクティブプログラミングを有効にする

VS Code のエージェントハーネス向け Clojure ツール。(Copilot や Cursor など。)

VS Code Extension Issues License

Backseat Driver を使うと、VS Code の AI ハーネスから、次の方法で Calva の Clojure ツールにアクセスできます。

  1. Copilot:設定不要です。(VS Code LM Tools. を使用します。)
  2. Cursor:設定不要です。(Cursor の add-MCP-server API を使用します。)
  3. その他の AI ハーネス:MCP(プロジェクトごとに設定が必要です)。

機能

  • ツール:コードの評価 必要に応じてコードを評価するための Clojure REPL へのアクセスです。Calva のすべてのアクティブな REPL セッションを対象にでき(shadow-cljs の場合は、ビルドとランタイムも対象にできます)。
  • ツール:Clojure ファイルの編集 バッチ処理に対応した、ファイルの構造的な作成と編集です。以下が含まれます。
    • Clojure ファイルの作成 括弧を自動で対応させて Clojure ファイルを作成します
    • コードの追加 括弧を自動で対応させて Clojure ファイルにコードを追加します
    • トップレベルフォームの置換 フォーマット、括弧の対応付け、リンティングを含む構造的な編集です
    • トップレベルフォームの挿入 フォーマット、括弧の対応付け、リンティングを含む構造的な編集です
  • ツール:括弧バランサー モデルが括弧のバランスを正しく取れるよう支援します(Parinfer を使用)
  • ツール:ファイルの読み込み Calva の接続済み REPL を通じて Clojure ファイル全体を読み込み、評価します
  • ツール:シンボル情報の検索 AI は必要なシンボルを検索でき、ドキュメント文字列、引数情報などを取得できます
  • ツール:clojuredocs.org の検索 Clojure のコアに関連するシンボルのドキュメント、例、関連項目の情報です
  • リソース:シンボル情報の検索(やや実験的)ツールと同じです
  • リソース:clojuredocs.org の検索(やや実験的)ツールと同じです
  • リソース:スキル resources/list で検出でき、resources/read で読み取れる、専門的な指示です

編集ツールには、編集内容を確認するための UI がありませんのでご注意ください。ソース管理ツールと VS Code の タイムライン ビューを使うことをおすすめします。

エージェント向けの手引き:Backseat Driver の活用

Backseat Driver は、Clojure のインタラクティブプログラミング用ツールと、そのツールの使い方を示すスキルを AI エージェントに提供します。エージェントによる Clojure と REPL の扱い方を制御できるよう、この拡張機能では Clojure の知識や理念、REPL の方法論はあまり提供していません。

エージェントに Clojure で真に効果的な作業をさせるには、Clojure をどのように記述するのが好みか、また REPL を効果的に使う方法をエージェントに伝える必要があります。

白紙の状態から始めて、質の低い学習データや Clojure に関する幻覚で作業が台無しになるのを避けるため、Awesome Backseat Driver リポジトリから clojure やその他のプラグインをインストールすることを検討してください。

メモ

Awesome Backseat Driver には、Copilot と Cursor 用のプラグインがあります(現時点)。ただし、ほかのハーネスを使っている場合でも、そこからスキルやカスタムエージェントなどをコピーできます。(または、エージェントに代わりに作業してもらうこともできます。)

Backseat Driver の設定

評価結果のサイズ制限

大きな REPL の評価結果によってエージェントのコンテキストウィンドウが圧迫されないよう、Backseat Driver は返される結果のサイズを自動的に制限します。

  • calva-backseat-driver.evaluation.maxLength(デフォルト 25) — コレクション内で表示する項目の最大数です。0 を指定すると、長さの制限が無効になります。
  • calva-backseat-driver.evaluation.maxDepth(デフォルト 7) — ネストの最大深度です。それより深い構造は ## に置き換えられます。0 を指定すると、深度の制限が無効になります。
スキル

Backseat Driver は AI エージェント向けに 2 つのスキルを提供します。

  • calva-backseat-driver.provideBdSkill(デフォルト true) — エージェントに Backseat Driver スキルを提供します
  • calva-backseat-driver.provideEditSkill(デフォルト true) — エージェントに Clojure の構造編集スキルを提供します
エディターの設定

トップレベルフォームの挿入と置換を行う構造編集ツールは、Backseat Driver の次の 2 つのエディター設定に従います。

  • calva-backseat-driver.editor.fuzzyLineTargetingPadding(デフォルト 2) — 対象テキストの照合時に、AI が指定行の前後を検索できる行数です。大規模なリファクタリング中にフォームが移動する場合は値を増やしてください。行を厳密に指定する場合は 0 に設定します。トレードオフ:値を大きくすると行のずれを許容できますが、エージェントが保持しているバッファーのコピーが古い場合、近くにある類似したフォームを誤って照合するリスクが高まります。
  • calva-backseat-driver.editor.lineContextResponsePadding(デフォルト 10) — 対象指定に失敗したときに返されるトラブルシューティング用スニペットに含める、指定行の前後の行数です。応答を短くするには値を減らし、周辺のコンテキストを増やすには値を増やしてください。トレードオフ:値を大きくすると、エージェントが再試行する際の手掛かりが増えますが、焦点を絞ったスニペットを送る場合と比べて、追加のトークンや時間がかかることがあります。
MCP

参照:Backseat Driver を MCP サーバーとして設定する

はじめに

前提条件
使い方
  1. AI に Clojure と REPL の作法を教えます。例:エージェントへの指示
  2. Calva を Clojure/ClojureScript プロジェクトに接続します
  3. Copilot に作業を依頼します。「調査に REPL を使ってください」と伝えれば、意図を理解します。
  • 適切な REPL セッションの見つけ方と使い方を把握しています。
  • Calva を設定して REPL の出力先をターミナルにし、出力ターミナルを監視して、REPL で何を試しているか確認します

サブエージェント、特に並列で動作するサブエージェントとの相性も非常に良好です。次のように試してみてください。

  1. 「並列で動作する 3 つのサブエージェントにタスクを割り当て、実装方法の調査に REPL を使うよう依頼してください……」
  • REPL の出力には、あなたとエージェントが REPL で何を試しているかが表示されます。
  • REPL のセッションに参加できます。

作業中

私たちみんなと同じように、私も AI の使い方を学びながら、一つずつ手探りしています。その間にも、この分野全体は私の学習より速く進んでいます。Backseat Driver は、設定不要ですぐ使える強力な AI ツールを Clojure 開発者に提供するための、私なりの精一杯の取り組みです。

Backseat Driver の基本設計は、時間をかけて有用であることが実証されてきました。一方、新しいことを学ぶたびに、少しずつ改善も重ねてきました。こうして学んだことの多くは、ユーザーの皆さんから教わりました。

Backseat Driver を使ってみた感想や、追加してほしい機能をぜひお聞かせください。🙏

コントリビューション

コントリビューションを歓迎します!Issue、PR など、どんな形でも構いません。PR を送る前に、解決したい問題を記載した Issue を作成していただけると助かります。作業を始める前に、Issue について相談していただいても構いません。

ライセンス 🍻🗽

MIT

オープンソースの活動をご支援ください ♥️

以下のリンクから、私の活動を応援していただけます。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。