mcpField
B
Babashka MCP Server

Babashka MCP Server

ローカル
github.com/bmorphism開発ツール2094 週間前に更新

Babashka MCP Server について

Babashka MCP Serverは、スクリプト用のネイティブClojureインタープリターであるBabashkaをMCPクライアントから操作するサーバーです。コードを実行し、直近の結果をキャッシュして、コマンド履歴をリソースとして公開します。

主な機能

  1. 01ツールによるBabashkaコードの実行
  2. 02直近のコマンド結果のキャッシュ
  3. 03リソース経由のコマンド履歴へのアクセス
  4. 04実行タイムアウトの設定

活用シーン

  1. 01AIクライアントからClojure式を実行
  2. 02直近のコマンド結果の確認
  3. 03長いスクリプトへの制限時間の設定

MCP 対応

Babashkaコード実行ツールをMCPクライアントに提供し、babashka://commands/{index}リソースを通じて直近のコマンド結果を公開します。

設定

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

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

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

リポジトリ

ツール

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

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

詳細

Babashka MCP サーバー

スクリプト作成用のネイティブ Clojure インタープリターである Babashka と連携するための Model Context Protocol サーバーです。

機能

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

前提条件

Babashka のインストール

Babashka は複数の方法でインストールできます。

macOS
brew install borkdude/brew/babashka
Linux
bash < <(curl -s https://raw.githubusercontent.com/babashka/babashka/master/install)
Windows
# 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")

ツール

execute

タイムアウトを任意で指定して 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} - インデックスを指定して特定のコマンド結果にアクセス

Babashka 言語の機能

末尾呼び出し最適化(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 自体で書き直す予定です。現在の TypeScript 実装は、参考および出発点として機能します。

ロードマップ

  1. セルフホスト可能な実装

    • MCP サーバーを Babashka で書き直す
    • Babashka のネイティブ機能を活用してパフォーマンスを向上させる
    • Node.js への依存をなくす
    • MCP プロトコルとの完全な互換性を維持する
    • 現在のすべての機能をサポートする:
      • コマンド実行
      • リソース管理
      • コマンド履歴
      • タイムアウト処理
  2. 機能の強化

    • Babashka pods のサポートを追加する
    • ファイル監視機能を実装する
    • REPL 統合を追加する
    • 複数の Babashka インスタンスをサポートする
  3. パフォーマンスの最適化

    • キャッシュ戦略を実装する
    • リソース使用量を最適化する
    • 起動時間を短縮する
  4. テストとドキュメント

    • 包括的なテストスイート
    • API ドキュメント
    • 使用例
    • パフォーマンスベンチマーク

コメント

MCP は初めてですか?

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

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