Repository navigation
Add Happy Horse by Ace Data Cloud plugin #552
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
acedatacloud-dev
wants to merge
5
commits into
cursor:main
Choose a base branch
from
AceDataCloud:codex/happy-horse-plugin
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
+323
−0
Open
Changes from all commits
Commits
Show all changes
5 commits
Select commit
Hold shift + click to select a range
d6cb43d
feat(third_party): add Happy Horse plugin
acedatacloud-dev 82d5ae8
fix(happy-horse): declare API token variable
acedatacloud-dev 2f58174
docs: match Cursor 3.24 plugin navigation
acedatacloud-dev a096b63
docs: tag shared Cursor README activation links
acedatacloud-dev 48800e9
feat: improve service discovery and illustrated Cursor onboarding
acedatacloud-dev File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,47 @@ | ||
| { | ||
| "name": "happy-horse", | ||
| "displayName": "Happy Horse by Ace Data Cloud", | ||
| "version": "1.0.1", | ||
| "minClientVersions": { | ||
| "cursor": "3.13.0" | ||
| }, | ||
| "description": "Generate or edit Happy Horse videos with Ace Data Cloud; retrieve the completed result using the same task ID.", | ||
| "author": { | ||
| "name": "Ace Data Cloud Dev", | ||
| "email": "[email protected]" | ||
| }, | ||
| "homepage": "https://platform.acedata.cloud/models?utm_source=opensource&utm_medium=referral&utm_campaign=evergreen&utm_content=happy_horse_cursor_shared_manifest_pricing", | ||
| "repository": "https://github.com/AceDataCloud/HappyHorseCursor", | ||
| "license": "MIT", | ||
| "logo": "assets/logo.jpg", | ||
| "keywords": [ | ||
| "happy horse", | ||
| "happyhorse", | ||
| "happy-horse", | ||
| "video generation", | ||
| "video editing", | ||
| "ace data cloud", | ||
| "acedatacloud", | ||
| "mcp" | ||
| ], | ||
| "category": "integrations", | ||
| "tags": [ | ||
| "happy-horse", | ||
| "video", | ||
| "acedatacloud" | ||
| ], | ||
| "variables": { | ||
| "type": "object", | ||
| "properties": { | ||
| "ACEDATACLOUD_API_TOKEN": { | ||
| "type": "string", | ||
| "title": "Ace Data Cloud API token", | ||
| "description": "Service API key from https://platform.acedata.cloud/console/applications with Happy Horse access." | ||
| } | ||
| }, | ||
| "required": [ | ||
| "ACEDATACLOUD_API_TOKEN" | ||
| ] | ||
| }, | ||
| "mcpServers": "./mcp.json" | ||
| } | ||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,10 @@ | ||
| # Changelog | ||
|
|
||
| ## 1.0.1 | ||
|
|
||
| - Clarify the independent service name and Ace Data Cloud publisher relationship in discovery metadata. | ||
| - Add bilingual install/token/setup guidance and sourced credential/official UI reference images; preserve the hosted MCP and same-task workflow. | ||
|
|
||
| ## 1.0.0 | ||
|
|
||
| - Initial Happy Horse Cursor plugin using the existing Ace Data Cloud hosted MCP. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,21 @@ | ||
| MIT License | ||
|
|
||
| Copyright (c) 2026 Ace Data Cloud | ||
|
|
||
| Permission is hereby granted, free of charge, to any person obtaining a copy | ||
| of this software and associated documentation files (the "Software"), to deal | ||
| in the Software without restriction, including without limitation the rights | ||
| to use, copy, modify, merge, publish, distribute, sublicense, and/or sell | ||
| copies of the Software, and to permit persons to whom the Software is | ||
| furnished to do so, subject to the following conditions: | ||
|
|
||
| The above copyright notice and this permission notice shall be included in all | ||
| copies or substantial portions of the Software. | ||
|
|
||
| THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||
| IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||
| FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE | ||
| AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | ||
| LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, | ||
| OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE | ||
| SOFTWARE. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,86 @@ | ||
| # Happy Horse by Ace Data Cloud for Cursor | ||
|
|
||
| This independent **Happy Horse by Ace Data Cloud** integration brings video generation, reference/image inputs, video editing and task retrieval into Cursor Agent. It is maintained by Ace Data Cloud, not an official plugin from the model brand or Cursor. The hosted MCP connection avoids running a local server; your service API token is entered once in Configure. | ||
|
|
||
| Generate Happy Horse videos and retrieve the finished clip. This standalone plugin reuses the [Ace Data Cloud happyhorse MCP](https://github.com/AceDataCloud/MCPs/tree/main/happyhorse) and includes a focused Agent skill. Available tools and limits come from the live MCP schema. | ||
|
|
||
| [简体中文教程](readme/README_zh_Hans.md) · [Copyable first-run prompt](examples/first-run.md) · [Current pricing](https://platform.acedata.cloud/models?utm_source=opensource&utm_medium=referral&utm_campaign=evergreen&utm_content=happy_horse_cursor_shared_readme_pricing_en) | ||
|
|
||
| ## 1. Find the independent Happy Horse plugin | ||
|
|
||
| Open the [Cursor Marketplace](https://cursor.com/marketplace) or **Customize** in Cursor. Search **Happy Horse** (happy horse, happyhorse, happy-horse), then look for **Happy Horse by Ace Data Cloud** and publisher/author **Ace Data Cloud Dev**. Select **Install** and choose the project or user scope. Cursor 3.24 used **Customize → Browse Marketplace → Add**; use the controls in your installed version. Installing this plugin does not require an Ace collection plugin. | ||
|
|
||
| **Publication status:** [the official submission](https://github.com/cursor/plugins/pull/552) is pending review; an available source repository or a passing check does not prove a live Marketplace listing. If the exact listing is absent, do not install a similarly named unrelated plugin. An optional source/local review under `~/.cursor/plugins/local/happy-horse/` is a manual route, not official distribution. This is a tool integration, not an Ace preset in Cursor's chat-model provider list. | ||
|
|
||
| ## 2. Register or sign in and get a service API token | ||
|
|
||
| 1. [Open Ace Data Cloud](https://platform.acedata.cloud/?utm_source=opensource&utm_medium=referral&utm_campaign=evergreen&utm_content=happy_horse_cursor_shared_readme_register_signin_en) and register or sign in. Then open [Applications](https://platform.acedata.cloud/console/applications?utm_source=opensource&utm_medium=referral&utm_campaign=evergreen&utm_content=happy_horse_cursor_shared_readme_api_key_en). If no General application exists, select **Initialize General Application**. | ||
| 2. Open **General application** or an application enabled for **Happy Horse**. Confirm service access, balance and [current pricing](https://platform.acedata.cloud/models?utm_source=opensource&utm_medium=referral&utm_campaign=evergreen&utm_content=happy_horse_cursor_shared_readme_pricing_en) before any generation. | ||
| 3. Copy an existing API Key with the copy button marked **1** below, or open **Manage Keys** marked **2**, then **Create** for a dedicated Cursor token. | ||
|
|
||
|  | ||
|
|
||
| 4. Name the optional key, for example **Cursor Happy Horse**. Set expiry and usage/API limits as needed; create it and copy the token. The screenshot's **Dify tutorial** name is a historical example only; use your Cursor-specific name. If Allowed APIs is enabled, allow the actions needed here: `/happyhorse/videos`, `/happyhorse/tasks`. | ||
|
|
||
|  | ||
|
|
||
| These are real Ace Applications screenshots reused from the [Suno Dify tutorial](https://github.com/AceDataCloud/SunoDify/blob/8d3d03570e73324220f111f7fe343da0792a8071/README.md), checked on **2026-10-18**; original capture date is not recorded. Key, application ID and balance are obscured. They show Ace credential management, not a Dify step required for Cursor. | ||
|
|
||
| Copy only the service token string: no `Bearer ` prefix, quotation marks or redacted screenshot characters. This is not a platform management token. Never put a token in prompts, source, screenshots or exported examples. | ||
|
|
||
| ## 3. Paste the token in Cursor Configure | ||
|
|
||
| Open **Customize → Plugins → Happy Horse by Ace Data Cloud → Configure** (older versions may show **Happy Horse**). Paste the token in **Ace Data Cloud API token**, choose **Save**, wait for completion, then reopen Configure to confirm a masked value. Cursor substitutes `ACEDATACLOUD_API_TOKEN`; the plugin adds `Bearer ` and connects to its hosted HTTP MCP. No Python or Node server needs to be started. Reconnect if tools have not loaded. | ||
|
|
||
| The Configure path and variable behavior follow the [official Cursor plugin reference](https://cursor.com/docs/reference/plugins#variables), checked **2026-10-18**. A current Ace-specific Configure screenshot is still pending; the official screenshots below illustrate the subsequent tool approval/result UI, not this token field. | ||
|
|
||
| ```json | ||
| { | ||
| "mcpServers": { | ||
| "happyhorse": { | ||
| "type": "http", | ||
| "url": "https://happyhorse.mcp.acedata.cloud/mcp", | ||
| "headers": { | ||
| "Authorization": "Bearer ${ACEDATACLOUD_API_TOKEN}" | ||
| } | ||
| } | ||
| } | ||
| } | ||
| ``` | ||
|
|
||
| ## 4. Run the first example | ||
|
|
||
| Open Cursor Agent and paste the [first-run prompt](examples/first-run.md). It asks for `happyhorse_generate_video`, model `happyhorse-1.1-t2v` and duration 3 seconds, resolution 720P, ratio 16:9, watermark false. The sample prompt is `A teal cube on a cream table, slow camera orbit, simple studio lighting, no text.`. Verify live model access and price before running. | ||
|
|
||
| Submit with `happyhorse_generate_video` once. Save the returned `task_id` and use `happyhorse_get_task` with that same ID until terminal. Pending is not a completed video; open the returned result URL on success. Never regenerate merely to poll. | ||
|
|
||
| Open the returned video and inspect it. In **Ace Data Cloud → Usage/Billing**, match this call to its deducted Credits record. The plugin is free; API calls follow current service pricing. | ||
|
|
||
| ## 5. Confirm one tool call and inspect the result | ||
|
|
||
| For a free first connection check, open Agent and ask **“List this plugin's tools without generating anything.”** Then use `happyhorse_list_models` to inspect available models. Confirm model access and current price before explicitly approving a new generation. Keep generation retries off; if a request times out, inspect the existing task and usage before deciding whether to pay again. | ||
|
|
||
| The following are **unaltered official Cursor screenshots**, downloaded/checked **2026-10-17**. The original example queries PostgreSQL, not Ace; the official page does not state its client version or capture date. They illustrate where to inspect the tool name/arguments and click **Run tool**, then inspect a returned result. They do not prove this plugin has been installed or run. | ||
|
|
||
|  | ||
|
|
||
|  | ||
|
|
||
| After an approved generation, query `happyhorse_get_task` with **`task_id` set to the original task ID**. For example: “Only call `happyhorse_get_task` with `task_id=<my_task_id>`; do not generate again.” Check completion and open your actual returned media URL. An accepted/pending task, a green tool indicator or an example link is not a finished, playable result. Check the corresponding single generation record in Ace Usage/Billing; Cursor/model auxiliary charges are separate. | ||
|
|
||
| Screenshot sources, checksums and reuse boundaries: [image provenance](assets/tutorial/SOURCES.json). | ||
|
|
||
| ## Troubleshooting | ||
|
|
||
| | Symptom | Action | | ||
| | --- | --- | | ||
| | Plugin or tools are missing | Check the Happy Horse listing, configure the key, and reconnect MCP. | | ||
| | 401 or 403 | Check key validity, service access, balance, and Allowed APIs; do not include `Bearer ` in the configured value. | | ||
| | Invalid model or argument | Use the live tool schema and a model this account can access. | | ||
| | Pending task | Query the original task ID; do not regenerate to poll. | | ||
| | 429, timeout, or 5xx | Inspect the original task and usage history before another paid submission. | | ||
| | Result URL will not open | Confirm a terminal success and use the URL returned by that call. | | ||
|
|
||
| [Source](https://github.com/AceDataCloud/HappyHorseCursor) · [Report a problem](https://github.com/AceDataCloud/HappyHorseCursor/issues) · [email protected]. The logo reuses an existing Ace Data Cloud integration asset. This tool plugin does not register a Cursor chat-model provider. | ||
|
|
||
| [Register / sign in](https://platform.acedata.cloud/?utm_source=opensource&utm_medium=referral&utm_campaign=evergreen&utm_content=happy_horse_cursor_shared_readme_register_signin_en) · [Applications / API token](https://platform.acedata.cloud/console/applications?utm_source=opensource&utm_medium=referral&utm_campaign=evergreen&utm_content=happy_horse_cursor_shared_readme_api_key_en) · [Current Happy Horse pricing](https://platform.acedata.cloud/models?utm_source=opensource&utm_medium=referral&utm_campaign=evergreen&utm_content=happy_horse_cursor_shared_readme_pricing_en) |
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,51 @@ | ||
| { | ||
| "service": "Happy Horse", | ||
| "sources": [ | ||
| { | ||
| "file": "get-api-key-en.png", | ||
| "type": "real_ace_console_screenshot", | ||
| "source_url": "https://raw.githubusercontent.com/AceDataCloud/SunoDify/8d3d03570e73324220f111f7fe343da0792a8071/_assets/tutorial/get-api-key-en.png", | ||
| "official_page_url": "https://github.com/AceDataCloud/SunoDify/blob/8d3d03570e73324220f111f7fe343da0792a8071/README.md", | ||
| "checked_at": "2026-10-18", | ||
| "original_capture_date": "not recorded", | ||
| "edit_date": null, | ||
| "limits": "Original token/ID/balance obscured; Dify tutorial key name is an example, use Cursor-specific name.", | ||
| "sha256": "b63787f2bd15af82fef9ab61c99e11c454355ac86e91f7f94559386b795069b7" | ||
| }, | ||
| { | ||
| "file": "create-api-key-en.png", | ||
| "type": "real_ace_console_screenshot", | ||
| "source_url": "https://raw.githubusercontent.com/AceDataCloud/SunoDify/8d3d03570e73324220f111f7fe343da0792a8071/_assets/tutorial/create-api-key-en.png", | ||
| "official_page_url": "https://github.com/AceDataCloud/SunoDify/blob/8d3d03570e73324220f111f7fe343da0792a8071/README.md", | ||
| "checked_at": "2026-10-18", | ||
| "original_capture_date": "not recorded", | ||
| "edit_date": null, | ||
| "limits": "Original token/ID/balance obscured; Dify tutorial key name is an example, use Cursor-specific name.", | ||
| "sha256": "5411ffe75d8a8efa6806a78fc68fce6a20735225d8e9818c94bbc238da4f4590" | ||
| }, | ||
| { | ||
| "file": "tool-confirm.png", | ||
| "type": "official_screenshot", | ||
| "source_url": "https://cursor.com/docs-static/images/context/mcp/tool-confirm.png", | ||
| "official_page_url": "https://cursor.com/docs/mcp", | ||
| "checked_at": "2026-10-18", | ||
| "original_capture_date": "not recorded", | ||
| "edit_date": null, | ||
| "limits": "PostgreSQL official reference, not Ace execution.", | ||
| "sha256": "0404c2a6e15a83817cf7dd08b177097c835316345e4af629e411ecc369ec7f09" | ||
| }, | ||
| { | ||
| "file": "tool-call.png", | ||
| "type": "official_screenshot", | ||
| "source_url": "https://cursor.com/docs-static/images/context/mcp/tool-call.png", | ||
| "official_page_url": "https://cursor.com/docs/mcp", | ||
| "checked_at": "2026-10-18", | ||
| "original_capture_date": "not recorded", | ||
| "edit_date": null, | ||
| "limits": "PostgreSQL official reference, not Ace execution.", | ||
| "sha256": "af88bda0de0929b73a955883b0b79ee394ee2f94d96e18329b0fa6db636529e7" | ||
| } | ||
| ], | ||
| "credential_values_present": false, | ||
| "current_configure_screenshot": "pending native UI capture, not substituted with a fake screenshot" | ||
| } |
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,5 @@ | ||
| # First Happy Horse run | ||
|
|
||
| Copy this into Cursor Agent after installing and configuring the plugin. No key is included. | ||
|
|
||
| > Use the happyhorse MCP tool happyhorse_generate_video for one video request. I checked the current Ace Data Cloud price and balance. Use model happyhorse-1.1-t2v if this account offers it. Set duration 3 seconds, resolution 720P, ratio 16:9, watermark false. Set prompt to A teal cube on a cream table, slow camera orbit, simple studio lighting, no text.. Submit at most once, keep the task ID, query it using happyhorse_get_task until terminal, and open the completed result. If pending, report the ID so I can resume without a second generation. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,11 @@ | ||
| { | ||
| "mcpServers": { | ||
| "happyhorse": { | ||
| "type": "http", | ||
| "url": "https://happyhorse.mcp.acedata.cloud/mcp", | ||
| "headers": { | ||
| "Authorization": "Bearer ${ACEDATACLOUD_API_TOKEN}" | ||
| } | ||
| } | ||
| } | ||
| } |
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.