用于与Babashka(一种用于脚本编写的原生Clojure解释器)交互的Model Context Protocol服务器。
Babashka可以通过多种方式安装:
brew install borkdude/brew/babashka
bash < <(curl -s https://raw.githubusercontent.com/babashka/babashka/master/install)
# 使用scoop
scoop install babashka
有关其他安装方法,请参阅官方Babashka安装指南。
安装后,验证Babashka是否正常工作:
# 检查版本
bb --version
# 尝试一个简单的表达式
bb -e '(+ 1 2 3)'
# 从字符串运行脚本
bb -e '(defn hello [x] (str "Hello, " x "!")) (hello "World")'
# 使用-i标志处理输入行
ls | bb -i '(take 2 *input*)'
# 安装依赖
npm install
# 构建MCP服务器
npm run build
服务器可以通过环境变量进行配置:
BABASHKA_PATH: Babashka可执行文件的路径(默认:"bb")执行Babashka代码,可选超时设置:
{
name: "execute",
arguments: {
code: string; // 要执行的Babashka代码
timeout?: number; // 超时时间(以毫秒为单位,默认:30000)
}
}
示例:
{
name: "execute",
arguments: {
code: "(+ 1 2 3)",
timeout: 5000
}
}
服务器维护一个最近命令执行缓存,可通过以下方式访问:
babashka://commands/{index} - 通过索引访问特定命令的结果Babashka支持通过recur特殊形式显式的尾调用优化,但不实现自动TCO。例如:
;; 这会导致栈溢出
(defn countdown [n]
(if (zero? n)
:done
(countdown (dec n))))
;; 使用recur实现TCO
(defn countdown [n]
(if (zero? n)
:done
(recur (dec n))))
此服务器旨在最终成为自托管,意味着它将使用Babashka本身重写。当前的TypeScript实现作为参考和起点。
自托管实现
增强功能
性能优化
测试与文档