Local plugin is not being picked up by cursor

I’m trying to test a local Cursor plugin, but Cursor does not seem to load the plugin correctly from the local plugin cache.

What works:

  • If I add the MCP server directly in Cursor, it works
  • If I add the skills directly outside the plugin, they work

What does not work:

  • When I package the same MCP + skills as a local plugin, Cursor does not recognize the plugin properly
  • In some cases the MCP shows up, but the skills do not
  • In other cases Cursor seems to rewrite the MCP config into an invalid nested shape

I placed the plugin here:

C:\Users.cursor\plugins\cache\local\

Structure:

C:\Users.cursor\plugins\cache\local
├── .cursor-plugin
│ └── plugin.json
├── assets
│ ├── logo.svg
│ ├── plugin_logo_512.png
│ └── plugin_logo_square_512.png
├── commands
│ └── connect-plugin.md
├── skills
│ ├── plugin-skill-a
│ │ └── SKILL.md
│ ├── plugin-skill-b
│ │ └── SKILL.md
│ ├── plugin-skill-c
│ │ └── SKILL.md
│ └── plugin-skill-d
│ └── SKILL.md
├── mcp.json
└── README.md

A few details:

  • .cursor-plugin/plugin.json is present at the plugin root
  • The skills are present on disk
  • The MCP file is present on disk
  • Restarting Cursor does not fix it

And for my plugin.json

{
“name”: “my-plugin”,
“version”: “0.2.0”,
“description”: “Generate assets and run workflows in Cursor with a hosted MCP server.”,
“author”: {
“name”: “My Company”,
“email”: “``[email protected]``”
},
“homepage”: “``https://example.com``”,
“repository”: “``https://github.com/example/plugin”``,
“license”: “MIT”,
“keywords”: [
“cursor”,
“assets”,
“mcp”,
“animation”,
“workflows”
],
“logo”: “assets/plugin_logo_square_512.png”
}

I’m on Windows 11.

Can someone tell me if I’m doing anything wrong?

Hey, I see the issue. You’re using the wrong path for a local plugin. You’re putting it in plugins/cache/local/, but the correct path is:

C:\Users\<user>\.cursor\plugins\local\<plugin-name>\

So there should be no cache in the path. The cache folder is used internally for marketplace plugins, and for local testing you need plugins/local/.

The folder structure should look like this. .cursor-plugin/plugin.json must be at the plugin root:

.cursor\plugins\local\my-plugin\
├── .cursor-plugin\
│   └── plugin.json
├── skills\
│   └── ...
├── mcp.json
└── ...

After moving it, restart Cursor or run Developer: Reload Window. The plugin should show up in Settings > Plugins under Installed.

About MCP getting rewritten into an invalid nested structure. That can happen if the parser was incorrectly handling some fields from plugin.json. Make sure Cursor is updated to the latest version, at least 2.6+, since this bug was fixed.

Docs for local testing: https://cursor.com/docs/plugins, section Test plugins locally.

Let me know if that helps.