Repository navigation
fix: Cursor Marketplace listing — manifest format, logo, MCP name, install docs - #119
Merged
Merged
Conversation
Cursor installs plugins from the Customize panel in the sidebar, not from a "Settings → Plugins → Add plugin" screen — that path does not exist. Users pick project or user scope at install time. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
zerts
previously approved these changes
Aug 31, 2026
The traced SVG was one path whose outer boundary is the square and whose two triangles are winding holes, with a white rect behind showing through them. Cursor's icon rasterizer doesn't composite that correctly — the blue field rendered as a blue/cyan transparency checkerboard in the Customize panel. Rebuilt with the same traced geometry as positive shapes: an opaque blue rect plus the two triangles filled white on top. No holes, no fill-rule dependency, no backing rect. Verified opaque and correct at 46px icon size; 0.76% mean pixel difference from the source PNG (antialiasing only). Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
zerts
previously approved these changes
Aug 31, 2026
Cursor's review skill lists ".cursor-plugin/plugin.json exists" as requirement #1, and every official plugin plus Phantom's phantom-agent-kit ships that format with no root plugin.json. The root agent-plugins manifest also can't carry displayName, publisher, category or tags — its schema sets additionalProperties: false. - .cursor-plugin/plugin.json replaces the root plugin.json: adds displayName "Zerion", publisher, tags, explicit skills and mcpServers paths; validated against Cursor's published schema (no unknown fields) - logo now points at assets/logo.png — every official Cursor plugin and Phantom ship a PNG avatar, and the SVG misrendered in the Customize panel - package.json ships .cursor-plugin/ instead of plugin.json Verified locally in Cursor 3.18.9: skill, plugin and MCP server all load and the MCP connects (3 tools, 1 resource). Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Cursor has no display-name field for MCP servers — the marketplace title-cases the key from mcp.json. "zerion-api-docs" rendered as "Zerion Api Docs"; "zerion-docs" gives "Zerion Docs". Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Renders as "Zerion Mcp" on the marketplace listing, matching how Phantom's "Phantom Mcp" entry reads. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Cursor has no display-name field for MCP servers — it renders the key from
mcp.json. A capitalised key displays as-is ("Zerion") in both the local
panel and the marketplace, where kebab-case rendered as "Zerion Mcp".
No space in the key: it namespaces the tool names the agent calls
(mcp__Zerion__search_zerion_api), where spaces break the identifier pattern.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Cursor caches component icons by asset path, so the old broken SVG render kept showing on the MCP row through four MCP renames. A new path forces a fresh render, and assets/avatar.png is the convention every official Cursor plugin and Phantom's kit already use. assets/logo.svg is removed: nothing referenced it after the switch to PNG, and it is the file that misrendered. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
zerts
approved these changes
Aug 31, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Corrections to #117, all found by loading the plugin in Cursor 3.18.9 and reading Cursor's published schema, review skill, and reference implementations.
Net effect vs
main.cursor-plugin/plugin.jsonplugin.jsonassets/logo.png→assets/avatar.pngassets/logo.svgmcp.jsonzerion-api-docs→ZerionREADME.mdpackage.json.cursor-plugin/instead ofplugin.json1. Wrong manifest format
#117 shipped a root
plugin.json(agent-plugins.org format) for portability. That was the wrong call:.cursor-plugin/plugin.jsonexists" as check feat: add x402 pay-per-call support #1..cursor-plugin+.claude-plugin, no root manifest, the same shape as this repo.displayName,publisher,categoryortags: its schema setsadditionalProperties: false.Validated against Cursor's published schema: no unknown fields,
namematches the kebab-case pattern, every declared path exists.2. Logo
assets/avatar.png, matching Phantom and all official plugins. The SVG from #117 rendered as a transparency checkerboard in Cursor's panel; it's deleted rather than left unreferenced.3. MCP server name
Cursor has no display-name field for MCP servers — it renders the key from
mcp.json.zerion-api-docswould have listed as "Zerion Api Docs"; the key is nowZerion, which displays as-is. No space, since the key namespaces the tool names the agent calls (mcp__Zerion__search_zerion_api).4. Install path
Was:
Settings → Plugins → Add plugin— a screen that doesn't exist.Is: the Customize panel in the sidebar → Install → project or user scope.
Local verification
Loaded from
~/.cursor/plugins/local/zerionin Cursor 3.18.9:Zerion, connected, 3 tools + 1 resourcezerion(oneSKILL.md; the 31 capability and partner docs are nested references loaded on demand, by design)Satisfies the local-verification step on Cursor's publishing checklist.
Notes for submission
displayName: "Phantom Connect"with nocategory, yet their live listing reads "Phantom" under "Payments".displayNameis set toZerionhere; ask for that title when submitting.serverInfo(noiconsfield), the docs-site favicon (clean), and alpha in our PNG (opaque=true). Phantom's published listing shows a plain glyph there, so it does not affect the listing.🤖 Generated with Claude Code