Serve MCP exposures from the server built into peppy by listing them in a launcher, with no node to generate or build.
Released on August 26, 2026
Breaking changes
-
peppy repo exposureis removed, and an exposure is no longer a committed bundle plus a generated MCP server node. Validate exposures withpeppy repo index --check --validate-mcp-exposuresand delete the old generated artifacts. -
Serve an exposure from a launcher's
source: { exposures: ["<name>:<tag>", ...] }instead of deploying its generated<name>_mcpnode; the server built intopeppybinds127.0.0.1:<port>, one endpoint per exposure at/<name>/<tag>/mcp. -
peppy mcp catalog <name:tag>prints the catalog an endpoint advertises: every resource, tool, and task with its public name, policies, and derived JSON Schemas. -
A target's contract
sha256is now optional; omit it and the exposure follows the contract as its repository evolves, with each launch pinning the bytes it resolves. -
One deployment can serve several exposures on a single port, sharing a contract slot when two exposures name the same target and the same contract.
-
peppy stack listadds anInstance endpointstable listing each endpoint URL an instance serves. -
Exposure deployments work in a federated launch: the exposure documents and the contracts they reference are pinned and shipped to the machine hosting the instance.
-
A new default
mcp-hubrepository resolves the MCP exposure documents a launcher lists. -
An exposure manifest may carry a
labelslist of free-form strings for whoever browses the repository.