From 64a223e29af9a864e45a63792fbad77c8d8fb756 Mon Sep 17 00:00:00 2001 From: Ace Data Cloud Dev Date: Sun, 18 Oct 2026 12:46:20 +0800 Subject: [PATCH 1/3] docs: add five independent Ace service guides and discovery cards --- .../docs/mcp_servers/gpt_image_acedata.mdx | 53 ++++++++++++++++++ .../docs/mcp_servers/happyhorse_acedata.mdx | 53 ++++++++++++++++++ content/docs/mcp_servers/index.mdx | 15 +++++ content/docs/mcp_servers/meta.json | 11 +++- .../docs/mcp_servers/nano_banana_acedata.mdx | 53 ++++++++++++++++++ content/docs/mcp_servers/seedance_acedata.mdx | 53 ++++++++++++++++++ content/docs/mcp_servers/suno_acedata.mdx | 53 ++++++++++++++++++ public/images/mcp/acedata_create_api_key.png | Bin 0 -> 25251 bytes public/images/mcp/acedata_get_api_key.png | Bin 0 -> 33708 bytes 9 files changed, 290 insertions(+), 1 deletion(-) create mode 100644 content/docs/mcp_servers/gpt_image_acedata.mdx create mode 100644 content/docs/mcp_servers/happyhorse_acedata.mdx create mode 100644 content/docs/mcp_servers/nano_banana_acedata.mdx create mode 100644 content/docs/mcp_servers/seedance_acedata.mdx create mode 100644 content/docs/mcp_servers/suno_acedata.mdx create mode 100644 public/images/mcp/acedata_create_api_key.png create mode 100644 public/images/mcp/acedata_get_api_key.png diff --git a/content/docs/mcp_servers/gpt_image_acedata.mdx b/content/docs/mcp_servers/gpt_image_acedata.mdx new file mode 100644 index 000000000..05a6053bc --- /dev/null +++ b/content/docs/mcp_servers/gpt_image_acedata.mdx @@ -0,0 +1,53 @@ +--- +title: GPT Image by Ace Data Cloud +icon: Plug +description: Install GPT Image image tools in LibreChat using an independent Ace Data Cloud Agent Plugin and a personal MCP connection. +--- + +This independent integration connects **GPT Image** through **Ace Data Cloud**. It is not published by the GPT Image service brand or the LibreChat maintainers. Model-chat credentials and this tool connection are separate. + +## Install the native package + +The experimental [Agent Plugins](/docs/features/agent_plugins) format loads each operator-installed plugin at startup. Review the [package source](https://github.com/AceDataCloud/LibreChatPlugins/tree/codex/native-services-20261018/plugins/gpt-image) and install only the service you need: + +```bash +python3 scripts/install.py gpt-image --plugin-dir /path/to/LibreChat/plugin +``` + +Source [PR #1](https://github.com/AceDataCloud/LibreChatPlugins/pull/1) is pending review; no stable release is claimed. Run this command from the `codex/native-services-20261018` review branch checkout of `AceDataCloud/LibreChatPlugins`. The selected plugin directory must be visible inside the LibreChat filesystem (`/app/plugin` by default); preserve existing Docker mounts. Restart that instance. The package adds the `gpt-image-by-acedatacloud` MCP connection and a service-specific Skill to that instance's tool catalog. It is not an installation into every LibreChat instance or a global marketplace entry. + +The [English and Chinese illustrated package guides](https://github.com/AceDataCloud/LibreChatPlugins) include installation, account setup, current limits and troubleshooting. The package reuses [OpenAIMCP](https://github.com/AceDataCloud/OpenAIMCP); it does not implement its own billing or generation API. + +## Connect your account + +![Official LibreChat MCP settings reference](/images/mcp/mcp_ui_settings_panel.png) + +This official screenshot shows LibreChat v0.8.2 and a different sample server. It locates the settings controls; it is not an Ace connection or a guarantee of the current UI layout. + + +1. Register or sign in at [Ace Data Cloud Applications](https://platform.acedata.cloud/console/applications?utm_source=librechat&utm_medium=referral&utm_campaign=evergreen&utm_content=gpt-image_official_guide_key). +2. Find **General application**, or initialize it if absent. Check GPT Image access, [current pricing and balance](https://platform.acedata.cloud/models?utm_source=librechat&utm_medium=referral&utm_campaign=evergreen&utm_content=gpt-image_official_guide_pricing). +3. For the native URL-only plugin, open **+ → MCP Servers** or **MCP Settings**, select `gpt-image-by-acedatacloud`, and complete the Ace OAuth connection in the same browser session. A discovered service is not yet an authenticated connection. + +For an explicit personal Token route, use the separately configured [customUserVars](/docs/configuration/librechat_yaml/object_structure/mcp_servers#customuservars) fields instead of putting credentials in a plugin. Copy the application API key or choose **Keys / Manage Keys → Create**, set the service/API restrictions and expiry you need, and paste the raw value in the service's MCP Token field. Do not use an account-management Token or the chat-model key dialog. A YAML MCP entry takes precedence over a same-name plugin server; choose one authentication route. + +![Copy an API key or open Manage Keys](/images/mcp/acedata_get_api_key.png) + +![Create a separately named key](/images/mcp/acedata_create_api_key.png) + +These are real Ace Console screenshots with redacted values, reused from the [pinned onboarding source](https://github.com/AceDataCloud/SunoDify/tree/8d3d03570e73324220f111f7fe343da0792a8071/_assets/tutorial). Their original capture date is not specified here; they are not LibreChat execution evidence. Account credit and access depend on the current account. + +## First use and task results + +Confirm the connection lists tools before sending a paid operation. To inspect an existing result, call `openai_get_task` with a task ID already belonging to your account. If the host requires a model to trigger the call, that model can have its own cost. + +For a new `openai_generate_image` request, review the exact tool schema and current price first. Submit once after the user confirms the selected service, inputs and bounded spend. Store the returned task ID and query the same ID until terminal success or failure. Do not regenerate to poll. A pending preview is not final media, and a connected plugin does not prove a unique bill. Stop on terminal failure. + +## Troubleshooting + +- Missing service: check the host implements Agent Plugins, directory mounting and startup diagnostics. +- Authentication error: verify the chosen OAuth or personal-Token route, API permissions, expiry and balance. Do not combine fixed credentials with OAuth on one connection. +- Pending: retrieve the same task ID; do not repeat generation. +- Rate limit or timeout: inspect the existing response/task and reduce concurrency before a new request. + +The package uses the existing OpenAI MCP, which exposes additional OpenAI tools. Its GPT Image Skill is guidance, not an authorization boundary; restrict the account key to the APIs needed. diff --git a/content/docs/mcp_servers/happyhorse_acedata.mdx b/content/docs/mcp_servers/happyhorse_acedata.mdx new file mode 100644 index 000000000..2b750a63a --- /dev/null +++ b/content/docs/mcp_servers/happyhorse_acedata.mdx @@ -0,0 +1,53 @@ +--- +title: HappyHorse by Ace Data Cloud +icon: Plug +description: Install HappyHorse video tools in LibreChat using an independent Ace Data Cloud Agent Plugin and a personal MCP connection. +--- + +This independent integration connects **HappyHorse** through **Ace Data Cloud**. It is not published by the HappyHorse service brand or the LibreChat maintainers. Model-chat credentials and this tool connection are separate. + +## Install the native package + +The experimental [Agent Plugins](/docs/features/agent_plugins) format loads each operator-installed plugin at startup. Review the [package source](https://github.com/AceDataCloud/LibreChatPlugins/tree/codex/native-services-20261018/plugins/happyhorse) and install only the service you need: + +```bash +python3 scripts/install.py happyhorse --plugin-dir /path/to/LibreChat/plugin +``` + +Source [PR #1](https://github.com/AceDataCloud/LibreChatPlugins/pull/1) is pending review; no stable release is claimed. Run this command from the `codex/native-services-20261018` review branch checkout of `AceDataCloud/LibreChatPlugins`. The selected plugin directory must be visible inside the LibreChat filesystem (`/app/plugin` by default); preserve existing Docker mounts. Restart that instance. The package adds the `happyhorse-by-acedatacloud` MCP connection and a service-specific Skill to that instance's tool catalog. It is not an installation into every LibreChat instance or a global marketplace entry. + +The [English and Chinese illustrated package guides](https://github.com/AceDataCloud/LibreChatPlugins) include installation, account setup, current limits and troubleshooting. The package reuses [HappyHorseMCP](https://github.com/AceDataCloud/HappyHorseMCP); it does not implement its own billing or generation API. + +## Connect your account + +![Official LibreChat MCP settings reference](/images/mcp/mcp_ui_settings_panel.png) + +This official screenshot shows LibreChat v0.8.2 and a different sample server. It locates the settings controls; it is not an Ace connection or a guarantee of the current UI layout. + + +1. Register or sign in at [Ace Data Cloud Applications](https://platform.acedata.cloud/console/applications?utm_source=librechat&utm_medium=referral&utm_campaign=evergreen&utm_content=happyhorse_official_guide_key). +2. Find **General application**, or initialize it if absent. Check HappyHorse access, [current pricing and balance](https://platform.acedata.cloud/models?utm_source=librechat&utm_medium=referral&utm_campaign=evergreen&utm_content=happyhorse_official_guide_pricing). +3. For the native URL-only plugin, open **+ → MCP Servers** or **MCP Settings**, select `happyhorse-by-acedatacloud`, and complete the Ace OAuth connection in the same browser session. A discovered service is not yet an authenticated connection. + +For an explicit personal Token route, use the separately configured [customUserVars](/docs/configuration/librechat_yaml/object_structure/mcp_servers#customuservars) fields instead of putting credentials in a plugin. Copy the application API key or choose **Keys / Manage Keys → Create**, set the service/API restrictions and expiry you need, and paste the raw value in the service's MCP Token field. Do not use an account-management Token or the chat-model key dialog. A YAML MCP entry takes precedence over a same-name plugin server; choose one authentication route. + +![Copy an API key or open Manage Keys](/images/mcp/acedata_get_api_key.png) + +![Create a separately named key](/images/mcp/acedata_create_api_key.png) + +These are real Ace Console screenshots with redacted values, reused from the [pinned onboarding source](https://github.com/AceDataCloud/SunoDify/tree/8d3d03570e73324220f111f7fe343da0792a8071/_assets/tutorial). Their original capture date is not specified here; they are not LibreChat execution evidence. Account credit and access depend on the current account. + +## First use and task results + +Confirm the connection lists tools before sending a paid operation. To inspect an existing result, call `happyhorse_get_task` with a task ID already belonging to your account. If the host requires a model to trigger the call, that model can have its own cost. + +For a new `happyhorse_generate_video` request, review the exact tool schema and current price first. Submit once after the user confirms the selected service, inputs and bounded spend. Store the returned task ID and query the same ID until terminal success or failure. Do not regenerate to poll. A pending preview is not final media, and a connected plugin does not prove a unique bill. Stop on terminal failure. + +## Troubleshooting + +- Missing service: check the host implements Agent Plugins, directory mounting and startup diagnostics. +- Authentication error: verify the chosen OAuth or personal-Token route, API permissions, expiry and balance. Do not combine fixed credentials with OAuth on one connection. +- Pending: retrieve the same task ID; do not repeat generation. +- Rate limit or timeout: inspect the existing response/task and reduce concurrency before a new request. + + diff --git a/content/docs/mcp_servers/index.mdx b/content/docs/mcp_servers/index.mdx index 847cb162a..feec69f4f 100644 --- a/content/docs/mcp_servers/index.mdx +++ b/content/docs/mcp_servers/index.mdx @@ -16,4 +16,19 @@ Use these guides to configure specific MCP servers with the right transport, OAu Learn how MCP works in LibreChat before adding product-specific servers. + + Independent music tools, account connection, and same-task retrieval. + + + Independent video tools, account connection, and same-task retrieval. + + + Independent video tools, account connection, and same-task retrieval. + + + Independent image tools, account connection, and same-task retrieval. + + + Independent image tools, account connection, and same-task retrieval. + diff --git a/content/docs/mcp_servers/meta.json b/content/docs/mcp_servers/meta.json index 396b0e2c6..565d36134 100644 --- a/content/docs/mcp_servers/meta.json +++ b/content/docs/mcp_servers/meta.json @@ -1,5 +1,14 @@ { "title": "MCP Servers", "icon": "Blocks", - "pages": ["index", "google_workspace", "salesforce"] + "pages": [ + "index", + "google_workspace", + "salesforce", + "suno_acedata", + "seedance_acedata", + "happyhorse_acedata", + "gpt_image_acedata", + "nano_banana_acedata" + ] } diff --git a/content/docs/mcp_servers/nano_banana_acedata.mdx b/content/docs/mcp_servers/nano_banana_acedata.mdx new file mode 100644 index 000000000..c3c5c6438 --- /dev/null +++ b/content/docs/mcp_servers/nano_banana_acedata.mdx @@ -0,0 +1,53 @@ +--- +title: Nano Banana by Ace Data Cloud +icon: Plug +description: Install Nano Banana image tools in LibreChat using an independent Ace Data Cloud Agent Plugin and a personal MCP connection. +--- + +This independent integration connects **Nano Banana** through **Ace Data Cloud**. It is not published by the Nano Banana service brand or the LibreChat maintainers. Model-chat credentials and this tool connection are separate. + +## Install the native package + +The experimental [Agent Plugins](/docs/features/agent_plugins) format loads each operator-installed plugin at startup. Review the [package source](https://github.com/AceDataCloud/LibreChatPlugins/tree/codex/native-services-20261018/plugins/nano-banana) and install only the service you need: + +```bash +python3 scripts/install.py nano-banana --plugin-dir /path/to/LibreChat/plugin +``` + +Source [PR #1](https://github.com/AceDataCloud/LibreChatPlugins/pull/1) is pending review; no stable release is claimed. Run this command from the `codex/native-services-20261018` review branch checkout of `AceDataCloud/LibreChatPlugins`. The selected plugin directory must be visible inside the LibreChat filesystem (`/app/plugin` by default); preserve existing Docker mounts. Restart that instance. The package adds the `nano-banana-by-acedatacloud` MCP connection and a service-specific Skill to that instance's tool catalog. It is not an installation into every LibreChat instance or a global marketplace entry. + +The [English and Chinese illustrated package guides](https://github.com/AceDataCloud/LibreChatPlugins) include installation, account setup, current limits and troubleshooting. The package reuses [NanoBananaMCP](https://github.com/AceDataCloud/NanoBananaMCP); it does not implement its own billing or generation API. + +## Connect your account + +![Official LibreChat MCP settings reference](/images/mcp/mcp_ui_settings_panel.png) + +This official screenshot shows LibreChat v0.8.2 and a different sample server. It locates the settings controls; it is not an Ace connection or a guarantee of the current UI layout. + + +1. Register or sign in at [Ace Data Cloud Applications](https://platform.acedata.cloud/console/applications?utm_source=librechat&utm_medium=referral&utm_campaign=evergreen&utm_content=nano-banana_official_guide_key). +2. Find **General application**, or initialize it if absent. Check Nano Banana access, [current pricing and balance](https://platform.acedata.cloud/models?utm_source=librechat&utm_medium=referral&utm_campaign=evergreen&utm_content=nano-banana_official_guide_pricing). +3. For the native URL-only plugin, open **+ → MCP Servers** or **MCP Settings**, select `nano-banana-by-acedatacloud`, and complete the Ace OAuth connection in the same browser session. A discovered service is not yet an authenticated connection. + +For an explicit personal Token route, use the separately configured [customUserVars](/docs/configuration/librechat_yaml/object_structure/mcp_servers#customuservars) fields instead of putting credentials in a plugin. Copy the application API key or choose **Keys / Manage Keys → Create**, set the service/API restrictions and expiry you need, and paste the raw value in the service's MCP Token field. Do not use an account-management Token or the chat-model key dialog. A YAML MCP entry takes precedence over a same-name plugin server; choose one authentication route. + +![Copy an API key or open Manage Keys](/images/mcp/acedata_get_api_key.png) + +![Create a separately named key](/images/mcp/acedata_create_api_key.png) + +These are real Ace Console screenshots with redacted values, reused from the [pinned onboarding source](https://github.com/AceDataCloud/SunoDify/tree/8d3d03570e73324220f111f7fe343da0792a8071/_assets/tutorial). Their original capture date is not specified here; they are not LibreChat execution evidence. Account credit and access depend on the current account. + +## First use and task results + +Confirm the connection lists tools before sending a paid operation. To inspect an existing result, call `nanobanana_get_task` with a task ID already belonging to your account. If the host requires a model to trigger the call, that model can have its own cost. + +For a new `nanobanana_generate_image` request, review the exact tool schema and current price first. Submit once after the user confirms the selected service, inputs and bounded spend. Store the returned task ID and query the same ID until terminal success or failure. Do not regenerate to poll. A pending preview is not final media, and a connected plugin does not prove a unique bill. Stop on terminal failure. + +## Troubleshooting + +- Missing service: check the host implements Agent Plugins, directory mounting and startup diagnostics. +- Authentication error: verify the chosen OAuth or personal-Token route, API permissions, expiry and balance. Do not combine fixed credentials with OAuth on one connection. +- Pending: retrieve the same task ID; do not repeat generation. +- Rate limit or timeout: inspect the existing response/task and reduce concurrency before a new request. + + diff --git a/content/docs/mcp_servers/seedance_acedata.mdx b/content/docs/mcp_servers/seedance_acedata.mdx new file mode 100644 index 000000000..2e083994f --- /dev/null +++ b/content/docs/mcp_servers/seedance_acedata.mdx @@ -0,0 +1,53 @@ +--- +title: Seedance by Ace Data Cloud +icon: Plug +description: Install Seedance video tools in LibreChat using an independent Ace Data Cloud Agent Plugin and a personal MCP connection. +--- + +This independent integration connects **Seedance** through **Ace Data Cloud**. It is not published by the Seedance service brand or the LibreChat maintainers. Model-chat credentials and this tool connection are separate. + +## Install the native package + +The experimental [Agent Plugins](/docs/features/agent_plugins) format loads each operator-installed plugin at startup. Review the [package source](https://github.com/AceDataCloud/LibreChatPlugins/tree/codex/native-services-20261018/plugins/seedance) and install only the service you need: + +```bash +python3 scripts/install.py seedance --plugin-dir /path/to/LibreChat/plugin +``` + +Source [PR #1](https://github.com/AceDataCloud/LibreChatPlugins/pull/1) is pending review; no stable release is claimed. Run this command from the `codex/native-services-20261018` review branch checkout of `AceDataCloud/LibreChatPlugins`. The selected plugin directory must be visible inside the LibreChat filesystem (`/app/plugin` by default); preserve existing Docker mounts. Restart that instance. The package adds the `seedance-by-acedatacloud` MCP connection and a service-specific Skill to that instance's tool catalog. It is not an installation into every LibreChat instance or a global marketplace entry. + +The [English and Chinese illustrated package guides](https://github.com/AceDataCloud/LibreChatPlugins) include installation, account setup, current limits and troubleshooting. The package reuses [SeedanceMCP](https://github.com/AceDataCloud/SeedanceMCP); it does not implement its own billing or generation API. + +## Connect your account + +![Official LibreChat MCP settings reference](/images/mcp/mcp_ui_settings_panel.png) + +This official screenshot shows LibreChat v0.8.2 and a different sample server. It locates the settings controls; it is not an Ace connection or a guarantee of the current UI layout. + + +1. Register or sign in at [Ace Data Cloud Applications](https://platform.acedata.cloud/console/applications?utm_source=librechat&utm_medium=referral&utm_campaign=evergreen&utm_content=seedance_official_guide_key). +2. Find **General application**, or initialize it if absent. Check Seedance access, [current pricing and balance](https://platform.acedata.cloud/models?utm_source=librechat&utm_medium=referral&utm_campaign=evergreen&utm_content=seedance_official_guide_pricing). +3. For the native URL-only plugin, open **+ → MCP Servers** or **MCP Settings**, select `seedance-by-acedatacloud`, and complete the Ace OAuth connection in the same browser session. A discovered service is not yet an authenticated connection. + +For an explicit personal Token route, use the separately configured [customUserVars](/docs/configuration/librechat_yaml/object_structure/mcp_servers#customuservars) fields instead of putting credentials in a plugin. Copy the application API key or choose **Keys / Manage Keys → Create**, set the service/API restrictions and expiry you need, and paste the raw value in the service's MCP Token field. Do not use an account-management Token or the chat-model key dialog. A YAML MCP entry takes precedence over a same-name plugin server; choose one authentication route. + +![Copy an API key or open Manage Keys](/images/mcp/acedata_get_api_key.png) + +![Create a separately named key](/images/mcp/acedata_create_api_key.png) + +These are real Ace Console screenshots with redacted values, reused from the [pinned onboarding source](https://github.com/AceDataCloud/SunoDify/tree/8d3d03570e73324220f111f7fe343da0792a8071/_assets/tutorial). Their original capture date is not specified here; they are not LibreChat execution evidence. Account credit and access depend on the current account. + +## First use and task results + +Confirm the connection lists tools before sending a paid operation. To inspect an existing result, call `seedance_get_task` with a task ID already belonging to your account. If the host requires a model to trigger the call, that model can have its own cost. + +For a new `seedance_generate_video` request, review the exact tool schema and current price first. Submit once after the user confirms the selected service, inputs and bounded spend. Store the returned task ID and query the same ID until terminal success or failure. Do not regenerate to poll. A pending preview is not final media, and a connected plugin does not prove a unique bill. Stop on terminal failure. + +## Troubleshooting + +- Missing service: check the host implements Agent Plugins, directory mounting and startup diagnostics. +- Authentication error: verify the chosen OAuth or personal-Token route, API permissions, expiry and balance. Do not combine fixed credentials with OAuth on one connection. +- Pending: retrieve the same task ID; do not repeat generation. +- Rate limit or timeout: inspect the existing response/task and reduce concurrency before a new request. + + diff --git a/content/docs/mcp_servers/suno_acedata.mdx b/content/docs/mcp_servers/suno_acedata.mdx new file mode 100644 index 000000000..750d52c16 --- /dev/null +++ b/content/docs/mcp_servers/suno_acedata.mdx @@ -0,0 +1,53 @@ +--- +title: Suno by Ace Data Cloud +icon: Plug +description: Install Suno music tools in LibreChat using an independent Ace Data Cloud Agent Plugin and a personal MCP connection. +--- + +This independent integration connects **Suno** through **Ace Data Cloud**. It is not published by the Suno service brand or the LibreChat maintainers. Model-chat credentials and this tool connection are separate. + +## Install the native package + +The experimental [Agent Plugins](/docs/features/agent_plugins) format loads each operator-installed plugin at startup. Review the [package source](https://github.com/AceDataCloud/LibreChatPlugins/tree/codex/native-services-20261018/plugins/suno) and install only the service you need: + +```bash +python3 scripts/install.py suno --plugin-dir /path/to/LibreChat/plugin +``` + +Source [PR #1](https://github.com/AceDataCloud/LibreChatPlugins/pull/1) is pending review; no stable release is claimed. Run this command from the `codex/native-services-20261018` review branch checkout of `AceDataCloud/LibreChatPlugins`. The selected plugin directory must be visible inside the LibreChat filesystem (`/app/plugin` by default); preserve existing Docker mounts. Restart that instance. The package adds the `suno-by-acedatacloud` MCP connection and a service-specific Skill to that instance's tool catalog. It is not an installation into every LibreChat instance or a global marketplace entry. + +The [English and Chinese illustrated package guides](https://github.com/AceDataCloud/LibreChatPlugins) include installation, account setup, current limits and troubleshooting. The package reuses [SunoMCP](https://github.com/AceDataCloud/SunoMCP); it does not implement its own billing or generation API. + +## Connect your account + +![Official LibreChat MCP settings reference](/images/mcp/mcp_ui_settings_panel.png) + +This official screenshot shows LibreChat v0.8.2 and a different sample server. It locates the settings controls; it is not an Ace connection or a guarantee of the current UI layout. + + +1. Register or sign in at [Ace Data Cloud Applications](https://platform.acedata.cloud/console/applications?utm_source=librechat&utm_medium=referral&utm_campaign=evergreen&utm_content=suno_official_guide_key). +2. Find **General application**, or initialize it if absent. Check Suno access, [current pricing and balance](https://platform.acedata.cloud/models?utm_source=librechat&utm_medium=referral&utm_campaign=evergreen&utm_content=suno_official_guide_pricing). +3. For the native URL-only plugin, open **+ → MCP Servers** or **MCP Settings**, select `suno-by-acedatacloud`, and complete the Ace OAuth connection in the same browser session. A discovered service is not yet an authenticated connection. + +For an explicit personal Token route, use the separately configured [customUserVars](/docs/configuration/librechat_yaml/object_structure/mcp_servers#customuservars) fields instead of putting credentials in a plugin. Copy the application API key or choose **Keys / Manage Keys → Create**, set the service/API restrictions and expiry you need, and paste the raw value in the service's MCP Token field. Do not use an account-management Token or the chat-model key dialog. A YAML MCP entry takes precedence over a same-name plugin server; choose one authentication route. + +![Copy an API key or open Manage Keys](/images/mcp/acedata_get_api_key.png) + +![Create a separately named key](/images/mcp/acedata_create_api_key.png) + +These are real Ace Console screenshots with redacted values, reused from the [pinned onboarding source](https://github.com/AceDataCloud/SunoDify/tree/8d3d03570e73324220f111f7fe343da0792a8071/_assets/tutorial). Their original capture date is not specified here; they are not LibreChat execution evidence. Account credit and access depend on the current account. + +## First use and task results + +Confirm the connection lists tools before sending a paid operation. To inspect an existing result, call `suno_get_task` with a task ID already belonging to your account. If the host requires a model to trigger the call, that model can have its own cost. + +For a new `suno_generate_music` request, review the exact tool schema and current price first. Submit once after the user confirms the selected service, inputs and bounded spend. Store the returned task ID and query the same ID until terminal success or failure. Do not regenerate to poll. A pending preview is not final media, and a connected plugin does not prove a unique bill. Stop on terminal failure. + +## Troubleshooting + +- Missing service: check the host implements Agent Plugins, directory mounting and startup diagnostics. +- Authentication error: verify the chosen OAuth or personal-Token route, API permissions, expiry and balance. Do not combine fixed credentials with OAuth on one connection. +- Pending: retrieve the same task ID; do not repeat generation. +- Rate limit or timeout: inspect the existing response/task and reduce concurrency before a new request. + + diff --git a/public/images/mcp/acedata_create_api_key.png b/public/images/mcp/acedata_create_api_key.png new file mode 100644 index 0000000000000000000000000000000000000000..cf1504e51193063195f45c47f13ceabd1db39205 GIT binary patch literal 25251 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 literal 0 HcmV?d00001 diff --git a/public/images/mcp/acedata_get_api_key.png b/public/images/mcp/acedata_get_api_key.png new file mode 100644 index 0000000000000000000000000000000000000000..0cbf4175a554114181e4ea1865b821fc501561d6 GIT binary patch literal 33708 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

