Skip to main content
Glama

Babashka MCP 服务器

用于与Babashka (用于脚本的本机 Clojure 解释器)交互的模型上下文协议服务器。

特征

  • 通过 MCP 工具执行 Babashka 代码

  • 缓存最近的命令结果

  • 通过 MCP 资源访问命令历史记录

  • 可配置命令超时

Related MCP server: Akash MCP Server

先决条件

安装 Babashka

Babashka 可以通过多种方式安装:

macOS

brew install borkdude/brew/babashka

Linux

bash < <(curl -s https://raw.githubusercontent.com/babashka/babashka/master/install)

视窗

# 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”)

工具

执行

使用可选超时执行 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 文档

    • 使用示例

    • 性能基准

One-click Deploy
A
security – no known vulnerabilities
F
license - not found
A
quality - confirmed to work

Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/bmorphism/babashka-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server