You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: EXPLAINME.adoc
+22-23Lines changed: 22 additions & 23 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -7,20 +7,20 @@ The README makes claims. This file backs them up.
7
7
8
8
[quote, README]
9
9
____
10
-
BoJ (Bundle of Joy) is a unified MCP server that consolidates all hyperpolymath tooling into a single endpoint — GitHub, GitLab, Cloudflare, Vercel, Verpex, Gmail, Calendar, browser automation, research, ML, and 50+ open-source cartridges.
10
+
BoJ (Bundle of Joy) is a unified MCP server that consolidates all hyperpolymath tooling into a single endpoint — GitHub, GitLab, Cloudflare, Vercel, Verpex, Gmail, Calendar, browser automation, research, ML, and 110+ open-source cartridges.
11
11
____
12
12
13
-
This is the Model-Controller-Processor pattern: cartridges are pluggable service wrappers (90+ total), the MCP bridge translates Claude tool calls to cartridge invocations, and a REST API provides non-MCP access.
13
+
This is the Model-Controller-Processor pattern: cartridges are pluggable service wrappers (112 total), the Elixir/BEAM REST layer dispatches tool calls to cartridge invocations (Zig FFI path for `.so` cartridges, Deno worker pool for JS cartridges), and a REST API provides non-MCP access.
14
14
15
15
== Two Verifiable Claims from How-It-Works
16
16
17
17
=== Claim 1: Cartridge Orchestration Via Auto-Discovery
18
18
19
-
**Location**: `mcp-bridge/lib/cartridge-loader.ts` (TypeScript cartridge discovery and initialization)
19
+
**Location**: `elixir/lib/boj_rest/catalog.ex` (Elixir GenServer cartridge discovery and initialization)
20
20
21
-
**How verified**: The cartridge loader scans `cartridges/*/cartridge.json`, reads tool schemas from each, and registers them dynamically with the MCP server. README (§Features) claims "50+ open-source cartridges." The loader validates each manifest, checks for required `name`, `version`, `tools` fields, and prevents duplicate tool names. This enables the "unified endpoint" claim: a single MCP server exposes the union of all cartridges' tools without hardcoding each one.
21
+
**How verified**: `BojRest.Catalog` scans `cartridges/*/cartridge.json` at startup, reads tool schemas from each, and stores them in an ETS table. It validates `name`, `version`, `tools` required fields and prevents duplicate names. 112 cartridges are auto-discovered. This enables the "unified endpoint" claim: a single REST server exposes the union of all cartridges' tools without hardcoding each one.
22
22
23
-
**Caveat**: Auto-discovery is runtime dynamic; there is no compile-time verification that all cartridge schemas are valid JSON Schema. A malformed `cartridge.json` will error at MCP startup, not build time. The authoritative manifest format is Nickel (closed decision `boj-cartridge-manifest-format-dd.md`); migration from JSON is future work.
23
+
**Caveat**: Auto-discovery is runtime dynamic; there is no compile-time verification that all cartridge schemas are valid JSON Schema. A malformed `cartridge.json` is silently skipped at startup. The authoritative manifest format is Nickel (closed decision `boj-cartridge-manifest-format-dd.md`); migration from JSON is future work.
24
24
25
25
=== Claim 2: PanLL Grid Layout Auto-Wiring for Panel Cartridges
26
26
@@ -41,19 +41,19 @@ This is the Model-Controller-Processor pattern: cartridges are pluggable service
41
41
| gossamer, burble, ephapax, hypatia, verisimdb, typed-wasm — universal ABI/FFI pattern across the estate
42
42
43
43
| *Pluggable cartridge architecture*
44
-
| 96 cartridge directories (`cartridges/*/`), each with `abi/`, `ffi/`, `adapter/` structure; auto-discovered at startup via manifest scan
44
+
| 112 cartridge directories (`cartridges/*/`), each with `abi/`, `ffi/`, `mod.js` structure; auto-discovered at startup via manifest scan
45
45
| echidna (prover orchestration as cartridges), hypatia (rule composition), gitbot-fleet (bot cartridges per service)
Copy file name to clipboardExpand all lines: QUICKSTART-USER.adoc
+7-9Lines changed: 7 additions & 9 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -10,7 +10,7 @@ toc::[]
10
10
11
11
== What is BoJ Server?
12
12
13
-
Bundle of Joy (BoJ) Server is a cartridge-based MCP protocol gateway. Each cartridge (database-mcp, fleet-mcp, nesy-mcp, etc.) is a formally verified Idris2 ABI + Zig FFI + unified adapter triple. The server exposes REST (port 7700), gRPC (7701), GraphQL (7702), and SSE (7703) endpoints. 99 cartridges cover databases, clouds, messaging, CI/CD, git forges, secrets, queues, proofs, and more.
13
+
Bundle of Joy (BoJ) Server is a cartridge-based MCP protocol gateway. Each cartridge (database-mcp, fleet-mcp, nesy-mcp, etc.) is a formally verified Idris2 ABI + Zig FFI + Deno/JS adapter triple. The server exposes REST (port 7700) via Elixir/BEAM with Zig FFI for `.so` cartridges and a persistent Deno worker pool for JS cartridges. 112 cartridges cover databases, clouds, messaging, CI/CD, git forges, secrets, queues, proofs, and more.
14
14
15
15
Three-class architecture: Class 1 (simple CLI), Class 2 (orchestrator with webhooks/MQTT), Class 3 (BEAM multiplier for global scale).
16
16
@@ -69,18 +69,16 @@ just build
69
69
70
70
== First Run
71
71
72
-
Build the V-lang adapter and start the server:
72
+
Start the Elixir/BEAM server:
73
73
74
74
[source,bash]
75
75
----
76
76
just run
77
77
----
78
78
79
-
This builds the Zig FFI, then compiles the V-lang adapter, then starts:
79
+
This starts the BEAM application, auto-discovers all 112 cartridges, and launches the Deno worker pool for JS dispatch:
80
80
81
81
- REST API on http://localhost:7700
82
-
- gRPC on port 7701
83
-
- GraphQL on port 7702
84
82
85
83
Check health:
86
84
@@ -98,7 +96,7 @@ Type-check the core ABI and run one FFI test:
98
96
just test-smoke
99
97
----
100
98
101
-
Full test suite (catalogue + 17 cartridge FFIs):
99
+
Full test suite (Elixir ExUnit — catalog, router, crypto, JS dispatch):
102
100
103
101
[source,bash]
104
102
----
@@ -175,9 +173,9 @@ just heal # Attempt automatic repair
175
173
----
176
174
src/abi/ Idris2 ABI (Catalogue.idr, Protocol.idr, etc.)
0 commit comments