FO-Ilhj*!e-b0GaAQSo`6e$MFOSPT^n03o6XtN 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 HTEG4eRp)6$ literal 0 HcmV?d00001 From 169b99d6f5fd8ef63ec5ccfc898328af37ebd788 Mon Sep 17 00:00:00 2001 From: Ace Data Cloud Dev Date: Sun, 18 Oct 2026 13:06:57 +0800 Subject: [PATCH 2/3] docs: link onboarding to the exact review branch --- content/docs/mcp_servers/gpt_image_acedata.mdx | 2 +- content/docs/mcp_servers/happyhorse_acedata.mdx | 2 +- content/docs/mcp_servers/nano_banana_acedata.mdx | 2 +- content/docs/mcp_servers/seedance_acedata.mdx | 2 +- content/docs/mcp_servers/suno_acedata.mdx | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/content/docs/mcp_servers/gpt_image_acedata.mdx b/content/docs/mcp_servers/gpt_image_acedata.mdx index 05a6053bc..185e7cd97 100644 --- a/content/docs/mcp_servers/gpt_image_acedata.mdx +++ b/content/docs/mcp_servers/gpt_image_acedata.mdx @@ -16,7 +16,7 @@ python3 scripts/install.py gpt-image --plugin-dir /path/to/LibreChat/plugin Source [PR #1](https://github.com/AceDataCloud/LibreChatPlugins/pull/1) is pending review; no stable release is claimed. Run this command from the `codex/native-services-20261018` review branch checkout of `AceDataCloud/LibreChatPlugins`. The selected plugin directory must be visible inside the LibreChat filesystem (`/app/plugin` by default); preserve existing Docker mounts. Restart that instance. The package adds the `gpt-image-by-acedatacloud` MCP connection and a service-specific Skill to that instance's tool catalog. It is not an installation into every LibreChat instance or a global marketplace entry. -The [English and Chinese illustrated package guides](https://github.com/AceDataCloud/LibreChatPlugins) include installation, account setup, current limits and troubleshooting. The package reuses [OpenAIMCP](https://github.com/AceDataCloud/OpenAIMCP); it does not implement its own billing or generation API. +The [English and Chinese illustrated package guides](https://github.com/AceDataCloud/LibreChatPlugins/tree/codex/native-services-20261018) include installation, account setup, current limits and troubleshooting. The package reuses [OpenAIMCP](https://github.com/AceDataCloud/OpenAIMCP); it does not implement its own billing or generation API. ## Connect your account diff --git a/content/docs/mcp_servers/happyhorse_acedata.mdx b/content/docs/mcp_servers/happyhorse_acedata.mdx index 2b750a63a..2c2ac436a 100644 --- a/content/docs/mcp_servers/happyhorse_acedata.mdx +++ b/content/docs/mcp_servers/happyhorse_acedata.mdx @@ -16,7 +16,7 @@ python3 scripts/install.py happyhorse --plugin-dir /path/to/LibreChat/plugin Source [PR #1](https://github.com/AceDataCloud/LibreChatPlugins/pull/1) is pending review; no stable release is claimed. Run this command from the `codex/native-services-20261018` review branch checkout of `AceDataCloud/LibreChatPlugins`. The selected plugin directory must be visible inside the LibreChat filesystem (`/app/plugin` by default); preserve existing Docker mounts. Restart that instance. The package adds the `happyhorse-by-acedatacloud` MCP connection and a service-specific Skill to that instance's tool catalog. It is not an installation into every LibreChat instance or a global marketplace entry. -The [English and Chinese illustrated package guides](https://github.com/AceDataCloud/LibreChatPlugins) include installation, account setup, current limits and troubleshooting. The package reuses [HappyHorseMCP](https://github.com/AceDataCloud/HappyHorseMCP); it does not implement its own billing or generation API. +The [English and Chinese illustrated package guides](https://github.com/AceDataCloud/LibreChatPlugins/tree/codex/native-services-20261018) include installation, account setup, current limits and troubleshooting. The package reuses [HappyHorseMCP](https://github.com/AceDataCloud/HappyHorseMCP); it does not implement its own billing or generation API. ## Connect your account diff --git a/content/docs/mcp_servers/nano_banana_acedata.mdx b/content/docs/mcp_servers/nano_banana_acedata.mdx index c3c5c6438..8b43960c0 100644 --- a/content/docs/mcp_servers/nano_banana_acedata.mdx +++ b/content/docs/mcp_servers/nano_banana_acedata.mdx @@ -16,7 +16,7 @@ python3 scripts/install.py nano-banana --plugin-dir /path/to/LibreChat/plugin Source [PR #1](https://github.com/AceDataCloud/LibreChatPlugins/pull/1) is pending review; no stable release is claimed. Run this command from the `codex/native-services-20261018` review branch checkout of `AceDataCloud/LibreChatPlugins`. The selected plugin directory must be visible inside the LibreChat filesystem (`/app/plugin` by default); preserve existing Docker mounts. Restart that instance. The package adds the `nano-banana-by-acedatacloud` MCP connection and a service-specific Skill to that instance's tool catalog. It is not an installation into every LibreChat instance or a global marketplace entry. -The [English and Chinese illustrated package guides](https://github.com/AceDataCloud/LibreChatPlugins) include installation, account setup, current limits and troubleshooting. The package reuses [NanoBananaMCP](https://github.com/AceDataCloud/NanoBananaMCP); it does not implement its own billing or generation API. +The [English and Chinese illustrated package guides](https://github.com/AceDataCloud/LibreChatPlugins/tree/codex/native-services-20261018) include installation, account setup, current limits and troubleshooting. The package reuses [NanoBananaMCP](https://github.com/AceDataCloud/NanoBananaMCP); it does not implement its own billing or generation API. ## Connect your account diff --git a/content/docs/mcp_servers/seedance_acedata.mdx b/content/docs/mcp_servers/seedance_acedata.mdx index 2e083994f..b1f135510 100644 --- a/content/docs/mcp_servers/seedance_acedata.mdx +++ b/content/docs/mcp_servers/seedance_acedata.mdx @@ -16,7 +16,7 @@ python3 scripts/install.py seedance --plugin-dir /path/to/LibreChat/plugin Source [PR #1](https://github.com/AceDataCloud/LibreChatPlugins/pull/1) is pending review; no stable release is claimed. Run this command from the `codex/native-services-20261018` review branch checkout of `AceDataCloud/LibreChatPlugins`. The selected plugin directory must be visible inside the LibreChat filesystem (`/app/plugin` by default); preserve existing Docker mounts. Restart that instance. The package adds the `seedance-by-acedatacloud` MCP connection and a service-specific Skill to that instance's tool catalog. It is not an installation into every LibreChat instance or a global marketplace entry. -The [English and Chinese illustrated package guides](https://github.com/AceDataCloud/LibreChatPlugins) include installation, account setup, current limits and troubleshooting. The package reuses [SeedanceMCP](https://github.com/AceDataCloud/SeedanceMCP); it does not implement its own billing or generation API. +The [English and Chinese illustrated package guides](https://github.com/AceDataCloud/LibreChatPlugins/tree/codex/native-services-20261018) include installation, account setup, current limits and troubleshooting. The package reuses [SeedanceMCP](https://github.com/AceDataCloud/SeedanceMCP); it does not implement its own billing or generation API. ## Connect your account diff --git a/content/docs/mcp_servers/suno_acedata.mdx b/content/docs/mcp_servers/suno_acedata.mdx index 750d52c16..f10e84f23 100644 --- a/content/docs/mcp_servers/suno_acedata.mdx +++ b/content/docs/mcp_servers/suno_acedata.mdx @@ -16,7 +16,7 @@ python3 scripts/install.py suno --plugin-dir /path/to/LibreChat/plugin Source [PR #1](https://github.com/AceDataCloud/LibreChatPlugins/pull/1) is pending review; no stable release is claimed. Run this command from the `codex/native-services-20261018` review branch checkout of `AceDataCloud/LibreChatPlugins`. The selected plugin directory must be visible inside the LibreChat filesystem (`/app/plugin` by default); preserve existing Docker mounts. Restart that instance. The package adds the `suno-by-acedatacloud` MCP connection and a service-specific Skill to that instance's tool catalog. It is not an installation into every LibreChat instance or a global marketplace entry. -The [English and Chinese illustrated package guides](https://github.com/AceDataCloud/LibreChatPlugins) include installation, account setup, current limits and troubleshooting. The package reuses [SunoMCP](https://github.com/AceDataCloud/SunoMCP); it does not implement its own billing or generation API. +The [English and Chinese illustrated package guides](https://github.com/AceDataCloud/LibreChatPlugins/tree/codex/native-services-20261018) include installation, account setup, current limits and troubleshooting. The package reuses [SunoMCP](https://github.com/AceDataCloud/SunoMCP); it does not implement its own billing or generation API. ## Connect your account From 1698af2de0b08efccaaeb5a1e1d89eae756776bd Mon Sep 17 00:00:00 2001 From: Ace Data Cloud Dev Date: Mon, 19 Oct 2026 05:16:33 +0800 Subject: [PATCH 3/3] docs: install released v0.1.0 service packages with checksums --- content/docs/mcp_servers/gpt_image_acedata.mdx | 6 +++--- content/docs/mcp_servers/happyhorse_acedata.mdx | 6 +++--- content/docs/mcp_servers/nano_banana_acedata.mdx | 6 +++--- content/docs/mcp_servers/seedance_acedata.mdx | 6 +++--- content/docs/mcp_servers/suno_acedata.mdx | 6 +++--- 5 files changed, 15 insertions(+), 15 deletions(-) diff --git a/content/docs/mcp_servers/gpt_image_acedata.mdx b/content/docs/mcp_servers/gpt_image_acedata.mdx index 185e7cd97..f52193a74 100644 --- a/content/docs/mcp_servers/gpt_image_acedata.mdx +++ b/content/docs/mcp_servers/gpt_image_acedata.mdx @@ -8,15 +8,15 @@ This independent integration connects **GPT Image** through **Ace Data Cloud**. ## Install the native package -The experimental [Agent Plugins](/docs/features/agent_plugins) format loads each operator-installed plugin at startup. Review the [package source](https://github.com/AceDataCloud/LibreChatPlugins/tree/codex/native-services-20261018/plugins/gpt-image) and install only the service you need: +The experimental [Agent Plugins](/docs/features/agent_plugins) format loads each operator-installed plugin at startup. Review the [package source](https://github.com/AceDataCloud/LibreChatPlugins/tree/v0.1.0/plugins/gpt-image) and install only the service you need: ```bash python3 scripts/install.py gpt-image --plugin-dir /path/to/LibreChat/plugin ``` -Source [PR #1](https://github.com/AceDataCloud/LibreChatPlugins/pull/1) is pending review; no stable release is claimed. Run this command from the `codex/native-services-20261018` review branch checkout of `AceDataCloud/LibreChatPlugins`. The selected plugin directory must be visible inside the LibreChat filesystem (`/app/plugin` by default); preserve existing Docker mounts. Restart that instance. The package adds the `gpt-image-by-acedatacloud` MCP connection and a service-specific Skill to that instance's tool catalog. It is not an installation into every LibreChat instance or a global marketplace entry. +[Release v0.1.0](https://github.com/AceDataCloud/LibreChatPlugins/releases/tag/v0.1.0) contains one independently downloadable ZIP per service plus `SHA256SUMS`. Verify the selected file, then extract its single service directory into the administrator-controlled plugin directory; preserve existing plugin/data directories. Each archive includes its own license, English/Chinese illustrated guides and screenshots. Alternatively, run the command above from a `v0.1.0` source checkout of `AceDataCloud/LibreChatPlugins`. The selected plugin directory must be visible inside the LibreChat filesystem (`/app/plugin` by default); preserve existing Docker mounts. Restart that instance. The package adds the `gpt-image-by-acedatacloud` MCP connection and a service-specific Skill to that instance's tool catalog. It is not an installation into every LibreChat instance or a global marketplace entry. -The [English and Chinese illustrated package guides](https://github.com/AceDataCloud/LibreChatPlugins/tree/codex/native-services-20261018) include installation, account setup, current limits and troubleshooting. The package reuses [OpenAIMCP](https://github.com/AceDataCloud/OpenAIMCP); it does not implement its own billing or generation API. +The [English and Chinese illustrated package guides](https://github.com/AceDataCloud/LibreChatPlugins/tree/v0.1.0) include installation, account setup, current limits and troubleshooting. The package reuses [OpenAIMCP](https://github.com/AceDataCloud/OpenAIMCP); it does not implement its own billing or generation API. ## Connect your account diff --git a/content/docs/mcp_servers/happyhorse_acedata.mdx b/content/docs/mcp_servers/happyhorse_acedata.mdx index 2c2ac436a..99f70b4be 100644 --- a/content/docs/mcp_servers/happyhorse_acedata.mdx +++ b/content/docs/mcp_servers/happyhorse_acedata.mdx @@ -8,15 +8,15 @@ This independent integration connects **HappyHorse** through **Ace Data Cloud**. ## Install the native package -The experimental [Agent Plugins](/docs/features/agent_plugins) format loads each operator-installed plugin at startup. Review the [package source](https://github.com/AceDataCloud/LibreChatPlugins/tree/codex/native-services-20261018/plugins/happyhorse) and install only the service you need: +The experimental [Agent Plugins](/docs/features/agent_plugins) format loads each operator-installed plugin at startup. Review the [package source](https://github.com/AceDataCloud/LibreChatPlugins/tree/v0.1.0/plugins/happyhorse) and install only the service you need: ```bash python3 scripts/install.py happyhorse --plugin-dir /path/to/LibreChat/plugin ``` -Source [PR #1](https://github.com/AceDataCloud/LibreChatPlugins/pull/1) is pending review; no stable release is claimed. Run this command from the `codex/native-services-20261018` review branch checkout of `AceDataCloud/LibreChatPlugins`. The selected plugin directory must be visible inside the LibreChat filesystem (`/app/plugin` by default); preserve existing Docker mounts. Restart that instance. The package adds the `happyhorse-by-acedatacloud` MCP connection and a service-specific Skill to that instance's tool catalog. It is not an installation into every LibreChat instance or a global marketplace entry. +[Release v0.1.0](https://github.com/AceDataCloud/LibreChatPlugins/releases/tag/v0.1.0) contains one independently downloadable ZIP per service plus `SHA256SUMS`. Verify the selected file, then extract its single service directory into the administrator-controlled plugin directory; preserve existing plugin/data directories. Each archive includes its own license, English/Chinese illustrated guides and screenshots. Alternatively, run the command above from a `v0.1.0` source checkout of `AceDataCloud/LibreChatPlugins`. The selected plugin directory must be visible inside the LibreChat filesystem (`/app/plugin` by default); preserve existing Docker mounts. Restart that instance. The package adds the `happyhorse-by-acedatacloud` MCP connection and a service-specific Skill to that instance's tool catalog. It is not an installation into every LibreChat instance or a global marketplace entry. -The [English and Chinese illustrated package guides](https://github.com/AceDataCloud/LibreChatPlugins/tree/codex/native-services-20261018) include installation, account setup, current limits and troubleshooting. The package reuses [HappyHorseMCP](https://github.com/AceDataCloud/HappyHorseMCP); it does not implement its own billing or generation API. +The [English and Chinese illustrated package guides](https://github.com/AceDataCloud/LibreChatPlugins/tree/v0.1.0) include installation, account setup, current limits and troubleshooting. The package reuses [HappyHorseMCP](https://github.com/AceDataCloud/HappyHorseMCP); it does not implement its own billing or generation API. ## Connect your account diff --git a/content/docs/mcp_servers/nano_banana_acedata.mdx b/content/docs/mcp_servers/nano_banana_acedata.mdx index 8b43960c0..8e86e558a 100644 --- a/content/docs/mcp_servers/nano_banana_acedata.mdx +++ b/content/docs/mcp_servers/nano_banana_acedata.mdx @@ -8,15 +8,15 @@ This independent integration connects **Nano Banana** through **Ace Data Cloud** ## Install the native package -The experimental [Agent Plugins](/docs/features/agent_plugins) format loads each operator-installed plugin at startup. Review the [package source](https://github.com/AceDataCloud/LibreChatPlugins/tree/codex/native-services-20261018/plugins/nano-banana) and install only the service you need: +The experimental [Agent Plugins](/docs/features/agent_plugins) format loads each operator-installed plugin at startup. Review the [package source](https://github.com/AceDataCloud/LibreChatPlugins/tree/v0.1.0/plugins/nano-banana) and install only the service you need: ```bash python3 scripts/install.py nano-banana --plugin-dir /path/to/LibreChat/plugin ``` -Source [PR #1](https://github.com/AceDataCloud/LibreChatPlugins/pull/1) is pending review; no stable release is claimed. Run this command from the `codex/native-services-20261018` review branch checkout of `AceDataCloud/LibreChatPlugins`. The selected plugin directory must be visible inside the LibreChat filesystem (`/app/plugin` by default); preserve existing Docker mounts. Restart that instance. The package adds the `nano-banana-by-acedatacloud` MCP connection and a service-specific Skill to that instance's tool catalog. It is not an installation into every LibreChat instance or a global marketplace entry. +[Release v0.1.0](https://github.com/AceDataCloud/LibreChatPlugins/releases/tag/v0.1.0) contains one independently downloadable ZIP per service plus `SHA256SUMS`. Verify the selected file, then extract its single service directory into the administrator-controlled plugin directory; preserve existing plugin/data directories. Each archive includes its own license, English/Chinese illustrated guides and screenshots. Alternatively, run the command above from a `v0.1.0` source checkout of `AceDataCloud/LibreChatPlugins`. The selected plugin directory must be visible inside the LibreChat filesystem (`/app/plugin` by default); preserve existing Docker mounts. Restart that instance. The package adds the `nano-banana-by-acedatacloud` MCP connection and a service-specific Skill to that instance's tool catalog. It is not an installation into every LibreChat instance or a global marketplace entry. -The [English and Chinese illustrated package guides](https://github.com/AceDataCloud/LibreChatPlugins/tree/codex/native-services-20261018) include installation, account setup, current limits and troubleshooting. The package reuses [NanoBananaMCP](https://github.com/AceDataCloud/NanoBananaMCP); it does not implement its own billing or generation API. +The [English and Chinese illustrated package guides](https://github.com/AceDataCloud/LibreChatPlugins/tree/v0.1.0) include installation, account setup, current limits and troubleshooting. The package reuses [NanoBananaMCP](https://github.com/AceDataCloud/NanoBananaMCP); it does not implement its own billing or generation API. ## Connect your account diff --git a/content/docs/mcp_servers/seedance_acedata.mdx b/content/docs/mcp_servers/seedance_acedata.mdx index b1f135510..43b9db929 100644 --- a/content/docs/mcp_servers/seedance_acedata.mdx +++ b/content/docs/mcp_servers/seedance_acedata.mdx @@ -8,15 +8,15 @@ This independent integration connects **Seedance** through **Ace Data Cloud**. I ## Install the native package -The experimental [Agent Plugins](/docs/features/agent_plugins) format loads each operator-installed plugin at startup. Review the [package source](https://github.com/AceDataCloud/LibreChatPlugins/tree/codex/native-services-20261018/plugins/seedance) and install only the service you need: +The experimental [Agent Plugins](/docs/features/agent_plugins) format loads each operator-installed plugin at startup. Review the [package source](https://github.com/AceDataCloud/LibreChatPlugins/tree/v0.1.0/plugins/seedance) and install only the service you need: ```bash python3 scripts/install.py seedance --plugin-dir /path/to/LibreChat/plugin ``` -Source [PR #1](https://github.com/AceDataCloud/LibreChatPlugins/pull/1) is pending review; no stable release is claimed. Run this command from the `codex/native-services-20261018` review branch checkout of `AceDataCloud/LibreChatPlugins`. The selected plugin directory must be visible inside the LibreChat filesystem (`/app/plugin` by default); preserve existing Docker mounts. Restart that instance. The package adds the `seedance-by-acedatacloud` MCP connection and a service-specific Skill to that instance's tool catalog. It is not an installation into every LibreChat instance or a global marketplace entry. +[Release v0.1.0](https://github.com/AceDataCloud/LibreChatPlugins/releases/tag/v0.1.0) contains one independently downloadable ZIP per service plus `SHA256SUMS`. Verify the selected file, then extract its single service directory into the administrator-controlled plugin directory; preserve existing plugin/data directories. Each archive includes its own license, English/Chinese illustrated guides and screenshots. Alternatively, run the command above from a `v0.1.0` source checkout of `AceDataCloud/LibreChatPlugins`. The selected plugin directory must be visible inside the LibreChat filesystem (`/app/plugin` by default); preserve existing Docker mounts. Restart that instance. The package adds the `seedance-by-acedatacloud` MCP connection and a service-specific Skill to that instance's tool catalog. It is not an installation into every LibreChat instance or a global marketplace entry. -The [English and Chinese illustrated package guides](https://github.com/AceDataCloud/LibreChatPlugins/tree/codex/native-services-20261018) include installation, account setup, current limits and troubleshooting. The package reuses [SeedanceMCP](https://github.com/AceDataCloud/SeedanceMCP); it does not implement its own billing or generation API. +The [English and Chinese illustrated package guides](https://github.com/AceDataCloud/LibreChatPlugins/tree/v0.1.0) include installation, account setup, current limits and troubleshooting. The package reuses [SeedanceMCP](https://github.com/AceDataCloud/SeedanceMCP); it does not implement its own billing or generation API. ## Connect your account diff --git a/content/docs/mcp_servers/suno_acedata.mdx b/content/docs/mcp_servers/suno_acedata.mdx index f10e84f23..1accffbef 100644 --- a/content/docs/mcp_servers/suno_acedata.mdx +++ b/content/docs/mcp_servers/suno_acedata.mdx @@ -8,15 +8,15 @@ This independent integration connects **Suno** through **Ace Data Cloud**. It is ## Install the native package -The experimental [Agent Plugins](/docs/features/agent_plugins) format loads each operator-installed plugin at startup. Review the [package source](https://github.com/AceDataCloud/LibreChatPlugins/tree/codex/native-services-20261018/plugins/suno) and install only the service you need: +The experimental [Agent Plugins](/docs/features/agent_plugins) format loads each operator-installed plugin at startup. Review the [package source](https://github.com/AceDataCloud/LibreChatPlugins/tree/v0.1.0/plugins/suno) and install only the service you need: ```bash python3 scripts/install.py suno --plugin-dir /path/to/LibreChat/plugin ``` -Source [PR #1](https://github.com/AceDataCloud/LibreChatPlugins/pull/1) is pending review; no stable release is claimed. Run this command from the `codex/native-services-20261018` review branch checkout of `AceDataCloud/LibreChatPlugins`. The selected plugin directory must be visible inside the LibreChat filesystem (`/app/plugin` by default); preserve existing Docker mounts. Restart that instance. The package adds the `suno-by-acedatacloud` MCP connection and a service-specific Skill to that instance's tool catalog. It is not an installation into every LibreChat instance or a global marketplace entry. +[Release v0.1.0](https://github.com/AceDataCloud/LibreChatPlugins/releases/tag/v0.1.0) contains one independently downloadable ZIP per service plus `SHA256SUMS`. Verify the selected file, then extract its single service directory into the administrator-controlled plugin directory; preserve existing plugin/data directories. Each archive includes its own license, English/Chinese illustrated guides and screenshots. Alternatively, run the command above from a `v0.1.0` source checkout of `AceDataCloud/LibreChatPlugins`. The selected plugin directory must be visible inside the LibreChat filesystem (`/app/plugin` by default); preserve existing Docker mounts. Restart that instance. The package adds the `suno-by-acedatacloud` MCP connection and a service-specific Skill to that instance's tool catalog. It is not an installation into every LibreChat instance or a global marketplace entry. -The [English and Chinese illustrated package guides](https://github.com/AceDataCloud/LibreChatPlugins/tree/codex/native-services-20261018) include installation, account setup, current limits and troubleshooting. The package reuses [SunoMCP](https://github.com/AceDataCloud/SunoMCP); it does not implement its own billing or generation API. +The [English and Chinese illustrated package guides](https://github.com/AceDataCloud/LibreChatPlugins/tree/v0.1.0) include installation, account setup, current limits and troubleshooting. The package reuses [SunoMCP](https://github.com/AceDataCloud/SunoMCP); it does not implement its own billing or generation API. ## Connect your account