Babashka MCP Server

by bmorphism
Verified

local-only server

The server can only run on the client’s local machine because it depends on local resources.

Integrations

  • The MCP server provides integration with Babashka, which is a native Clojure interpreter for scripting. It allows execution of Clojure code through the MCP protocol.

  • The README mentions GitHub Actions tools for Babashka, including setup-babashka and babashka-docker-action, which are recommended for using Babashka in GitHub Actions workflows.

ババシュカ MCP サーバー

スクリプト用のネイティブ Clojure インタープリターであるBabashkaと対話するためのモデル コンテキスト プロトコル サーバー。

特徴

  • MCPツールを通じてBabashkaコードを実行する
  • 最近のコマンド結果をキャッシュする
  • MCP リソースを通じてコマンド履歴にアクセスする
  • 設定可能なコマンドタイムアウト

前提条件

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))))

役立つリソース

公式リソース

コミュニティツールとライブラリ

  • pod-babashka-buddy - Babashka 用の暗号化 API
  • bb-clis - 便利な Babashka CLI スクリプトのコレクション
  • bb-scripts - Babashka 用のさまざまなユーティリティ スクリプト

開発ツール

発達

このサーバーは最終的にセルフホスティングとなるように設計されており、Babashka 自体で書き換えられる予定です。現在の TypeScript 実装はリファレンスおよび出発点として機能します。

ロードマップ

  1. セルフホスト実装
    • BabashkaのMCPサーバーを書き換える
    • Babashka のネイティブ機能を活用してパフォーマンスを向上
    • Node.jsへの依存を削除する
    • MCPプロトコルとの完全な互換性を維持
    • 現在のすべての機能をサポートします:
      • コマンド実行
      • リソース管理
      • コマンド履歴
      • タイムアウト処理
  2. 強化された機能
    • Babashkaポッドのサポートを追加
    • ファイル監視機能を実装する
    • REPL統合を追加する
    • 複数の Babashka インスタンスのサポート
  3. パフォーマンスの最適化
    • キャッシュ戦略を実装する
    • リソース使用の最適化
    • 起動時間を短縮
  4. テストとドキュメント
    • 包括的なテストスイート
    • APIドキュメント
    • 使用例
    • パフォーマンスベンチマーク

You must be authenticated.

A
security – no known vulnerabilities
F
license - not found
A
quality - confirmed to work

Tools

モデル コンテキスト プロトコルを使用して Babashka スクリプトの実行と管理を可能にし、強化されたスクリプト ワークフローのためのキャッシュ、コマンド履歴へのアクセス、構成可能なタイムアウトなどの機能を提供します。

  1. Features
    1. Prerequisites
      1. Install Babashka
      2. Verify Installation
    2. Installation
      1. Configuration
        1. Tools
          1. execute
        2. Resources
          1. Babashka Language Features
            1. Tail Call Optimization (TCO)
          2. Useful Resources
            1. Official Resources
            2. Community Tools & Libraries
            3. Development Tools
          3. Development
            1. Roadmap
              ID: 5x0u155x1h