Skip to content

Add OpusClip remote MCP server - #5171

Open
yong-opus wants to merge 1 commit into
docker:mainfrom
yong-opus:yongs-0920--add-opusclip
Open

yong-opus wants to merge 1 commit into
docker:mainfrom
yong-opus:yongs-0920--add-opusclip

Conversation

@yong-opus

Copy link
Copy Markdown

MCP Server Information

Server Name: opusclip
Repository URL: https://github.com/opus-pro/opusclip-mcp
Brief Description: OpusClip turns long videos into AI-curated short clips — analyze a video, preview and edit clips, reframe to vertical, caption, export, and schedule posts to connected social accounts.

This is a remote (hosted) server, so per CONTRIBUTING.md there is no Dockerfile and no image to build.

Basic Requirements

  • Open Source: MIT (the plugin/launcher repo opus-pro/opusclip-mcp is MIT; the hosted service is our own product)
  • MCP Compliant: Implements the MCP specification over streamable-http, including RFC 9728 protected-resource metadata for authorization discovery
  • Active Development: Actively maintained; also published to the official MCP registry, npm (@opusclip/mcp) and PyPI (opusclip-mcp)
  • Docker Artifact: N/A — remote server, no Dockerfile required
  • Documentation: https://help.opus.pro/api-reference/agent-setup
  • Security Contact: security@opus.pro

Submitter Checklist

  • This server meets the basic requirements listed above
  • I understand this will undergo automated and manual review.
  • I have tested the MCP Server using task validate -- --name opusclip
  • I have built the MCP Server using task build -- --tools opusclip — N/A, remote server has no image to build
  • Test credentials — see note below

Authentication

No oauth: block is declared, and that is deliberate. The server uses the standard MCP browser-based authorization flow (dynamic client registration + PKCE), so the client performs the OAuth dance and no personal access token or secret needs to be injected by Docker. This matches the existing hosted entries in the catalog that authenticate client-side.

Verified live while preparing this PR:

POST https://mcp.opus.pro/mcp   (unauthenticated)
→ HTTP 401
   www-authenticate: Bearer error="invalid_request",
     resource_metadata="https://mcp.opus.pro/mcp/.well-known/oauth-protected-resource"

GET https://mcp.opus.pro/mcp/.well-known/oauth-protected-resource
→ {"resource":"https://mcp.opus.pro/mcp",
   "authorization_servers":["https://focused-horizon-38.authkit.app"],
   "scopes_supported":["openid","profile","email","offline_access"],
   "bearer_methods_supported":["header"],
   "resource_documentation":"https://help.opus.pro/api-reference/agent-setup"}

The server refuses unauthenticated requests immediately rather than hanging. Any reviewer can connect with a free OpusClip account through the normal sign-in flow; happy to provide a dedicated test account via the credentials form if that is preferred — just say the word.

Validation

$ go run ./cmd/validate --name opusclip
✅ Name is valid
✅ Directory is valid
✅ Title is valid
✅ YAML formatting is valid
✅ Commit pin not required (non-local server)
✅ Secrets are valid
✅ Config env is valid
✅ License validation skipped (remote server)
✅ Icon is valid
✅ Dynamic tools are valid
✅ Remote is valid
✅ OAuth dynamic configuration is valid

🤖 Generated with Claude Code

OpusClip turns long videos into AI-curated short clips: analyze a video,
preview and edit clips, reframe to vertical, caption, export, and schedule
posts to connected social accounts.

Hosted server at https://mcp.opus.pro/mcp, streamable-http, with dynamic
tool discovery. Browser-based OAuth on first connection (standard MCP
authorization flow, RFC 9728 protected-resource metadata), so no personal
access token or secret needs to be injected — hence no oauth block, matching
the existing hosted entries that authenticate client-side.

go run ./cmd/validate --name opusclip passes all 12 checks.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@yong-opus
yong-opus requested a review from a team as a code owner September 20, 2026 08:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant