cl-tron-mcp は何をしますか?
SBCLおよびECL Common Lisp向けのMCPサーバー。SBCLアプリケーションの深いデバッグ、イントロスペクション、プロファイリング、ホットコードリローディングを実現します。
概要
cl-tron-mcpは、Common Lisp処理系(SBCLとECL)とMCP(Model Context Protocol)対応のAIエージェントを橋渡しするサーバーです。このサーバーを使用することで、AIアシスタントがLisp環境に直接アクセスし、以下の操作を実行できます。
- コードの評価と結果の取得
- スタックトレースの取得とエラー分析
- 関数の呼び出し回数や性能統計の収集
- 実行中のコードの動的更新
- シンボルとパッケージの情報検索
主な機能
| 機能 | 説明 |
|---|---|
| デバッグ | SBCLのデバッガに接続し、エラー発生時の状態を詳細に調査 |
| イントロスペクション | 関数、マクロ、変数、クラスなどのメタデータを取得 |
| プロファイリング | 関数ごとの実行時間と呼び出し回数を計測 |
| ホットコードリローディング | アプリケーションを再起動せずにコードを更新 |
必要条件
- SBCL 2.0 以上 または ECL 16.0 以上
- MCP対応クライアント(Claude Desktop など)
- ASDF 3.0 以上
インストール
- リポジトリをクローン:
git clone https://github.com/Alba-Intelligence/cl-tron-mcp.git
cd cl-tron-mcp
- Quicklisp または Ultralisp を使って依存関係をインストール:
(ql:quickload :cl-tron-mcp)
- MCPクライアントの設定ファイルに追加:
{
"mcpServers": {
"cl-tron-mcp": {
"command": "sbcl",
"args": ["--load", "/path/to/cl-tron-mcp/start.lisp"]
}
}
}
使用方法
MCPクライアント上で、以下のツールが利用可能になります。
ツール一覧
eval— Lispコードを評価debug— 現在のREPLデバッガ状態を取得inspect— 任意のオブジェクトの構造を表示profile— プロファイリングを開始/停止hot-reload— 指定のシステムを動的にリロード
使用例
;; コードの評価
eval (+ 1 2 3)
;; => 6
;; 関数のイントロスペクション
inspect #'my-function
;; => Arguments: (x y), Returns: number, Documentation: "My custom function"
;; プロファイリングの開始
profile :start
;; ホットリロード
hot-reload :my-system
設定
環境変数または設定ファイルで動作を変更できます。
| 変数 | デフォルト値 | 説明 |
|---|---|---|
CL_TRON_PORT | 5000 | MCPサーバーのポート番号 |
CL_TRON_DEBUG | false | デバッグログの有効化 |
CL_TRON_PROFILE | false | 自動プロファイリングの有効化 |
トラブルシューティング
- サーバーが起動しない: SBCL/ECLが正しくインストールされ、PATHに含まれているか確認してください。
- ツールが応答しない:
CL_TRON_DEBUG=trueを設定して詳細なログを確認してください。 - ホットリロードに失敗する: コードがコンパイル済みであることを確認し、ASDFシステムが正しく定義されているかチェックしてください。
貢献
バグ報告や機能リクエストは、GitHub Issues までお寄せください。プルリクエストも歓迎します。
ライセンス
MITライセンス。詳細は LICENSE ファイルを参照してください。