This guide explains how to convert and install the agentic commerce plugins for Cursor (2.5+), which has a native plugin system with support for rules, skills, agents, hooks, and MCP servers.
For Cursor Teams/Enterprise admins: this repo is pre-configured as a Team Marketplace (Cursor 2.6+). In Cursor, go to Settings → Plugins → Team Marketplaces → Import and paste
https://github.com/OrcaQubits/agentic-commerce-skills-plugins. All 15 plugins surface in your team's plugin browser. See PUBLISH-CURSOR.md for the publishing model and the other two paths (public marketplace + cursor.directory).
- Python 3.9+
- Cursor 2.5+ installed
From the repo root, run the conversion script:
python scripts/convert.py --platform cursorThis generates dist/cursor/ with the following structure:
dist/cursor/
AGENTS.md # Root summary of all 11 plugins
<plugin-name>/ # Per-plugin directory (x11)
.cursor-plugin/
plugin.json # Cursor plugin manifest
agents/
<name>-expert.md # Subagent definition (model: inherit)
rules/
<name>-expert.mdc # Agent expertise as .mdc rule (alwaysApply: true)
skills/<skill>/SKILL.md # Skills (disable-model-invocation kept)
hooks/
hooks.json # Hooks with Cursor event names (preToolUse/postToolUse)
scripts/*.py # Hook scripts (referenced via ${CURSOR_PLUGIN_ROOT})
Preview what will be generated without writing files:
python scripts/convert.py --platform cursor --dry-runConvert only one plugin:
python scripts/convert.py --platform cursor --plugin ucp-agentic-commerceCopy the plugin components into your project's .cursor/ directories. This is the most reliable method and works with both Cursor IDE and Cursor CLI:
# Create project-level directories
mkdir -p /path/to/your/project/.cursor/rules
mkdir -p /path/to/your/project/.cursor/agents
mkdir -p /path/to/your/project/.cursor/skills
# Copy rules, agents, skills
cp dist/cursor/ucp-agentic-commerce/rules/*.mdc /path/to/your/project/.cursor/rules/
cp dist/cursor/ucp-agentic-commerce/agents/*.md /path/to/your/project/.cursor/agents/
cp -r dist/cursor/ucp-agentic-commerce/skills/* /path/to/your/project/.cursor/skills/
# Copy AGENTS.md to project root (optional context file)
cp dist/cursor/ucp-agentic-commerce/AGENTS.md /path/to/your/project/Using multiple plugins:
for plugin in ucp-agentic-commerce acp-agentic-commerce a2a-multi-agent; do
cp dist/cursor/$plugin/rules/*.mdc /path/to/your/project/.cursor/rules/
cp dist/cursor/$plugin/agents/*.md /path/to/your/project/.cursor/agents/
cp -r dist/cursor/$plugin/skills/* /path/to/your/project/.cursor/skills/
done
# Use the root AGENTS.md for a combined overview
cp dist/cursor/AGENTS.md /path/to/your/project/AGENTS.mdFor the Cursor desktop IDE, you can install as a local plugin:
mkdir -p ~/.cursor/plugins/local
ln -s "$(pwd)/dist/cursor/ucp-agentic-commerce" ~/.cursor/plugins/local/ucp-agentic-commerceNote: The Cursor CLI (
agentcommand) has limited plugin discovery — it finds agents fromplugins/local/but may not discover skills and rules. For full CLI support, use Option A above.
If these plugins are published to the Cursor Marketplace, browse and install them directly from within Cursor.
Restart Cursor and open your project. Check that:
- Rules from
.mdcfiles are loaded (check via Cursor settings > Rules) - Skills are discoverable (type
/in Agent chat to browse) - Subagents appear (check via agent panel or
/agent-namein chat) - Hooks fire on tool use (check Cursor's output panel for hook logs)
Run the validation script to confirm the generated output is well-formed:
python scripts/validate.py| Aspect | Claude Code (source) | Cursor (generated) |
|---|---|---|
| Manifest | .claude-plugin/plugin.json |
.cursor-plugin/plugin.json (keeps author, keywords, license) |
| Skills | skills/*/SKILL.md |
skills/*/SKILL.md (allowed-tools stripped, disable-model-invocation kept) |
| Agent definitions | agents/*-expert.md |
agents/*-expert.md (model: inherit, tools stripped) |
| Agent expertise | Agent .md body |
rules/*.mdc (alwaysApply: true) + AGENTS.md |
| Hooks | hooks/hooks.json |
hooks/hooks.json (portable! event names remapped) |
| Hook scripts | hooks/scripts/*.py |
scripts/*.py (referenced via ${CURSOR_PLUGIN_ROOT}) |
Cursor is the most complete conversion target:
- Hooks are portable — Cursor supports
preToolUse/postToolUselifecycle hooks, so secret detection hooks actually work (unlike Antigravity, Codex, or OpenClaw where hooks are copied as standalone scripts) disable-model-invocationis kept — Cursor recognizes this skill field, so skills that should not auto-invoke maintain that behavior (stripped on all other platforms)- Native subagent definitions — agents are
.mdfiles with frontmatter (name,description,model,readonly,is_background) - Full plugin manifest —
.cursor-plugin/plugin.jsonwith auto-discovery of components .mdcrules — agent expertise is delivered as Cursor's persistent context system
All agent models are set to inherit, which defers to your Cursor model selection. This means:
- If you have Cursor configured to use Claude, the agents use your Claude model
- If you switch to another provider, the agents adapt automatically
- No hardcoded model IDs that could become stale
To use a specific model instead, edit agents/*.md frontmatter after conversion (supported values: inherit, fast, or an explicit model ID like claude-opus-4-6).
The following Claude-specific fields are removed:
allowed-tools— not part of Cursor's skill schematools(in agents) — Cursor agents inherit tools from the parent agent
The following fields are preserved (unlike other platforms):
disable-model-invocation— Cursor supports this nativelyauthor,keywords,license— kept in the plugin manifest
| Aspect | Claude Code | Cursor |
|---|---|---|
| Event names | PostToolUse, PreToolUse |
postToolUse, preToolUse |
| Structure | Nested (matcher -> hooks[]) | Flat (command + matcher at same level) |
| Tool names in matchers | Write|Edit |
Write|Edit (same — Claude-compatible) |
| Script path variable | ${CLAUDE_PLUGIN_ROOT} |
${CURSOR_PLUGIN_ROOT} |
| Timeout | Seconds | Seconds (same) |
type field |
"command" |
"command" (kept — Cursor also supports "prompt") |
async field |
Supported | Stripped (not in Cursor hook schema) |
| Top-level version | Not present | "version": 1 added |
- Model set to
inherit: Agent model defers to your Cursor model selection rather than specifying a particular model. - Hook structure flattened: Claude's nested matcher->hooks[] is flattened to Cursor's flat command+matcher format. Multi-hook entries become separate flat entries.
- No
allowed-tools: Cursor agents inherit tool access from the parent agent, not via frontmatter. - Agent
readonlyandis_background: Not set by default. Editagents/*.mdto addreadonly: trueoris_background: trueif needed.
When the source plugins are updated, re-run the conversion:
python scripts/convert.py --platform cursorThen verify with:
python scripts/validate.pycursor-ai cursor-plugin cursor-rules cursor-mdc cursor-agents agentic-commerce ai-agents ai-shopping ai-checkout ai-payments mcp model-context-protocol a2a-protocol ucp universal-commerce-protocol acp ap2 stripe-mpp webmcp magento2 bigcommerce woocommerce shopify shopify-hydrogen shopify-liquid shopify-functions salesforce-commerce sfcc commerce-cloud b2c-commerce b2b-commerce sfra scapi pwa-kit apex-commerce lwc-commerce einstein-ai ecommerce headless-commerce multi-agent llm-tools ai-commerce multi-platform cross-platform-plugins ai-dev-tools