Marketplace Publish Extension
CLI-First Control Path
For marketplace and live-DCC operations, use the dcc-mcp skill and
dcc-mcp-cli whenever shell access is available. Its consent-gated install and
update check → update apply contract is the single source of truth; do not
invent a package-local CLI bootstrap path.
Publish (register or update) a DCC-MCP Skill, bundle, or Agent Plugin package
to a marketplace catalog (marketplace.json).
Prefer the CLI for local and CI publishing:
bashdcc-mcp-cli marketplace pack ./my-extension --out dist/ dcc-mcp-cli marketplace publish ./my-extension \ --catalog ./marketplace.json \ --install-url https://github.com/<owner>/<repo>/releases/download/v0.1.0/my-extension.zip \ --sha256 sha256:<digest> \ --min-core-version 0.19.0 \ --skill-root skill/my-extension
Tools
marketplace_publish_extension__publish
Scan an extension directory, build a CatalogEntry, and upsert it into the
target marketplace.json (local file or remote URL-backed file). When the
catalog source is a local git repository the tool can optionally commit and
push the change.
Prerequisites
- dcc-mcp-core installed
- Write access to the target marketplace catalog path
- Git (if using commit+push mode)
Release Gate — Python 3.7
- Verify py37 wheels exist and py37 CI is green before publishing.
py37-litefallback wheels do NOT satisfy the release gate. Native py37 builds are an LTS requirement with no automatic calendar expiry.- Confirm
requires-python = ">=3.7"inpyproject.tomlis unchanged. - Removing native py37 requires an accepted superseding ADR, a major release, and at least 180 days of notice.
Workflow
- Point the tool at a local Skill directory containing
SKILL.md, or an Agent Plugin directory containing rootplugin.jsonandskills/*/SKILL.md. - The CLI reads Skill frontmatter or Agent Plugin manifest metadata.
- Additional CLI-supplied fields (install url, ref, skill roots, tags,
maintainer, icon, and
showcase) are merged in. Use a repository-relative 16:9 PNG, JPEG, WebP, AVIF, or animated GIF path; the marketplace resolves it at the pinned 40-character Git revision. - A
CatalogEntryis built and upserted into the targetmarketplace.json. New catalogs use the v1skillslayout and preserve v1-only fields when an existing entry is updated. - If the catalog source is a git repo and
--commitis passed, the updatedmarketplace.jsonis committed and pushed.
Official catalog requirements
- Pass
--min-core-version; v1 entries require an explicit compatibility floor. - Git sources must use a complete 40-character commit object ID in
--install-ref; every catalog and runtime rejects branches, tags, short object IDs, and missing refs. - Host-neutral Skills declare
dcc: any. They match every concrete adapter, but installation must still pass a concrete--dcc;anyis never an installation directory or a standalone DCC runtime. - Declare every installed skill directory with
--skill-root. The installer only loads declared roots, so multi-skill repositories do not accidentally expose examples or development-only skills. - Agent Plugins must target the supported 1.0 manifest schema and keep every
Skill at an immediate
skills/<name>/SKILL.mdpath. Publishing recordspackage.format: agent-plugin; legacy multi-root packages useskill-bundle. - Zip sources require a 64-character SHA-256 digest before any archive read or download. When the archive URL changes, provide the new digest rather than reusing old metadata.
- The publisher preserves v1 curation fields such as
requiresandpolicywhen updating an existing entry, but new official entries must provide the complete marketplace metadata required by the catalog schema.


