Generate and edit Happy Horse AI videos through Ace Data Cloud
Model Context Protocol server for Happy Horse AI video generation and editing through the Ace Data Cloud API.
pip install mcp-happyhorse
export ACEDATACLOUD_API_TOKEN="your-token"
mcp-happyhorse
Get a token from platform.acedata.cloud.
{
"mcpServers": {
"happyhorse": {
"command": "uvx",
"args": ["mcp-happyhorse"],
"env": {
"ACEDATACLOUD_API_TOKEN": "your-token"
}
}
}
}
{
"mcpServers": {
"happyhorse": {
"url": "https://happyhorse.mcp.acedata.cloud/mcp",
"headers": {
"Authorization": "Bearer your-token"
}
}
}
}
The hosted endpoint also supports OAuth-capable MCP clients.
| Tool | Purpose |
|---|---|
happyhorse_generate_video | Generate a video from text |
happyhorse_generate_video_from_image | Animate one first-frame image |
happyhorse_generate_video_from_references | Generate from 1-9 reference images |
happyhorse_edit_video | Edit a source video with up to 5 references |
happyhorse_get_task | Query one task |
happyhorse_get_tasks_batch | Query multiple tasks |
happyhorse_list_models | List valid models for each action |
Generation tools submit asynchronously when no callback_url is supplied. Keep the returned
task_id, wait about 15 seconds, then call happyhorse_get_task until the response contains a
final video_url or terminal error.
| Action | Models | Default |
|---|---|---|
| Text-to-video | happyhorse-1.0-t2v, happyhorse-1.1-t2v | happyhorse-1.1-t2v |
| Image-to-video | happyhorse-1.0-i2v, happyhorse-1.1-i2v | happyhorse-1.1-i2v |
| Reference-to-video | happyhorse-1.0-r2v, happyhorse-1.1-r2v | happyhorse-1.1-r2v |
| Video edit | happyhorse-1.0-video-edit | happyhorse-1.0-video-edit |
Generation duration is 3-15 seconds. Supported resolutions are 720P and 1080P. Text and
reference generation support 16:9, 9:16, 1:1, 4:3, and 3:4. Image-to-video follows the
input image ratio. Video-edit duration follows the source video.
Ask your MCP client:
Generate a 720P, 9:16 video of a white horse crossing a snowy ridge at sunrise.
Animate https://example.com/horse.jpg with a slow camera push and wind moving the mane.
Edit https://example.com/source.mp4 to preserve the camera motion but apply the costume style from https://example.com/reference.jpg. Keep the original audio.
| Variable | Default | Purpose |
|---|---|---|
ACEDATACLOUD_API_TOKEN | none | API token for local stdio mode |
ACEDATACLOUD_API_BASE_URL | https://api.acedata.cloud | API origin |
HAPPYHORSE_REQUEST_TIMEOUT | 60 | HTTP request timeout in seconds |
MCP_TRANSPORT | stdio | stdio or http |
MCP_SERVER_URL | none | Public URL that enables hosted OAuth |
LOG_LEVEL | INFO | Logging level |
pip install -e ".[all]"
pytest --cov=core --cov=tools
ruff check .
mypy core tools main.py
Source-derived launch command. Check the maintainer’s required arguments and credentials before running:
uvx mcp-happyhorseMerge this template into ~/Library/Application Support/Claude/claude_desktop_config.json. Keep existing servers. Add any arguments, credentials, and permissions required by the maintainer; this template has not been install-tested.
{
"mcpServers": {
"io-github-acedatacloud-mcp-happyhorse": {
"command": "uvx",
"args": [
"mcp-happyhorse"
]
}
}
}Restart Claude Desktop completely for changes to take effect. Confirm the server appears connected in the client’s tool list, then try a read-only example from its documentation.
Claude Desktop setup referencemcp-happyhorsepypiio.github.AceDataCloud/mcp-happyhorse works with any MCP-compatible client. Copy the config snippet from the Configuration section above and add it to the file shown for your client, then restart the application.
~/Library/Application Support/Claude/claude_desktop_config.jsonRestart Claude Desktop completely for changes to take effect.~/.cursor/mcp.jsonRestart Cursor for changes to take effect..vscode/mcp.jsonReload VS Code window for changes to take effect.~/.codeium/windsurf/mcp_config.jsonRestart Windsurf for changes to take effect..mcp.jsonSave at the project root, then start Claude Code in that project and review the MCP server approval prompt. Keep real credentials out of shared files.