Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions .cursor-plugin/marketplace.json
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,11 @@
"name": "starter-advanced",
"source": "./plugins/starter-advanced",
"description": "Full-featured plugin with rules, skills, agents, commands, hooks, and MCP"
},
{
"name": "starter-agent-plugins",
"source": "./plugins/starter-agent-plugins",
"description": "Minimal Agent Plugin with skills and MCP"
}
]
}
17 changes: 11 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,18 +2,22 @@

Build and publish Cursor Marketplace plugins from a single repo.

Two starter plugins are included:
This template includes both [Cursor Plugins](https://cursor.com/docs/plugins) and an [Agent Plugins](https://agent-plugins.org) starter:

- **starter-simple**: rules and skills only
- **starter-advanced**: rules, skills, agents, commands, hooks, MCP, and scripts
- **starter-simple**: Cursor Plugin with rules and skills only
- **starter-advanced**: Cursor Plugin with rules, skills, agents, commands, hooks, MCP, and scripts
- **starter-agent-plugins**: Agent Plugins format with a root `plugin.json`, skills, and MCP servers

Cursor Plugins use `.cursor-plugin/plugin.json` and can bundle Cursor-specific components. Agent Plugins use a root `plugin.json` with the standard `$schema` and package portable skills and MCP servers.

## Getting started

[Use this template](https://github.com/cursor/plugin-template/generate) to create a new repository, then customize:

1. `.cursor-plugin/marketplace.json`: set marketplace `name`, `owner`, and `metadata`.
2. `plugins/*/.cursor-plugin/plugin.json`: set `name` (lowercase kebab-case), `displayName`, `author`, `description`, `keywords`, `license`, and `version`.
3. Replace placeholder rules, skills, agents, commands, hooks, scripts, and logos.
2. For a Cursor Plugin, edit `plugins/*/.cursor-plugin/plugin.json`: set `name` (lowercase kebab-case), `displayName`, `author`, `description`, `keywords`, `license`, and `version`.
3. For an Agent Plugin, edit `plugins/*/plugin.json`: keep `$schema` and set `name`, `author`, `description`, `keywords`, `license`, and `version`.
4. Replace placeholder rules, skills, agents, commands, hooks, scripts, MCP servers, and logos.

To add more plugins, see `docs/add-a-plugin.md`.

Expand All @@ -25,7 +29,8 @@ For a **single plugin**, move your plugin folder contents to the repository root

## Submission checklist

- Each plugin has a valid `.cursor-plugin/plugin.json`.
- Each Cursor Plugin has a valid `.cursor-plugin/plugin.json`.
- Each Agent Plugin has a valid root `plugin.json` with `$schema` set to `https://agent-plugins.org/schemas/1.0.0/plugin.schema.json`.
- Plugin names are unique, lowercase, and kebab-case.
- `.cursor-plugin/marketplace.json` entries map to real plugin folders.
- All frontmatter metadata is present in rule, skill, agent, and command files.
Expand Down
49 changes: 46 additions & 3 deletions docs/add-a-plugin.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,11 @@

Add a new plugin under `plugins/` and register it in `.cursor-plugin/marketplace.json`.

Choose a format first:

- **Cursor Plugin**: `.cursor-plugin/plugin.json`, plus any of rules, skills, agents, commands, hooks, and MCP
- **Agent Plugin**: root `plugin.json` with the Agent Plugins `$schema`, plus optional `skills/` and `mcp.json`

## 1. Create plugin directory

Create a new folder:
Expand All @@ -10,7 +15,7 @@ Create a new folder:
plugins/my-new-plugin/
```

Add the required manifest:
### Cursor Plugin manifest

```text
plugins/my-new-plugin/.cursor-plugin/plugin.json
Expand All @@ -31,9 +36,33 @@ Example manifest:
}
```

### Agent Plugin manifest

```text
plugins/my-new-plugin/plugin.json
```

Example manifest:

```json
{
"$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json",
"name": "my-new-plugin",
"version": "1.0.0",
"description": "Describe what this plugin does",
"author": {
"name": "Your Org"
}
}
```

The Agent Plugins schema is closed. Do not add `displayName`, `logo`, `hooks`, `rules`, or other Cursor-only fields at the top level.

## 2. Add plugin components

Add only the components you need:
Add only the components you need.

### Cursor Plugin components

- `rules/` with `.mdc` files (YAML frontmatter required)
- `skills/<skill-name>/SKILL.md` (YAML frontmatter required)
Expand All @@ -43,6 +72,13 @@ Add only the components you need:
- `mcp.json` for MCP server definitions
- `assets/logo.svg` for marketplace display

### Agent Plugin components

- `skills/<skill-name>/SKILL.md` (YAML frontmatter required)
- `mcp.json` for MCP server definitions

`mcp.json` must include `$schema`, and each server must declare `type` (`stdio`, `streamable-http`, or `sse`). Agent Plugins do not include rules, agents, commands, hooks, or logos.

## 3. Register in marketplace manifest

Edit `.cursor-plugin/marketplace.json` and append a new entry:
Expand All @@ -69,8 +105,15 @@ Fix all reported errors before committing.

- Plugin `name` not kebab-case.
- `source` path in marketplace manifest does not match folder name.
- Missing `.cursor-plugin/plugin.json` in plugin folder.
- Missing `.cursor-plugin/plugin.json` for a Cursor Plugin, or missing root `plugin.json` `$schema` for an Agent Plugin.
- Adding Cursor-only fields (`displayName`, `logo`, `rules`) to an Agent Plugin `plugin.json`.
- Agent Plugin `mcp.json` missing `$schema` or server `type`.
- Missing frontmatter keys (`name`, `description`) in skills, agents, or commands.
- Rule files missing frontmatter `description`.
- Using a filename other than `mcp.json` for MCP server definitions.
- Broken relative paths for `logo`, `hooks`, or `mcpServers` in manifest files.

## 6. More resources

- [Cursor Plugins documentation](https://cursor.com/docs/plugins)
- [Agent Plugins](https://agent-plugins.org/)
24 changes: 24 additions & 0 deletions plugins/starter-agent-plugins/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
# starter-agent-plugins

Simple [Agent Plugins](https://agent-plugins.org) starter. This format uses a root `plugin.json` and can package skills and MCP servers that load in any spec-compatible client, including Cursor.

```text
starter-agent-plugins/
├── plugin.json
├── skills/
│ └── code-reviewer/
│ └── SKILL.md
└── mcp.json
```

## Included

- `plugin.json`: Agent Plugins 1.0.0 manifest (`$schema` is required)
- `skills/code-reviewer/`: one example [Agent Skill](https://agentskills.io/specification)
- `mcp.json`: one example remote MCP server (`type` is required)

## Not included

Agent Plugins 1.0.0 does not define rules, agents, commands, hooks, logos, or marketplace fields. For those Cursor-specific components, use `starter-simple` or `starter-advanced`.

Client-owned extras belong under `extensions` or a reverse-domain directory. See the [client extensions guide](https://agent-plugins.org/plugin-authors/client-extensions).
9 changes: 9 additions & 0 deletions plugins/starter-agent-plugins/mcp.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
{
"$schema": "https://agent-plugins.org/schemas/1.0.0/mcp.schema.json",
"mcpServers": {
"remote-tools": {
"type": "streamable-http",
"url": "https://tools.example.com/mcp"
}
}
}
13 changes: 13 additions & 0 deletions plugins/starter-agent-plugins/plugin.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
{
"$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json",
"name": "starter-agent-plugins",
"version": "1.0.0",
"description": "Minimal Agent Plugin starter with skills and MCP servers.",
"author": {
"name": "Your Org",
"email": "plugins@example.com"
},
"license": "MIT",
"homepage": "https://agent-plugins.org/",
"keywords": ["agent-plugins", "skills", "mcp"]
}
20 changes: 20 additions & 0 deletions plugins/starter-agent-plugins/skills/code-reviewer/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
---
name: code-reviewer
description: Review code for correctness, maintainability, and security risks. Use when preparing a PR or auditing a change set.
---

# Code reviewer

## When to use

- Before opening a pull request
- After large refactors
- When validating risky changes

## Instructions

1. Identify potential behavioral regressions first.
2. Flag security concerns (XSS, SQL injection, command injection, secrets).
3. Evaluate readability, structure, and naming consistency.
4. Recommend concrete fixes with minimal churn.
5. Call out missing tests or validation steps.
Loading