From 98a183ea9bed2a3373c7c7c8348786c38e678430 Mon Sep 17 00:00:00 2001 From: Venky Deshpande Date: Tue, 16 Jun 2026 13:56:25 -0700 Subject: [PATCH] Add Higgsfield plugin --- .agents/plugins/marketplace.json | 12 +++++ plugins/higgsfield/.codex-plugin/plugin.json | 44 ++++++++++++++++ plugins/higgsfield/.mcp.json | 9 ++++ plugins/higgsfield/README.md | 41 +++++++++++++++ .../higgsfield/assets/higgsfield-small.svg | 4 ++ plugins/higgsfield/assets/higgsfield.png | Bin 0 -> 13637 bytes .../skills/higgsfield-generate-image/SKILL.md | 38 ++++++++++++++ .../agents/openai.yaml | 4 ++ .../skills/higgsfield-generate-video/SKILL.md | 39 ++++++++++++++ .../agents/openai.yaml | 4 ++ .../higgsfield-marketing-studio/SKILL.md | 49 ++++++++++++++++++ .../agents/openai.yaml | 4 ++ 12 files changed, 248 insertions(+) create mode 100644 plugins/higgsfield/.codex-plugin/plugin.json create mode 100644 plugins/higgsfield/.mcp.json create mode 100644 plugins/higgsfield/README.md create mode 100644 plugins/higgsfield/assets/higgsfield-small.svg create mode 100644 plugins/higgsfield/assets/higgsfield.png create mode 100644 plugins/higgsfield/skills/higgsfield-generate-image/SKILL.md create mode 100644 plugins/higgsfield/skills/higgsfield-generate-image/agents/openai.yaml create mode 100644 plugins/higgsfield/skills/higgsfield-generate-video/SKILL.md create mode 100644 plugins/higgsfield/skills/higgsfield-generate-video/agents/openai.yaml create mode 100644 plugins/higgsfield/skills/higgsfield-marketing-studio/SKILL.md create mode 100644 plugins/higgsfield/skills/higgsfield-marketing-studio/agents/openai.yaml diff --git a/.agents/plugins/marketplace.json b/.agents/plugins/marketplace.json index cf7236de6..56327fd32 100644 --- a/.agents/plugins/marketplace.json +++ b/.agents/plugins/marketplace.json @@ -306,6 +306,18 @@ }, "category": "Developer Tools" }, + { + "name": "higgsfield", + "source": { + "source": "local", + "path": "./plugins/higgsfield" + }, + "policy": { + "installation": "AVAILABLE", + "authentication": "ON_INSTALL" + }, + "category": "Design" + }, { "name": "sentry", "source": { diff --git a/plugins/higgsfield/.codex-plugin/plugin.json b/plugins/higgsfield/.codex-plugin/plugin.json new file mode 100644 index 000000000..1c6b21bde --- /dev/null +++ b/plugins/higgsfield/.codex-plugin/plugin.json @@ -0,0 +1,44 @@ +{ + "name": "higgsfield", + "version": "0.1.0", + "description": "Higgsfield AI MCP plugin for image and video generation, marketing assets, character workflows, billing, and Virality Predictor video analysis.", + "author": { + "name": "Higgsfield AI", + "url": "https://higgsfield.ai" + }, + "homepage": "https://higgsfield.ai", + "license": "MIT", + "keywords": [ + "higgsfield", + "image-generation", + "video-generation", + "marketing", + "creative-ai", + "virality-predictor", + "mcp" + ], + "mcpServers": "./.mcp.json", + "skills": "./skills/", + "interface": { + "displayName": "Higgsfield", + "shortDescription": "Generate images, videos, marketing assets, and analyze virality with Higgsfield MCP", + "longDescription": "Connect Codex to Higgsfield AI through the Higgsfield MCP server for image and video generation, job and media workflows, marketing studio tools, character workflows, billing views, and Virality Predictor video analysis.", + "developerName": "Higgsfield AI", + "category": "Design", + "capabilities": [ + "Interactive", + "Read", + "Write" + ], + "websiteURL": "https://higgsfield.ai", + "privacyPolicyURL": "https://higgsfield.ai/privacy-policy", + "termsOfServiceURL": "https://higgsfield.ai/terms-of-use-agreement", + "defaultPrompt": [ + "Create a cinematic short video with Higgsfield" + ], + "composerIcon": "./assets/higgsfield-small.svg", + "logo": "./assets/higgsfield.png", + "screenshots": [], + "brandColor": "#C8FF3D" + } +} diff --git a/plugins/higgsfield/.mcp.json b/plugins/higgsfield/.mcp.json new file mode 100644 index 000000000..b329bf5b6 --- /dev/null +++ b/plugins/higgsfield/.mcp.json @@ -0,0 +1,9 @@ +{ + "mcpServers": { + "higgsfield": { + "type": "http", + "url": "https://openai-mcp.higgsfield.ai/mcp", + "note": "Higgsfield AI MCP server for OpenAI/Codex clients. Uses authenticated Higgsfield access and provides tools for image/video generation, media and job workflows, marketing assets, billing views, character workflows, and Virality Predictor video analysis." + } + } +} diff --git a/plugins/higgsfield/README.md b/plugins/higgsfield/README.md new file mode 100644 index 000000000..0cfcfcf70 --- /dev/null +++ b/plugins/higgsfield/README.md @@ -0,0 +1,41 @@ +# Higgsfield + +Higgsfield brings AI image and video creation workflows into Codex through the hosted Higgsfield MCP server for OpenAI clients. + +Use this plugin to generate images and videos, inspect generation jobs, manage uploaded media, open marketing asset workflows, work with character tools, view billing and credits, and analyze videos with Virality Predictor. + +## MCP Server + +```json +{ + "mcpServers": { + "higgsfield": { + "type": "http", + "url": "https://openai-mcp.higgsfield.ai/mcp", + "note": "Higgsfield AI MCP server for OpenAI/Codex clients. Uses authenticated Higgsfield access and provides tools for image/video generation, media and job workflows, marketing assets." + } + } +} +``` + +The OpenAI/Codex MCP endpoint requires authenticated Higgsfield access on first use. + +## Common Workflows + +- Generate images from text prompts and model-specific settings. +- Generate videos from prompts, images, characters, and references. +- Check generation status and display completed jobs. +- Upload, confirm, and reuse media assets. +- Create marketing assets through Higgsfield's Marketing Studio tools. +- Analyze video virality, attention, and retention signals with Virality Predictor. +- View plan, credit, balance, transaction, and workspace information. + +## Authentication + +Higgsfield uses authenticated access for account-specific workflows such as generation, media, jobs, billing, workspaces, and character tools. Codex will handle the MCP connection flow when the plugin is installed or first used. + +## Links + +- Website: https://higgsfield.ai +- Privacy Policy: https://higgsfield.ai/privacy-policy +- Terms of Use: https://higgsfield.ai/terms-of-use-agreement diff --git a/plugins/higgsfield/assets/higgsfield-small.svg b/plugins/higgsfield/assets/higgsfield-small.svg new file mode 100644 index 000000000..7377d1366 --- /dev/null +++ b/plugins/higgsfield/assets/higgsfield-small.svg @@ -0,0 +1,4 @@ + + + + diff --git a/plugins/higgsfield/assets/higgsfield.png b/plugins/higgsfield/assets/higgsfield.png new file mode 100644 index 0000000000000000000000000000000000000000..69b7d674ec7a3f5ab3d78bb8390dd3ac4293608f GIT binary patch literal 13637 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 quN9`aOvy*1w4fdN|9RS!Pi2~Y