Repository navigation
Package the repo as a Mobbin agent plugin - #1
Merged
Merged
Conversation
Add Claude Code (.claude-plugin/, .mcp.json) and Agent Plugins 1.0.0 (plugin.json, mcp.json) manifests so hosts install the skills together with the hosted MCP server. Port the schema validator from mobbin-agent-plugin and extend it to check the manifests agree. Document each file and how to test in CONTRIBUTING.md. Refs PRJ-2801 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Add .cursor-plugin/ and .grok-plugin/ manifests so their listings can move here from mobbin-mcp-server. Bump every manifest to 1.1.0 so existing Cursor and Grok installs (1.0.0) see an update, and have the validator check the new manifests too. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude Code accepts streamable-http as an alias for http, so its manifest can point at the Agent Plugins mcp.json instead of a separate .mcp.json. One config for every host, and opening the repo in Claude Code no longer prompts to approve a project MCP server. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Each check is its own function that returns its problems, and the runner prints PASS or FAIL per check, so a failure shows which checks still passed. Schema errors name the unexpected field, and unreadable JSON is reported as a failure instead of crashing. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude Code shows the marketplace entry's display fields over the manifest's, so the validator now compares the entry's description, homepage, repository and license with plugin.json, and compares author, homepage and repository across the host manifests. plugin.json gains author.email so all four manifests share one author block. CI runs on pull requests and pushes to main, instead of every push. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
The plugin description now names what's bundled and what it's for, in the same shape as the Supabase and Figma plugins. The marketplace row drops "for AI coding agents". Keywords are the plain words people search on. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
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.
This PR packages the repo as the Mobbin agent plugin. On agents that support plugins, a single install now sets up the skills in
skills/and Mobbin's hosted MCP server (https://api.mobbin.com/mcp) together.This repo becomes where the Mobbin plugin is published, taking over from the Cursor and Grok plugin files in
mobbin/mobbin-mcp-server. All manifests are set to version 1.1.0. Those plugins are at 1.0.0 today, so people who already have them installed will see this as an update.What's added
.claude-plugin/plugin.jsonmcpServerspoints to./mcp.json, so installing the plugin also installs the MCP server. The plugin namemobbinis prefixed to every skill name, e.g.mobbin:mobbin-search.mcpServers, standard layout.claude-plugin/marketplace.json/plugin marketplace add mobbin/skills, then/plugin install mobbin@mobbin.plugin.json$schema.mcp.json.claude-plugin/plugin.json)"type": "streamable-http"). Claude Code acceptsstreamable-httpas an alias forhttp.typealias).cursor-plugin/plugin.jsondisplayNameshown in Cursor Marketplace. Cursor findsskills/andmcp.jsonwithout this file listing them..grok-plugin/plugin.json./skills/and./mcp.json. Same shape as the Grok manifest inmobbin/mobbin-mcp-server, plus askillsfield. That manifest writes the MCP path asmcp.jsonwithout the./prefix.scripts/validate.mjs,schemas/1.0.0/,package.json,.github/workflows/validate.ymlplugin.jsonandmcp.jsonagainst the Agent Plugins schemas. The script comes frommobbin/mobbin-agent-plugin, with new checks that the manifests match each other: every host manifest has the same name, version, description, author, homepage, repository and license asplugin.json; any host manifest that setsmcpServerspoints to./mcp.json; and the marketplace entry has noversionand its description, homepage, repository and license matchplugin.json, since Claude Code shows the entry's values over the manifest's. CI runs on pull requests and on pushes tomain.README.mdnpx skills. Setting up the MCP server by hand is now only needed for the skills-only install.npx skills, Agent Skills specClaude Code and the Agent Plugins format each need their own manifest: Claude Code reads
.claude-plugin/plugin.json, and the Agent Plugins schema is closed, so only its listed fields are allowed (spec §5.2). They share one MCP config. The spec requires it to bemcp.jsonat the plugin root (§7.2), and Claude Code reads that file throughmcpServers. There's no.mcp.json, so opening this repo in Claude Code doesn't ask you to approve a project MCP server (project scope).Testing
npm run validatepasses. It fails when one manifest's version doesn't match, e.g..grok-plugin/plugin.json: version is "1.0.0", but plugin.json has "1.1.0", and when a manifest pointsmcpServersanywhere else, e.g..claude-plugin/plugin.json: mcpServers must be "./mcp.json".claude plugin validate .passes (plugin validate).CLAUDE_CONFIG_DIR:Needs authenticationmeans the server is reachable and is waiting for OAuth sign-in.claudewith the sameCLAUDE_CONFIG_DIR, sign in through/mcp, and ask a design question.mobbin-searchshould load and callsearch_screens.chat.plugins.enabled, run Chat: Install Plugin From Source with the checkout path, and check that the skill and themobbinMCP server both show up (docs).~/.cursor/plugins/local/, then check that the skill loads and the MCP server connects (docs).mcp.jsonformats are accepted, so this is the one to check most carefully.Follow-up
Migration off
mobbin/mobbin-mcp-serveris a separate pass: repoint the Cursor Marketplace listing at this repo, remove the Cursor and Grok plugin files from that repo so there's one source per host, and update the README's Cursor section once the listing has moved. Until then, Cursor Marketplace serves the 1.0.0 plugin from the old repo.Releasing
Bump
versioninplugin.jsonand in all three host manifests (.claude-plugin/,.cursor-plugin/,.grok-plugin/). The validator fails if they don't match. Claude Code users only receive new files when the version changes (Release a new version).🤖 Generated with Claude Code