| name | plugin-builder |
| description | Build Cursor plugin scaffolds with optional Runlayer MCP integration. Use this skill when the user wants to create a new Cursor plugin, scaffold plugin skills/commands/rules/hooks, or set up MCP connector configurations. Triggers include "create a plugin", "build a plugin", "scaffold a plugin", "new plugin for [domain]", or any task involving Cursor plugin development. |
Cursor Plugin Builder
Build Cursor plugin scaffolds. Optionally integrates with Runlayer MCP for tool discovery.
Before You Start: Check Runlayer MCP (Optional)
- Check if Runlayer MCP tools are available (e.g.,
mcp__runlayer__list_servers)
- If available: call
mcp__runlayer__list_servers(scope="accessible") to discover available integrations
- If NOT available: proceed without Runlayer integration. The plugin can still include rules, skills, hooks, agents, and commands.
Directory Context
- Run
ls -la to understand the current directory structure
- Check if this is already a plugin marketplace (look for
.cursor-plugin/marketplace.json)
- If it's a marketplace, new plugins should be created as subdirectories
- Always confirm the target location with the user before creating files
Workflow
Step 1: Gather Requirements
Use AskQuestion to collect structured input:
Question 1: Plugin basics
- Plugin name (kebab-case slug, e.g.,
customer-support)
- 1-2 sentence description
Question 2: Components to include (multi-select)
- Rules (.mdc files) -- persistent AI guidance
- Skills (SKILL.md) -- specialized agent capabilities
- Commands (.md) -- explicit user-invoked actions
- Hooks (hooks.json) -- automation on agent events
- Agents (.md) -- custom agent behaviors
- MCP servers (.mcp.json) -- external tool integrations
Question 3: If skills selected -- automation preference
- "Fully automated" -- Skills trigger automatically based on context
- "Manual triggers only" -- Commands require explicit invocation
- "Both" -- Skills for automation, Commands as explicit fallback
Question 4: If MCP tools needed -- tool categories (from Runlayer if available)
- Present discovered servers grouped by category (CRM, ticketing, analytics, etc.)
- If no Runlayer, ask which external services to integrate
Step 2: Generate Plugin Structure
<plugin-slug>/
├── .cursor-plugin/
│ └── plugin.json
├── rules/ # if rules selected
│ └── <rule-name>.mdc
├── skills/ # if skills selected
│ └── <skill-name>/
│ └── SKILL.md
├── commands/ # if commands selected
│ └── <command-name>.md
├── agents/ # if agents selected
│ └── <agent-name>.md
├── hooks/ # if hooks selected
│ └── hooks.json
├── .mcp.json # if MCP tools needed
└── README.md
File Templates
plugin.json:
{
"name": "<plugin-slug>",
"description": "<1-2 sentence description>",
"version": "1.0.0",
"author": { "name": "<author>" },
"keywords": ["<relevant>", "<tags>"]
}
Rule (.mdc):
---
description: <What this rule enforces>
alwaysApply: true
---
## <Rule Title>
- Rule point 1
- Rule point 2
For glob-scoped rules (apply only to matching files):
---
description: <What this rule enforces>
globs:
- "**/*.ts"
- "**/*.tsx"
---
SKILL.md:
---
name: <skill-name>
description: <When this skill should activate. Be specific about triggers and contexts.>
---
# <Skill Title>
## When to Use
<Specific triggers and contexts>
## Workflow
<Step-by-step guidance>
## Best Practices
<Domain-specific guidance>
Command (.md):
---
name: <command-name>
description: <What this command does>
---
# <Command Title>
<Instructions for executing this command>
## Usage
Invoke via `/plugin-name:command-name`
## Workflow
<Step-by-step execution>
Agent (.md):
---
name: <agent-name>
description: <Brief description of the agent's purpose>
---
# <Agent Title>
<System prompt and behavioral instructions for the agent>
hooks.json:
{
"hooks": {
"<hookEvent>": [{ "command": "./scripts/<script>.sh" }]
}
}
Available hook events: sessionStart, sessionEnd, preToolUse, postToolUse, beforeShellExecution, afterShellExecution, beforeMCPExecution, afterMCPExecution, beforeReadFile, afterFileEdit, beforeSubmitPrompt
.mcp.json (only if MCP tools needed):
{
"mcpServers": {
"<server-name>": {
"url": "<server-url>"
}
}
}
If Runlayer is available, use URLs from mcp__runlayer__list_servers results. Never guess URLs.
Step 3: Generate CONNECTORS.md (if MCP tools used)
# Connectors
| Category | Available Servers |
|----------|-------------------|
| CRM | Salesforce, HubSpot |
| Ticketing | Zendesk, Jira |
## Configuration
Configure MCP servers in `.mcp.json` based on which services you use.
Plugin Examples
Security Plugin
- Rules: secrets-hygiene, code-review-standards
- Skills: vulnerability-scan, dependency-audit
- Hooks: afterFileEdit (lint), beforeShellExecution (validate)
DevOps Plugin
- Skills: incident-response, deployment-review
- Commands: /deploy-status, /incident-summary
- MCP: Monitoring (Datadog), CI/CD (GitHub Actions)
Customer Support Plugin
- Skills: ticket-triage, response-drafting
- Commands: /escalate, /draft-response
- MCP: Ticketing (Zendesk), CRM (Salesforce)
Testing
After generating, instruct the user to test locally:
- Install the plugin from the local directory in Cursor
- Try invoking skills by describing relevant tasks
- Try commands via
/plugin-name:command-name
- Verify rules apply by checking agent behavior in matching contexts
Submission
When ready to publish:
- Ensure
.cursor-plugin/plugin.json manifest is valid
- All rules/skills/agents/commands have proper frontmatter
- Push to a public Git repository
- Submit at cursor.com/marketplace/publish