> For the complete documentation index, see [llms.txt](https://help.cubelet.ai/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://help.cubelet.ai/platform-and-integration/architecture/overview.md).

# Overview

*How cubelet.ai's content and credentialing platform is put together: a federated fleet of MCP servers, a dual-write Catalog, and a quality-gated production pipeline.*

## Federated MCP architecture

cubelet.ai runs as a fleet of independent Cloudflare Workers, each exposing its own MCP (Model Context Protocol) endpoint over HTTP. There is no single monolithic API — an MCP client (an AI agent, an IDE integration, or a custom application) connects to whichever server exposes the tools it needs, and can hold connections to more than one server at once.

Two kinds of server make up the fleet:

* **The main content and manufacturing server**, reachable at `https://manufacture.cubelet.ai/mcp`. It carries the platform-wide surface: generic content tools (`cubelet_get`, `cubelet_list`, `cubelet_search`, `catalog_cubelets`), concept-graph tools (`concept_navigate`, `concept_graph`, `concept_translate`), and the practice-simulation tool families for every domain (for example `isaca_qae_*`, `ai_gov_*`, and `cmmc_simulation_*`). Any client that wants to retrieve Cubelet content or run a Case across domains talks to this server.
* **Dedicated domain workers.** Domains with deeper, domain-specific needs — consulting, coaching, gap analysis, scored reporting — run their own worker registering only that domain's tools, and those tools are not present on the main server. For example, CMMC's workers (`cmmc-catalyst`, `cmmc-assessment`) expose tools like `cmmc_domain_get`, `cmmc_gap_analysis`, `cmmc_sprs_score`, and `cmmc_evidence_guide`; ISACA's worker exposes `isaca_report_export` and `gjf_get_priority_stack`; the AI-Gov worker exposes `ai_gov_framework_ref` and `ai_gov_report`; VulnOps has its own worker with the `vulnops_*` family. A tool that lives on one of these dedicated workers is not reachable through the main content/manufacturing server, and vice versa — confirm which server actually registers a tool before depending on it.

This split keeps the main server's surface general-purpose and keeps each domain's specialized tooling isolated from the others.

## The Catalog: registry of record

The **Catalog** is the registry that makes a piece of content — a Cubelet or a Case — discoverable across the platform. It is backed by two systems together:

* **Neo4j** — the graph of edges connecting content to competencies, domains, and prerequisites.
* **R2** — the object storage holding the actual content body.

Registration follows a **dual-write contract**: an item is only registered in the Catalog once both the Neo4j edge and the R2 content object have been written. A write to only one side is not a valid registration. See Data model & taxonomy for how this contract applies to Cubelets and Cases.

## R2 is the primary store; Neo4j is a derived index

R2 holds the authoritative copy of platform content — Cubelets, Cases, and the taxonomy/competency data they're built from. Neo4j is a derived index built *from* R2, not the other way around: it can be rebuilt from R2 content at any time, but R2 cannot be reconstructed from Neo4j alone. Anything reasoning about the current state of a Cubelet should treat R2 as the source of truth.

## Content production pipeline

Every Cubelet ships through a fixed five-stage pipeline before it is eligible for the Catalog:

**Research → Writer → Editor → QA → Publisher**

Each stage hands its output to the next. The QA stage runs the platform's quality gate — full detail on the Governance & provenance page — using the highest-capability model tier the platform runs, since the gate's scoring rubric is calibrated against that tier's judgment. Only a Cubelet that clears the gate is promoted to the Catalog; every discovery surface filters to gate-passed content only.

## Infra stack

* **Cloudflare Workers** (TypeScript) — hosts the MCP server fleet.
* **Neo4j** — graph database with native vector indexes (1536-dimension, cosine similarity) for semantic search, embedded with OpenAI `text-embedding-3-large`.
* **R2** (Cloudflare, S3-compatible object storage) — primary content store.
* **Vercel** — hosts the platform's web application.
