mcpField
L
LivebookTools

LivebookTools

本地服务
github.com/thmsmlr开发工具12179 周前更新

关于 LivebookTools

LivebookTools 是用于 livebook.dev 的命令行工具,可将 .livemd 文件同步到打开的 Livebook 会话,也可将其转换为 Elixir 脚本运行。它面向 Elixir 和 Livebook 用户,并支持让 AI 编码 Agent 连接 Livebook 会话。

主要功能

  1. 01将 .livemd 文件同步到 Livebook 会话进行编辑
  2. 02通过 STDIO 运行的 MCP 服务
  3. 03将 Livebook 转换为 Elixir 脚本并从命令行运行
  4. 04通过分布式 Elixir 连接正在运行的 Livebook 服务

适用场景

  1. 01在 Cursor 等 AI 代码编辑器中编辑 Livebook 文件
  2. 02让编码 Agent 访问并操作 Livebook 会话
  3. 03将 Livebook 作为定时任务从命令行运行

MCP 相关

该项目包含一个 MCP 服务,通过 STDIO 运行,使 AI 编码 Agent 能够连接到 Livebook 会话。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

LivebookTools

Livebook Tools 是一款 CLI 工具,可让你在处理 .livemd 文件时如虎添翼。
其主要功能包括:

  • BYOE(自带编辑器) - 将 .livemd 文件同步到已打开的 Livebook 会话,这样你就可以在 Cursor 等 AI 驱动的代码编辑器中编辑这些文件。
  • MCP 服务 - 一个简单的模型上下文协议服务,可将 AI 编码 Agent 连接到你的 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 的方式。
最简单的做法是在 ~/.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 编码 Agent 连接到你的 Livebook 会话。
我亲自使用 Cursor 测试过此实现,不过它应该也适用于任何支持 MCP 协议的 AI 代码编辑器。 MCP 服务通过 STDIO 运行,因此你只需告诉 Cursor 使用该命令进行连接,它便会自动发现工具并将其连接到自己的编码 Agent。 有关 Cursor 如何使用 MCP 的更多信息,请查看 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)

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。