Skip to content

Reference

The marketplace manifest lives at .claude-plugin/marketplace.json in the repository root.

FieldRequiredDescription
$schemaNoJSON Schema URL for validation
nameYesUnique marketplace identifier
versionNoMarketplace schema version (semver)
metadata.descriptionYesHuman-readable marketplace description
owner.nameYesOrganization or user that owns the marketplace
owner.urlNoURL to the owner’s profile or website
owner.emailNoContact email
pluginsYesArray of plugin entries
FieldRequiredDescription
nameYesPlugin identifier (must match plugin.json)
descriptionYesShort description of the plugin
versionYesSemantic version string
author.nameYesPlugin author
sourceYesPath or URL to the plugin (see Source Types)
categoryYesPlugin category (e.g., productivity)
homepageNoURL to plugin documentation or homepage
licenseNoSPDX license identifier
keywordsNoArray of search keywords
tagsNoArray of tags for filtering
repositoryNoRepository URL

The source field in marketplace.json supports multiple formats:

TypeExampleDescription
Relative path./plugins/my-pluginPlugin in same repository
GitHub shorthandowner/repoPlugin at repository root
GitHub with pathowner/repo/path/to/pluginPlugin in subdirectory
Git URLhttps://github.com/owner/repo.gitGit repository
npm packagenpm:@scope/packagePublished npm package

Each plugin has a manifest at .claude-plugin/plugin.json inside its directory.

FieldRequiredDescription
nameYesPlugin identifier
descriptionYesWhat the plugin does
versionYesSemantic version
author.nameYesPlugin author
author.urlNoURL to the author’s profile or website
homepageNoDocumentation URL
keywordsNoSearch keywords
licenseNoSPDX license identifier
repositoryNoRepository URL
plugins/my-plugin/
.claude-plugin/
plugin.json # Plugin manifest (required)
skills/
skill-name/
SKILL.md # Skill definition (required per skill)
references/ # Reference data files (optional)
commands/
command-name.md # Command definition (one per command)
agents/
agent-name.md # Agent definition (one per agent)
README.md # Plugin documentation (recommended)

Plugins can use these variables in their skill and command files:

VariableDescription
$\{CLAUDE_PLUGIN_ROOT\}Absolute path to the plugin’s root directory

Validate your marketplace and plugin manifests locally:

Terminal window
claude plugin validate .

This checks:

  • marketplace.json schema compliance
  • All referenced plugin directories exist
  • Each plugin has a valid plugin.json
  • Skills have properly formatted SKILL.md frontmatter
  • Commands have required frontmatter fields

Add to .claude/settings.json in any repository:

{
"extraKnownMarketplaces": [
"f5xc-salesdemos/marketplace"
]
}
{
"enabledPlugins": [
"f5xc-docs-tools@f5xc-salesdemos-marketplace"
]
}

Verify the marketplace was added:

/plugin marketplace list

If missing, re-add it:

/plugin marketplace add f5xc-salesdemos/marketplace
  • Confirm the plugin is installed: /plugin list
  • Check that your Claude Code version supports plugins (v1.0.33+)
  • Verify the skill’s trigger conditions match your current context

Skills activate based on their description field in SKILL.md frontmatter. If a skill is not activating when expected:

  • Check that the description accurately describes the trigger context
  • Use the command directly (e.g., /f5xc-docs-tools:review-mdx) as a workaround

The plugin reports issues but does not auto-fix them. Apply the suggested fixes manually, then re-run the review to confirm resolution.