OCP Catalog
The Open Commerce Protocol (OCP) Catalog — the protocol specification, its schema/client packages, the CLI, and minimal reference implementations.
An OCP Catalog Node exposes a small HTTP surface that lets AI agents discover, query, and resolve commercial objects (products, offers, suppliers, …) across independent catalogs, with a separate Registration layer for discovery and a Handshake layer for how providers feed data into a catalog.
What's in this repo
This repo holds three tiers, in increasing order of distance from the spec:
| Tier | What it is | Where |
|---|---|---|
| Protocol | The specs and the schema/client packages that encode them | docs/specs/, packages/ |
| Skill & CLI | Agent tooling that speaks the protocol — installable in one command | skills/, packages/ocp-cli/, plugins/ |
| Examples | The smallest correct Catalog Node, in three languages | examples/ |
Production applications are not here — see Reference applications.
docs/specs/ Protocol specifications
registration/v1.md How a Catalog registers with a Registration node
handshake/v1.md How a Provider registers + syncs into a Catalog
ocp.catalog.registration.v1/ Machine-readable JSON Schemas (registration)
ocp.catalog.handshake.v1/ Machine-readable JSON Schemas (handshake)
packages/
ocp-schema/ Zod schemas: manifest, query, resolve, objects, health
registration-schema/ Zod schemas for the registration protocol
ocp-activity-schema/ Zod schemas for catalog activity events
ocp-client/ Typed client helpers + validators
shared/ Small shared utilities
webmcp-adapter/ WebMCP adapter for browser tools
ocp-cli/ `ocp` CLI (published to npm)
ocp-skill/ `npx @ocp-catalog/skill` one-command skill installer
examples/
typescript/ python/ go/ Minimal, spec-valid Catalog Nodes (~3 in-memory products)
skills/ocp-catalog/ The agent skill (single source of truth)
plugins/ocp-catalog/ Claude Code plugin wrapper (generated from skills/)
apps/ocp-site-web/ The OCP protocol website + docs
The published protocol packages (npm, scope @ocp-catalog):
ocp-schema,
registration-schema,
ocp-activity-schema,
ocp-client,
shared,
webmcp-adapter,
ocp-cli.
Install the agent skill
The skill teaches an agent the OCP workflow — discover a Registration node,
inspect a Catalog manifest, query with a declared query pack, resolve an entry —
and drives it through the ocp CLI. There are two ways to install it, from the
same source (skills/ocp-catalog/):
One command, any agent:
npx @ocp-catalog/skill # auto-detect npx @ocp-catalog/skill --agent claude # ~/.claude/skills npx @ocp-catalog/skill --agent all # Claude Code + Codex + .agents npx @ocp-catalog/skill --scope project # ./.claude/skills in the current repo npx @ocp-catalog/skill doctor # where is it installed?
It refuses to overwrite a skill it didn't install unless you pass --force, and
--dry-run prints the plan without touching disk.
As a Claude Code plugin:
/plugin marketplace add Open-Commerce-Protocol/OCP-Catalog
/plugin install ocp-catalog@ocp-catalog
If you already use the CLI, ocp skill install does the same thing.
Reference applications
The production-grade catalog nodes, provider apps, admin UIs, the MCP server, the skill gateway, demos, and deploy tooling live in a separate repo:
Open-Commerce-Protocol/ocp-catalog-instances
It depends on the protocol packages above from npm.
The full pre-split monorepo history (all applications) is preserved on the
legacy-monorepobranch and thepre-split-monorepotag.
A minimal Catalog Node
A spec-valid Catalog Node answers five endpoints. See
examples/ for complete implementations in TypeScript, Python, and Go.
| Method | Path | Returns |
|---|---|---|
| GET | /.well-known/ocp-catalog |
discovery |
| GET | /ocp/manifest |
capabilities + query packs |
| GET | /ocp/health |
liveness |
| POST | /ocp/query |
search entries |
| POST | /ocp/resolve |
resolve an entry into action bindings |
Develop
bun install bun run typecheck bun test bun run build # build the packages + site bun run site:dev # run the protocol website bun run skill:sync # regenerate the skill copies after editing skills/ bun run skill:check # fail if a generated skill copy has drifted
Requires Bun 1.3+. The minimal examples each have their own README under
examples/.
skills/ocp-catalog/ is the single source of truth for the skill. The npm
payload and the Claude Code plugin copy are both generated from it by
scripts/sync-skill-copies.ts — edit the source, then run skill:sync.
Documentation
Contributing and security
- See CONTRIBUTING.md before opening an issue or pull request.
- Report vulnerabilities privately as described in SECURITY.md. Do not publicly disclose unresolved security issues.
License
MIT — see LICENSE.