B

Babashka服务管理器

@bmorphism/babashka-mcp-server
0 Stars 302 次浏览 bmorphism 更新于 2026-08-23

启用使用模型上下文协议的 Babashka 脚本的执行和管理,提供缓存、命令历史记录访问和可配置超时等功能,以增强脚本工作流。

该服务暂未提供标准配置,请参考 README 手动接入

可用工具 (1 个)

该服务在 MCP 协议中暴露的工具,AI 可按需调用

execute 2 个参数 需填 1 项

Execute Babashka (bb) code

必填参数:code

服务介绍

Babashka MCP 服务器

一个用于与 Babashka(一种原生的 Clojure 脚本解释器)交互的 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. 自托管实现

    • 用Babashka重写MCP服务器
    • 利用Babashka的原生功能以提高性能
    • 移除Node.js依赖
    • 保持与MCP协议的完全兼容性
    • 支持所有当前功能:
      • 命令执行
      • 资源管理
      • 命令历史
      • 超时处理
  2. 增强功能

    • 添加对Babashka pods的支持
    • 实现文件监视功能
    • 添加REPL集成
    • 支持多个Babashka实例
  3. 性能优化

    • 实现缓存策略
    • 优化资源使用
    • 减少启动时间
  4. 测试与文档

    • 全面的测试套件
    • API文档
    • 使用示例
    • 性能基准测试

相关 MCP 服务