Skip to content

v0.1.0 — read-side multi-protocol commerce SDK

Choose a tag to compare

@riccardoio riccardoio released this 13 Jun 23:13

The first cut of Steelyard. Define commerce once. Serve it as a real MCP server, a real ACP feed, and a real UCP discovery endpoint, all from the same defineCommerce() config.

What ships

Six packages on npm under MIT:

Package What it does
@steelyard/core Schema, types, defineCommerce(), validate(). Runtime dep on zod only.
@steelyard/mcp Emit an MCP server via @modelcontextprotocol/sdk. Tools list_offers, get_offer; resources commerce://manifest, commerce://policies. HTTP + stdio transports.
@steelyard/acp Emit an ACP feed. AJV-validated against the vendored spec at 2026-04-17 at emit time.
@steelyard/ucp Emit a UCP discovery doc and shopping catalog API. AJV-validated against UCP 2026-04-08 schemas at emit time.
@steelyard/client Buyer SDK with MCP/ACP/UCP auto-detect. Steelyard.connect(url) returns the same Merchant handle regardless of which protocol the merchant speaks.
@steelyard/agent LLM-driven CLI (steelyard-agent). Uses Anthropic when ANTHROPIC_API_KEY is set; falls back to a naive regex parser otherwise. Both paths reach an answer.

The principle

No fake / incomplete stuff. Every package is end-to-end tested against real protocol clients. ACP feeds and UCP catalog responses are AJV-validated at emit time — a bug that would produce non-conformant output throws before the bytes leave the server.

What v1 doesn't do

Read-side only. Payment execution (carts, checkout, receipts, Stripe adapter, wallet delegation) is deliberately deferred to v2. The trust/idempotency/SCA/consent design space needs its own pass — we'd rather ship a complete read-side now.

Compatibility

Pre-1.0 minor-match semver on the read-side capability:

Client Server Result
0.1 0.1.x ✅ Compatible
0.1 0.2.x version_mismatch
0.1 1.0.x version_mismatch

Quickstart

npx @steelyard/agent --merchant http://localhost:3000/mcp "what does this shop sell"

Or boot the example:

git clone https://github.com/interfacelabs/steelyard-sdk.git steelyard
cd steelyard && pnpm install && pnpm -r build
pnpm --filter @steelyard/example-coffee-shop start

See docs/getting-started.md for the full demo.

Test coverage

  • @steelyard/core — 100%
  • @steelyard/mcp, @steelyard/acp, @steelyard/ucp, @steelyard/client — ≥ 95%
  • @steelyard/agent — ≥ 90%

PR CI runs mocked unit tests on every PR; a scheduled CI job runs the live protocol-parity test daily and on every release tag.


Full changelog: https://github.com/interfacelabs/steelyard-sdk/commits/v0.1.0