Babashka MCP Server 使用说明

项目简介

Babashka MCP Server 是一个基于 Model Context Protocol (MCP) 构建的后端服务器,它使用 Babashka (一个 Clojure 脚本解释器) 作为执行引擎,为 LLM 应用提供代码执行和数据访问能力。通过此服务器,LLM 可以安全地执行 Babashka 代码,并获取执行结果和历史命令记录。

主要功能点

  • 执行 Babashka 代码: LLM 客户端可以调用 'execute' 工具来执行指定的 Babashka 代码。
  • 命令历史记录: 服务器缓存最近执行的命令及其结果,并将其作为资源暴露给 LLM 客户端,方便追溯和查看。
  • 可配置超时: 执行 Babashka 代码可以设置超时时间,防止无限期运行。

安装步骤

  1. 安装 Babashka: 请根据您的操作系统,参考 Babashka 官方安装指南 安装 Babashka。确保 'bb' 命令在您的 PATH 环境变量中可用。
  2. 安装 Node.js 依赖: 克隆仓库后,在项目根目录下运行 'npm install' 安装项目依赖。
  3. 构建服务器: 运行 'npm run build' 构建服务器代码。

服务器配置

MCP 客户端需要配置以下 JSON 信息以连接到 Babashka MCP Server。

{
  "serverName": "babashka-mcp-server",
  "command": "node",
  "args": [
    "./build/index.js"
  ],
  "transport": "stdio"
}

配置参数说明:

  • 'serverName': 服务器名称,设置为 'babashka-mcp-server'。
  • 'command': 启动服务器的命令,这里使用 'node' 运行 JavaScript 代码。
  • 'args': 传递给 'node' 命令的参数,'"./build/index.js"' 是构建后的服务器入口文件路径。
  • 'transport': 传输协议,这里使用 'stdio' (标准输入输出)。

注意:

  • 确保 Node.js 和 npm 已安装。
  • 确保 Babashka 可执行文件 'bb' 在系统 PATH 中,或者您可以通过设置环境变量 'BABASHKA_PATH' 来指定 Babashka 可执行文件的路径。

基本使用方法

  1. 启动服务器: MCP 客户端根据上述配置启动 Babashka MCP Server。服务器将在标准输入输出流上等待接收 MCP 请求。
  2. 列出可用工具: 客户端可以发送 'ListToolsRequest' 请求,服务器会返回 'execute' 工具的信息。
  3. 调用 'execute' 工具: 客户端可以发送 'CallToolRequest' 请求,调用 'execute' 工具来执行 Babashka 代码。请求参数 'arguments' 需要包含 'code' 字段,用于指定要执行的 Babashka 代码。'timeout' 字段是可选的,用于设置超时时间(毫秒)。
  4. 访问命令历史资源: 客户端可以发送 'ListResourcesRequest' 请求,获取最近执行命令的资源列表。然后,可以通过 'ReadResourceRequest' 请求,使用资源 URI (例如 'babashka://commands/0') 读取特定命令的详细信息和执行结果。

示例工具调用 (execute):

假设您想让 LLM 客户端执行 Babashka 代码 '(+ 1 2 3)',您需要构造一个 'CallToolRequest' 请求,其中 'arguments' 为:

{
  "code": "(+ 1 2 3)"
}

服务器执行代码后,会将结果以 JSON 格式返回给客户端。

示例资源访问 (命令历史):

客户端可以通过资源 URI 'babashka://commands/0', 'babashka://commands/1' 等访问最近执行的命令记录,索引 0 代表最近一次执行的命令。资源内容为 JSON 格式,包含命令代码、执行结果 (stdout, stderr, exitCode) 和执行时间戳。

信息

分类

AI与计算