Skip to content

Release: distribution — Claude Desktop extension, MCP Registry, plugin marketplace, clip doctor (v0.4.1) - #62

Merged
yultyyev merged 20 commits into
mainfrom
feat/distribution
Nov 7, 2026
Merged

yultyyev merged 20 commits into
mainfrom
feat/distribution

Conversation

@yultyyev

@yultyyev yultyyev commented Nov 7, 2026

Copy link
Copy Markdown
Collaborator

Release PR for the distribution work: merges the integration branch feat/distribution into main with a merge commit (not a squash), so semantic-release sees each slice's commits and cuts v0.4.1.

What ships in 0.4.1

Finish line: a new user can find the editor and install it in one step:

  • from Claude Desktop, with a one-click .mcpb;
  • from the official MCP Registry;
  • from a Claude Code plugin marketplace.

clip doctor tells them what's missing and how to fix it.

# Slice PR
1 clip doctor [--json] and the MCP doctor tool: Node, the FFmpeg that runs and its drawtext/vidstab filters, the workspace, a caption font, and the optional whisper.cpp and model. Each problem comes with its fix #56
2 Claude Desktop extension makemyclip-editor.mcpb, without FFmpeg, on Claude Desktop's built-in Node 24. It finds an installed FFmpeg and whisper-cli on PATH or in Homebrew's, MacPorts', winget's, Scoop's or Chocolatey's folder. CI builds it on every PR, and each release attaches it. The README's FFmpeg license notes are corrected #58
3 Official MCP Registry listing io.github.MakeMyClip/editor (npm + .mcpb), published from the release job with GitHub OIDC #59
4 Claude Code plugin marketplace: /plugin marketplace add MakeMyClip/editor, then /plugin install makemyclip-editor@makemyclip #61

Also on main already: the skills.sh badge, #57 and #60.

Release version: this PR adds { "type": "feat", "release": "patch" } to .releaserc.json, because the maintainer chose 0.4.1 over the 0.5.0 that the angular preset would cut for these feat commits. It applies to this release only. A follow-up chore PR removes it right after 0.4.1 is out.

What the release job does on merge

  1. Runs tests, lint and build. Installs mcp-publisher v1.8.8 (checked with cosign).
  2. semantic-release:
    • prepare: CHANGELOG, package.json → 0.4.1, pnpm build:mcpb, pnpm registry:prepare;
    • publish: npm with provenance, then the GitHub release with makemyclip-editor.mcpb attached;
    • success: pnpm registry:publish, which lists 0.4.1 in the MCP Registry. The maintainer approved this first publish on 2026-11-07.
  3. npm then shows the new README, including the SEO/AI-SEO pass from docs: search and answer-engine pass on the README, skill and npm metadata #55, which has been waiting for a release.

Checks

Run at the release tip, d612b45:

After merge (to verify on prod)

  • npm shows @makemyclip/editor@0.4.1 and the new README.
  • The GitHub release v0.4.1 has makemyclip-editor.mcpb; it installs in Claude Desktop and shows version 0.4.1.
  • https://registry.modelcontextprotocol.io/v0/servers?search=io.github.MakeMyClip/editor returns 0.4.1 with both packages.
  • /plugin marketplace add MakeMyClip/editor works from main.
  • Follow-up PR: remove the feat→patch rule.
  • Maintainer: submit the plugin to Anthropic's directory. The steps are in feat(skill): install the skill as a Claude Code plugin from this repo's marketplace #61.

yultyyev and others added 20 commits November 7, 2026 11:46
Checks Node, which FFmpeg resolves and whether it has drawtext and
vidstab, a writable workspace, a caption font, and the optional
whisper.cpp binary and model. Each warning or failure carries its fix;
--json prints the report as JSON and the CLI exits 1 when a required
check fails. The MCP server exposes the same report as the doctor tool.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
A non-zero exit passes only when whisper-cli printed its usage; a build
that can't load its libraries now warns with the loader's message.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…undled

When ffmpeg-static's binary isn't on disk (install scripts skipped, or
the Claude Desktop extension, which leaves FFmpeg out), FFmpeg resolves
to the first ffmpeg on PATH or in Homebrew's, MacPorts', winget's,
Scoop's or Chocolatey's folder. whisper-cli uses the same lookup, since
an app opened from the Dock lacks Homebrew on PATH. An empty
MAKEMYCLIP_FFMPEG_PATH or MAKEMYCLIP_WHISPER_PATH counts as unset, and
FFmpeg resolves per run, so one installed while the server runs works.
probe uses the shared resolution instead of its own. doctor names the
extension's settings when MAKEMYCLIP_BUNDLE=mcpb.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
pnpm build:mcpb packs release/makemyclip-editor.mcpb: the built CLI and
a flat production install, run by Claude Desktop's built-in Node 24 as
`clip mcp`. FFmpeg stays out (the Apple Silicon build ffmpeg-static
downloads is not redistributable); the build fails if a binary slips in.
Settings: media folder, FFmpeg, whisper model and whisper-cli, each
optional. A blank media folder in the extension means
Documents/MakeMyClip. The manifest test checks the mcpb 0.3 schema, the
tool list against the server, and the launch env through mcpb's own
config builder.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…FFmpeg license notes

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…bles on PATH

The filter list and the filtergraph-file option were cached once per
process, but FFmpeg now resolves per run: after a switch, captions
could stay refused or get the wrong option. Both are now cached per
resolved path. The PATH lookup also skips files without the execute
bit, as the shell does, instead of picking one execa can't run.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
feat(cli): add clip doctor and an MCP doctor tool
server.json lists io.github.MakeMyClip/editor as the npm package run as
`npx @makemyclip/editor mcp`, with the env it reads; package.json gets
the matching mcpName, which the registry checks on npm. At release,
`pnpm registry:prepare` stamps the version and adds the Claude Desktop
extension as an mcpb package (release URL + SHA-256), and
`pnpm registry:publish` logs in with GitHub OIDC and publishes, retrying
while npm catches up.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The release job installs mcp-publisher v1.8.8, checked against its
sigstore signature, and semantic-release stamps server.json in prepare
and publishes it in success, after npm and the GitHub release (with the
.mcpb) are out.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
A checkout of a release tag still says 0.0.0-development, so the
recovery steps pass the version and download the released .mcpb.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The repo root is both the marketplace (makemyclip) and its one plugin
(makemyclip-editor), whose root SKILL.md loads as the skill, so
`/plugin marketplace add MakeMyClip/editor` and
`/plugin install makemyclip-editor@makemyclip` install it. No version is
set, so the plugin follows the repo's commits.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
feat(mcp): one-click Claude Desktop extension (.mcpb), without FFmpeg
feat(mcp): list each release in the official MCP Registry
feat(skill): install the skill as a Claude Code plugin from this repo's marketplace
The maintainer chose a patch for this release. The rule is removed again
after 0.4.1 ships.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@yultyyev
yultyyev merged commit b0b2d86 into main Nov 7, 2026
1 check passed
@github-actions

github-actions Bot commented Nov 7, 2026

Copy link
Copy Markdown

🎉 This PR is included in version 0.4.1 🎉

The release is available on:

Your semantic-release bot 📦🚀

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant