mcpField
B
Babashka MCP Server

Babashka MCP Server

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

关于 Babashka MCP Server

Babashka MCP Server 是用于通过 MCP 与 Babashka 交互的服务,面向需要从 AI 客户端执行 Clojure 脚本的用户。它还缓存近期执行结果,并通过资源提供命令历史。

主要功能

  1. 01通过工具执行 Babashka 代码
  2. 02缓存近期命令结果
  3. 03通过资源访问命令历史
  4. 04支持可配置的执行超时

适用场景

  1. 01从 AI 客户端运行 Clojure 表达式
  2. 02回看近期命令的执行结果
  3. 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 本身重写。当前的 TypeScript 实现可作为参考和起点。

路线图

  1. 自托管实现

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

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

    • 实现缓存策略
    • 优化资源使用
    • 缩短启动时间
  4. 测试和文档

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

评论

支持 Markdown

第一次接触 MCP?

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

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