Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions .cursor-plugin/marketplace.json
Original file line number Diff line number Diff line change
Expand Up @@ -543,6 +543,11 @@
"source": "third_party/square",
"description": "Work with payments, orders, catalog, customers, and invoices."
},
{
"name": "happy-horse",
"source": "third_party/happy-horse",
"description": "Generate or edit Happy Horse videos with Ace Data Cloud; retrieve the completed result using the same task ID."
},
{
"name": "tailscale",
"source": "third_party/tailscale",
Expand Down
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -100,6 +100,7 @@ Official Cursor plugins for popular developer tools, frameworks, and SaaS produc
| `zoho-desk` | [Zoho Desk](third_party/zoho-desk/) | Cursor | Integrations | Work with tickets, contacts, tasks, and knowledge base articles in Zoho Desk. |
| `zoho-books` | [Zoho Books](third_party/zoho-books/) | Cursor | Integrations | Work with contacts, invoices, estimates, and items in Zoho Books. |
| `square` | [Square](third_party/square/) | Cursor | Integrations | Work with payments, orders, catalog, customers, and invoices. |
| `happy-horse` | [Happy Horse by Ace Data Cloud](third_party/happy-horse/) | Ace Data Cloud Dev | Integrations | Generate or edit Happy Horse videos with Ace Data Cloud; retrieve the completed result using the same task ID. |
| `tailscale` | [Tailscale](third_party/tailscale/) | Cursor | Integrations | Let Grok Bot reach MCP servers on your private Tailscale network. On your own tailnet it joins as one tag:grokbot device; on your team's company tailnet, turned on by a team admin, it uses each member's own device. |
| `highlevel` | [HighLevel](third_party/highlevel/) | Cursor | Integrations | Work with contacts, conversations, opportunities, calendars, and payments. |
| `finary` | [Finary](third_party/finary/) | Cursor | Integrations | Read your net worth, accounts, holdings, spending, and budgets. |
Expand Down
47 changes: 47 additions & 0 deletions third_party/happy-horse/.cursor-plugin/plugin.json
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"
}
Comment thread
cursor[bot] marked this conversation as resolved.
10 changes: 10 additions & 0 deletions third_party/happy-horse/CHANGELOG.md
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.
21 changes: 21 additions & 0 deletions third_party/happy-horse/LICENSE
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.
86 changes: 86 additions & 0 deletions third_party/happy-horse/README.md
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.

![Copy an existing service API token or open Manage Keys](assets/tutorial/get-api-key-en.png)

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`.

![Optional dedicated API token creation](assets/tutorial/create-api-key-en.png)

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.

![Official Cursor tool approval screenshot; PostgreSQL reference, not an Ace run](assets/tutorial/tool-confirm.png)

![Official Cursor tool result screenshot; PostgreSQL reference, not an Ace run](assets/tutorial/tool-call.png)

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)
Binary file added third_party/happy-horse/assets/logo.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
51 changes: 51 additions & 0 deletions third_party/happy-horse/assets/tutorial/SOURCES.json
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.
5 changes: 5 additions & 0 deletions third_party/happy-horse/examples/first-run.md
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.
11 changes: 11 additions & 0 deletions third_party/happy-horse/mcp.json
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}"
}
}
}
}
Loading