bb-mcp-server

franks42/bb-mcp-server

3.2

If you are the rightful owner of bb-mcp-server and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.

The Model Context Protocol (MCP) server is a specialized server designed to facilitate communication and data exchange between different model-based applications and systems.

bb-mcp-server

Modular MCP server in Clojure/Babashka.

Quick Start

# stdio (Claude Code)
bb server:stdio

# HTTP (Streamable HTTP spec 2025-03-26)
bb server:streamable 3000

Modules

ModuleDescription
calculateMath expressions (100+ functions)
nreplRemote Clojure REPL
local-evalServer-side code execution
echoEcho for testing
helloGreeting tool
stringsString concat
mathBasic arithmetic

See modules/*/README.md for details.

Configuration

system.edn:

{:modules ["hello" "echo" "calculate" "nrepl" "local-eval"]}

External Modules

Load modules from outside the project directory:

# Single module or collection of modules
BB_MCP_EXTERNAL_MODULES=/path/to/my-module bb server --http

# Multiple paths (colon-separated)
BB_MCP_EXTERNAL_MODULES=/path/to/module1:/path/to/modules-collection bb server --http

Auto-detects:

  • Single module: Directory containing module.edn
  • Collection: Directory with subdirectories containing module.edn

Modules must be listed in system.edn to be loaded at startup.

Dynamic Module Loading

Load modules at runtime (after server is already running):

;; Via local-eval, nrepl-eval, or direct REPL
(require '[bb-mcp-server.module.system :as system])
(system/load-new-module! "/path/to/external-module")

This enables a minimal bootstrap pattern:

  1. Start server with just local-eval (or nrepl)
  2. Load other modules dynamically via local-eval
  3. Tools are registered immediately after loading
;; system.edn - minimal bootstrap
{:modules ["local-eval"]}  ; Just local-eval!

Both local-eval and nrepl have full server access (no sandbox restrictions).

See scripts/test_dynamic_load.clj for a working example.

Claude Code

{
  "mcpServers": {
    "bb-mcp": {
      "command": "bb",
      "args": ["server:stdio"],
      "cwd": "/path/to/bb-mcp-server"
    }
  }
}

Development

bb test           # Run tests
bb lint           # clj-kondo
bb server:stop 3000  # Stop HTTP server

Status

Phase 5.5 complete. See docs/design/streamable-http-implementation-plan.md.

License

See LICENSE.