npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@enhancor/mcp-happy-horse

v0.2.0

Published

MCP server for the Enhancor Happy Horse video generation API — text-to-video, image-to-video, multi-reference, and video editing for Claude and any MCP client.

Downloads

61

Readme

@enhancor/mcp-happy-horse

Official MCP server for the Enhancor Happy Horse video generation API.

Plug Enhancor into Claude (or any MCP-compatible client) and let the model generate videos from text, animate images, mix multiple references, or edit existing videos — natively. No middleware, no glue code.


What's in the box

Four tools mapping to the Happy Horse API:

| Tool | What it does | | --- | --- | | happy_horse_submit_job | Submit a video job. Returns a requestId immediately. | | happy_horse_check_status | One-shot status check. Returns the result video URL when COMPLETED. | | happy_horse_wait_for_completion | PREFERRED for video — long-poll a job server-side. Pair with submit_job for clean UX without client-side sleep loops. Each call blocks up to 45s; just call again if still in progress. | | happy_horse_submit_and_wait | Convenience: submit + block in one call. Default 45s cap. Only useful for tests / very short jobs. |

The MCP does not expose webhook_url — it manages that internally (see How it works below).

Modes

| Mode | input_media | | --- | --- | | text-to-video | none | | image-to-video | exactly 1 image | | multi-reference-image-to-video | 1–9 images | | video-editing | exactly 1 video + 0–5 reference images |

Audio is not accepted in input_media. Images must be ≥400×400px and ≤10MB.

Install

Requires Node.js 18+.

Claude Desktop

Edit ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):

{
  "mcpServers": {
    "enhancor-happy-horse": {
      "command": "npx",
      "args": ["-y", "@enhancor/mcp-happy-horse"],
      "env": {
        "ENHANCOR_API_KEY": "sk_your_key_here"
      }
    }
  }
}

Restart Claude Desktop.

Claude Code

claude mcp add enhancor-happy-horse \
  -s user \
  --env ENHANCOR_API_KEY=sk_your_key_here \
  -- npx -y @enhancor/mcp-happy-horse

Cursor, Cline, Continue, or any MCP client

Point it at npx -y @enhancor/mcp-happy-horse as the command, set ENHANCOR_API_KEY in env.

Getting an API key

  1. Sign up at https://app.enhancor.ai/api-dashboard
  2. Create an API key
  3. Per-product pricing lives inline in each product's docs on the dashboard. Per-job cost also returns in every /status response.

Example prompts

Once installed, ask Claude things like:

Generate a 5-second 720p text-to-video shot of a drone flying over a mountain range at golden hour, cinematic wide shot.

Take this image [URL] and animate it: gentle camera push-in, 4 seconds, 1080p.

Combine these 3 reference images [URL1] [URL2] [URL3] into a 6-second 1080p clip — slow pan from left to right, soft cinematic lighting.

Edit this video [URL] to add a sunset color grade and slow it down to half speed. Use these stills as style references [URL_a] [URL_b].

Claude will pick the right mode, fill the params, call Enhancor, and return the output video URL.

Pricing

Cost is per-second based on resolution:

| Resolution | Credits/second | | --- | --- | | 720p | 70 | | 1080p | 115 |

Total cost = credits/second × duration. Per-job cost also returns in every /status response. For live per-plan USD pricing and credit balance, see the dashboard: https://app.enhancor.ai/api-dashboard.

Configuration

| Environment variable | Required | Default | Notes | | --- | --- | --- | --- | | ENHANCOR_API_KEY | yes | — | Your Enhancor API key | | NGROK_AUTHTOKEN | no | — | If set, the MCP uses ngrok (free tier is fine) for the webhook tunnel instead of localtunnel. More reliable for production. Get a token at https://dashboard.ngrok.com/get-started/your-authtoken | | ENHANCOR_AUTO_DOWNLOAD | no | 1 (on) | When on, the MCP downloads result videos to a local folder and includes a local_path in the response. Critical for sandboxed MCP clients (Claude Code, Cowork) where Cloudfront URLs are blocked. Set to 0 to disable. | | ENHANCOR_DOWNLOAD_DIR | no | ./enhancor-downloads | Folder for auto-downloaded result files. Defaults to a subfolder of the current working directory so the file is reachable from sandboxed clients. | | ENHANCOR_HAPPY_HORSE_BASE_URL | no | https://apireq.enhancor.ai/api/happy-horse-1/v1 | Override for staging / self-host |

Supported parameters

  • prompt (required, max 2,500 characters) — scene, camera, style, dialogue
  • mode (required) — text-to-video, image-to-video, multi-reference-image-to-video, video-editing
  • resolution (required) — 720p or 1080p
  • duration (required) — integer seconds, 3–15
  • fast_mode (optional, default true) — fast model when true, standard model when false. Not supported for video-editing.
  • aspect_ratio (optional, default 16:9) — 16:9, 9:16, 1:1, 4:3, 3:4. Only applies to text-to-video and multi-reference-image-to-video.
  • input_media (optional, required for non-text-to-video modes) — array of { url, type? } items. See Modes above for per-mode rules.

How it works

The Happy Horse API delivers results via webhook. Since an MCP server runs locally on the user's machine with no public URL, this package does the webhook setup for you:

  1. On the first tool call, it spins up a local HTTP listener on a random loopback port.
  2. It exposes that listener publicly: ngrok if NGROK_AUTHTOKEN is set, otherwise localtunnel (no signup needed).
  3. Every /queue request sends that public URL as webhook_url automatically.
  4. wait_for_completion and submit_and_wait race the webhook against a 15-second /status poll — whichever reports completion first wins. That means you always get your result, even if the tunnel is flaky or a webhook is delayed for a particular request.

No configuration is required. The tunnel lifecycle is transparent. For best webhook latency and reliability (e.g. in production or long-running sessions), set NGROK_AUTHTOKEN — ngrok's free tier is sufficient.

Support & community

https://www.skool.com/publicai

License

MIT