ババシュカ MCP サーバー
スクリプト用のネイティブ Clojure インタープリターであるBabashkaと対話するためのモデル コンテキスト プロトコル サーバー。
特徴
MCPツールを通じてBabashkaコードを実行する
最近のコマンド結果をキャッシュする
MCP リソースを通じてコマンド履歴にアクセスする
設定可能なコマンドタイムアウト
Related MCP server: Akash MCP Server
前提条件
Babashkaをインストールする
Babashka はいくつかの方法でインストールできます。
macOS
brew install borkdude/brew/babashkaリナックス
bash < <(curl -s https://raw.githubusercontent.com/babashka/babashka/master/install)ウィンドウズ
# Using scoop
scoop install babashkaその他のインストール方法については、公式の Babashka インストール ガイドを参照してください。
インストールの確認
インストール後、Babashka が動作することを確認します。
# Check version
bb --version
# Try a simple expression
bb -e '(+ 1 2 3)'
# Run a script from string
bb -e '(defn hello [x] (str "Hello, " x "!")) (hello "World")'
# Use -i flag to process lines of input
ls | bb -i '(take 2 *input*)'インストール
# Install dependencies
npm install
# Build the MCP server
npm run build構成
サーバーは環境変数を通じて設定できます:
BABASHKA_PATH: Babashka 実行ファイルへのパス (デフォルト: "bb")
ツール
実行する
オプションのタイムアウト付きで Babashka コードを実行します。
{
name: "execute",
arguments: {
code: string; // Babashka code to execute
timeout?: number; // Timeout in milliseconds (default: 30000)
}
}例:
{
name: "execute",
arguments: {
code: "(+ 1 2 3)",
timeout: 5000
}
}リソース
サーバーは、以下を通じてアクセスできる最近のコマンド実行のキャッシュを保持します。
babashka://commands/{index}- インデックスで特定のコマンド結果にアクセスします
ババシュカ語の特徴
末尾呼び出し最適化 (TCO)
Babashkaは、 recur特殊形式による明示的な末尾呼び出し最適化をサポートしていますが、自動TCOは実装していません。例えば、
;; This will cause stack overflow
(defn countdown [n]
(if (zero? n)
:done
(countdown (dec n))))
;; This works with TCO using recur
(defn countdown [n]
(if (zero? n)
:done
(recur (dec n))))役立つリソース
公式リソース
Babashka GitHub リポジトリ- メインの Babashka プロジェクト
ババシュカの本- 公式ドキュメント
Babashka の例- サンプルスクリプトのコレクション
コミュニティツールとライブラリ
pod-babashka-buddy - Babashka 用の暗号化 API
bb-clis - 便利な Babashka CLI スクリプトのコレクション
bb-scripts - Babashka 用のさまざまなユーティリティ スクリプト
開発ツール
setup-babashka - Babashka をインストールするための GitHub アクション
babashka-docker-action - GitHub アクションで Babashka スクリプトを実行する
発達
このサーバーは最終的にセルフホスティングとなるように設計されており、Babashka 自体で書き換えられる予定です。現在の TypeScript 実装はリファレンスおよび出発点として機能します。
ロードマップ
セルフホスト実装
BabashkaのMCPサーバーを書き換える
Babashka のネイティブ機能を活用してパフォーマンスを向上
Node.jsへの依存を削除する
MCPプロトコルとの完全な互換性を維持
現在のすべての機能をサポートします:
コマンド実行
リソース管理
コマンド履歴
タイムアウト処理
強化された機能
Babashkaポッドのサポートを追加
ファイル監視機能を実装する
REPL統合を追加する
複数の Babashka インスタンスのサポート
パフォーマンスの最適化
キャッシュ戦略を実装する
リソース使用の最適化
起動時間を短縮
テストとドキュメント
包括的なテストスイート
APIドキュメント
使用例
パフォーマンスベンチマーク