mcpField
L
LivebookTools

LivebookTools

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

LivebookTools について

LivebookTools は、livebook.dev 向けのコマンドラインツールで、.livemd ファイルを開いている Livebook セッションに同期したり、Elixir スクリプトとして実行したりできます。Elixir と Livebook を使うユーザー向けで、AI コーディングエージェントから Livebook セッションに接続することもできます。

主な機能

  1. 01.livemd ファイルの Livebook セッションへの同期
  2. 02STDIO で動作する MCP サーバー
  3. 03Livebook から Elixir スクリプトへの変換と実行
  4. 04分散 Elixir による実行中の Livebook サーバーへの接続

活用シーン

  1. 01Cursor などの AI コードエディタでの Livebook ファイルの編集
  2. 02コーディングエージェントによる Livebook セッションの操作
  3. 03Livebook をコマンドラインから cron ジョブとして実行

MCP 対応

本プロジェクトには STDIO で動作する MCP サーバーが含まれており、AI コーディングエージェントが Livebook セッションに接続できるようにします。

設定

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

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

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

リポジトリ

ツール

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

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

詳細

LivebookTools

Livebook Tools は、.livemd ファイルを扱う際に強力な機能を提供する CLI ツールです。
主な機能は次のとおりです。

  • BYOE(エディターはお好みのものを使用) - .livemd ファイルを開いている Livebook セッションに同期し、Cursor などの AI 対応コードエディターで編集できるようにします。
  • MCP サーバー - AI コーディングエージェントを Livebook セッションに接続するためのシンプルなモデルコンテキストプロトコルサーバーです。詳しくは後述します。
  • CLI から Livebook を実行 - .livemd ファイルを Elixir スクリプトに変換し、.exs スクリプトのように先頭から末尾まで実行します。Livebook を cron ジョブにしたい場合に便利です。

インストール

Livebook Tools は Elixir の escript です。
インストールするには、mix escript.install コマンドを使用します。

mix escript.install github thmsmlr/livebook_tools

インストール後、escript ディレクトリがパスに含まれていることを確認してください。

# for normal elixir users
export PATH="$HOME/.mix/escripts:$PATH"

# for asdf elixir users
for escripts_dir in $(find "${ASDF_DATA_DIR:-$HOME/.asdf}/installs/elixir" -type d -name "escripts" 2>/dev/null); do
  export PATH="$escripts_dir:$PATH"
done

Livebook の実行

Livebook Tools を正しく動作させるには、分散 Elixir を使って実行中の Livebook サーバーに接続できる必要があります。
接続方法は、Livebook の実行方法によって異なります。
最も簡単な方法は、2 つの環境変数を ~/.bashrc または ~/.zshrc ファイルに追加することです。

export LIVEBOOK_NODE="[email protected]"
export LIVEBOOK_COOKIE="secret"

その後、Livebook Tools または Livebook を実行すると、両方のプログラムがこれらの値を検出し、互いに接続できるようになります。 Livebook Desktop を使って実行している場合は、これらの値を ~/.livebookdesktop.sh ファイルにも追加する必要があるかもしれません。 Livebook Desktop の詳細については、Livebook HexDocs をご覧ください。

MCP サーバーの設定

MCP サーバーは、AI コーディングエージェントを Livebook セッションに接続できるシンプルなモデルコンテキストプロトコルサーバーです。
個人的にはCursorで実装をテストしましたが、MCP プロトコルに対応する AI コードエディターであれば、どれでも動作するはずです。 MCP サーバーは STDIO 経由で実行されるため、Cursor にコマンド経由で接続するよう指示するだけで、ツールが自動的に検出され、コーディングエージェントに接続されます。 MCP が Cursor とどのように連携するかについては、Cursor MCP のドキュメントをご覧ください。

Cursor MCP サーバーの作成 Cursor MCP サーバーの接続

便利なヒント

Livebook で実行する場合でも、livebook_tools run <file> を使ってコマンドラインから実行する場合でも、コードの実行方法をカスタマイズしたいことがあります。 Livebook 内で実行しているか、コマンドラインから実行しているかを判別するために使える、簡単なコードスニペットがあります。

# Detect if we're running in a livebook
is_livebook = !String.ends_with?(__ENV__.file, ".exs")

# If we're running in a livebook, argv doesn't really make sense, so we'll just return an empty list
argv = if is_livebook, do: [], else: System.argv()

# Parse command line arguments
# We'll use OptionParser to handle both flags and positional arguments
{parsed_opts, positional_args, invalid_opts} =
  OptionParser.parse(
    argv,
    strict: [
      dry_run: :boolean,
      limit: :integer
    ],
    aliases: [
      d: :dry_run,
      l: :limit
    ]
  )

# Extract options with default values, in livebook it'll just use the default values
dry_run = Keyword.get(parsed_opts, :dry_run, false)
limit = Keyword.get(parsed_opts, :limit, 10)

コメント

MCP は初めてですか?

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

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