From ucp-toolkit
This skill should be used when the user asks to "create a UCP schema", "design a new capability", "add a schema type", "define request/response schemas", "work with UCP annotations", or mentions JSON Schema for UCP. Provides guidance on UCP schema patterns, annotations, and validation rules.
npx claudepluginhub ibraschwan/ucp-pluginThis skill uses the workspace's default tool permissions.
This skill provides guidance for designing schemas in the Universal Commerce Protocol (UCP). UCP uses JSON Schema (Draft 2020-12) with custom annotations to define capability request/response structures.
Searches, retrieves, and installs Agent Skills from prompts.chat registry using MCP tools like search_skills and get_skill. Activates for finding skills, browsing catalogs, or extending Claude.
Searches prompts.chat for AI prompt templates by keyword or category, retrieves by ID with variable handling, and improves prompts via AI. Use for discovering or enhancing prompts.
Guides MCP server integration in Claude Code plugins via .mcp.json or plugin.json configs for stdio, SSE, HTTP types, enabling external services as tools.
This skill provides guidance for designing schemas in the Universal Commerce Protocol (UCP). UCP uses JSON Schema (Draft 2020-12) with custom annotations to define capability request/response structures.
All source schemas reside in:
source/schemas/shopping/
├── checkout.json
├── order.json
├── payment.json
├── product.json
├── cart.json
├── customer.json
├── fulfillment.json
└── types/ # 35+ reusable type definitions
UCP extends JSON Schema with these annotations:
| Annotation | Purpose | Example |
|---|---|---|
ucp_request | Marks request schema for a method | "ucp_request": "shopping.cart.create" |
ucp_response | Marks response schema for a method | "ucp_response": "shopping.cart.create" |
ucp_shared_request | Shared request schema for multiple methods | "ucp_shared_request": ["method1", "method2"] |
ucp_core | Core protocol field (not capability-specific) | "ucp_core": true |
Follow this pattern for capability schemas:
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://ucp.dev/schemas/shopping/capability-name.json",
"title": "Capability Name Schemas",
"description": "Request and response schemas for capability operations",
"$defs": {
"MethodNameRequest": {
"type": "object",
"ucp_request": "shopping.capability.method",
"properties": {
"required_field": { "type": "string" },
"optional_field": { "$ref": "types/common-type.json" }
},
"required": ["required_field"]
},
"MethodNameResponse": {
"type": "object",
"ucp_response": "shopping.capability.method",
"properties": {
"result": { "$ref": "types/result-type.json" }
},
"required": ["result"]
}
}
}
Reference reusable types from types/ directory:
{ "$ref": "types/money.json" }
{ "$ref": "types/address.json" }
{ "$ref": "types/product-variant.json" }
Available types include: money.json, address.json, product-variant.json, line-item.json, discount.json, shipping-rate.json, and 30+ more.
$iducp_request or ucp_response$ref must resolve to existing filesTo create a new capability schema:
source/schemas/shopping/$schema and $id headersucp_request annotationucp_response annotationtypes/ directorypython scripts/validate_specs.pypython scripts/generate_schemas.py{
"items": { "type": "array", "items": { "$ref": "types/item.json" } },
"pagination": { "$ref": "types/pagination.json" }
}
{
"error": { "$ref": "types/error.json" },
"details": { "type": "object" }
}
{
"id": { "type": "string", "format": "uuid" }
}
For detailed patterns and type documentation:
references/type-catalog.md - Complete catalog of reusable typesreferences/annotation-guide.md - UCP annotation usage guideexamples/capability-template.json - Template for new capabilitiesexamples/cart-schema.json - Real cart capability example