Quickstart
The mental model: write a manifest (ribosome.json), then resolve it into a
lockfile (ribosome.lock.json). ribosome provisions the runtimes your MCP
servers need and pins everything — servers and runtimes together — in one
pass.
Install
Section titled “Install”No install needed — npx fetches and runs the CLI from npm on the fly:
npx @medullaflow/ribosome resolveFor repeat use, install it globally:
npm install -g @medullaflow/ribosomeribosome resolveWrite a manifest
Section titled “Write a manifest”Create ribosome.json in your project root:
{ "$schema": "https://schema.ribosome.medullaflow.org/v1/manifest.schema.json", "schemaVersion": "1",
"runtimes": { "node": "24" },
"registries": { "default": "official", "sources": { "official": { "url": "https://registry.modelcontextprotocol.io" } } },
"mcpServers": { "fs": { "source": "registry", "name": "io.modelcontextprotocol/filesystem", "version": "1.2.0" } }}See the manifest reference for every field, including
inline and legacy process server sources.
Resolve
Section titled “Resolve”ribosome resolveThis reads ribosome.json, provisions the node@24 runtime, resolves the
fs server against the MCP Registry, and writes ribosome.lock.json — a
deduplicated runtime pool plus
one resolved environment view per server. If anything can’t be resolved (a
missing tool, an unknown registry entry), resolve fails up front, before any
workflow that depends on the lockfile runs, and reports every failure at
once rather than stopping at the first one.
Once a project stops referencing a runtime — you remove a server, or bump a version — its old install lingers until you reclaim it:
ribosome prune # remove runtimes no tracked project references anymoreribosome prune --dry-run # report what would be removed, without removing itEmbedding as a library
Section titled “Embedding as a library”A host orchestrator that wants to call the resolver directly, instead of shelling out to the CLI, installs the library and wires it up itself — see the Library API reference.