关于 Babashka MCP Server
Babashka MCP Server 是用于通过 MCP 与 Babashka 交互的服务,面向需要从 AI 客户端执行 Clojure 脚本的用户。它还缓存近期执行结果,并通过资源提供命令历史。
主要功能
- 01通过工具执行 Babashka 代码
- 02缓存近期命令结果
- 03通过资源访问命令历史
- 04支持可配置的执行超时
适用场景
- 01从 AI 客户端运行 Clojure 表达式
- 02回看近期命令的执行结果
- 03为较长脚本设置超时限制
MCP 相关
该服务向 MCP 客户端提供 Babashka 代码执行工具,并通过 babashka://commands/{index} 资源开放近期命令结果。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
暂未收录安装方式
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
还没有获取到工具列表
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
Babashka MCP 服务
用于与 Babashka 交互的模型上下文协议服务。Babashka 是一款用于脚本编写的原生 Clojure 解释器。
功能
- 通过 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 GitHub 仓库 - Babashka 主项目
- Babashka 指南 - 官方文档
- Babashka 示例 - 示例脚本集
社区工具和库
- pod-babashka-buddy - Babashka 的加密 API
- bb-clis - 实用 Babashka CLI 脚本集
- bb-scripts - 各种 Babashka 实用脚本
开发工具
- setup-babashka - 用于安装 Babashka 的 GitHub Actions
- babashka-docker-action - 在 GitHub Actions 中运行 Babashka 脚本
开发
此服务的设计目标是最终实现自托管,也就是说,将使用 Babashka 本身重写。当前的 TypeScript 实现可作为参考和起点。
路线图
-
自托管实现
- 使用 Babashka 重写 MCP 服务
- 利用 Babashka 的原生功能提升性能
- 移除 Node.js 依赖
- 与 MCP 协议保持完全兼容
- 支持所有现有功能:
- 命令执行
- 资源管理
- 命令历史记录
- 超时处理
-
增强功能
- 添加对 Babashka pods 的支持
- 实现文件监视功能
- 添加 REPL 集成
- 支持多个 Babashka 实例
-
性能优化
- 实现缓存策略
- 优化资源使用
- 缩短启动时间
-
测试和文档
- 全面的测试套件
- API 文档
- 使用示例
- 性能基准测试
评论
支持 Markdown
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。