Bug Report: Marketplace scanner ignores .plugin/plugin.json manifest and custom component paths
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 8.2k
- Forks
- 751
- Avg merge
- 12h 1m
- Merged PRs (30d)
- 43
Description
Summary
The Cursor marketplace "Scan repo" feature only checks hardcoded root-level paths for plugin components. It does not read .plugin/plugin.json (or .cursor-plugin/plugin.json) to discover components at custom paths declared via manifest fields like "skills" or inline "mcpServers". This breaks monorepo plugins that follow the Open Plugins specification.
Environment
- Cursor marketplace: Submit a Plugin → Auto (GitHub) → Scan repo
- Repo: https://github.com/patchorbit/domscribe
Steps to reproduce
- Create a valid plugin with
.plugin/plugin.jsonthat declares custom component paths:{ "name": "domscribe", "version": "0.4.0", "skills": "./packages/domscribe-relay/src/skills", "mcpServers": { "domscribe": { "type": "stdio", "command": "npx", "args": ["-y", "@domscribe/mcp"] } } } - Place the skill at the declared path:
packages/domscribe-relay/src/skills/domscribe/SKILL.md - Go to Cursor marketplace → Submit a Plugin → Auto (GitHub)
- Enter the repo URL and click "Scan repo"
Result:
No plugin components found in: repo root. We looked for: rules/.mdc, .mcp.json or mcp.json, skills//SKILL.md, agents/.md, commands/.md, hooks/hooks.json, .lsp.json. Make sure your repo follows the Open Plugins standard (https://open-plugins.com).
Expected behavior
The scanner should:
- Check for
.plugin/plugin.json(or.cursor-plugin/plugin.json) at the repo root - Read the manifest's component fields (
skills,mcpServers,agents,commands,rules,hooks) - Resolve custom paths declared in those fields (e.g.,
"skills": "./packages/domscribe-relay/src/skills") - Discover components at the resolved paths
Then fall back to the default root-level paths only for components not declared in the manifest.
Actual behavior
The scanner skips manifest discovery entirely and only checks hardcoded default paths at the repo root.
Impact
- Monorepo plugins that declare custom component paths via
plugin.jsoncannot be submitted via the auto-detect flow - Inline
mcpServersinplugin.jsonare not detected (the scanner only checks.mcp.json/mcp.jsonfiles) - This contradicts the Open Plugins spec, which explicitly supports custom paths in the manifest
References
- Open Plugins specification — defines
.plugin/plugin.jsonas a valid manifest location and supports custom component paths via manifest fields - The spec states component fields accept string paths (
"./custom/skills/"), arrays, or objects with"exclusive": true
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the Cursor marketplace Submit a Plugin → Auto (GitHub) → Scan repo flow and trace how repository components are discovered. Reproduce with the domscribe repository and its .plugin/plugin.json manifest, then verify that declared custom paths and inline mcpServers are detected while undeclared components still use the default paths.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- typescript
- Domain
- tooling
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Clearly specified
- Newbie friendliness
- 55/100