by aias00 · v1.0.0
Manage Nacos configuration from Dify with config CRUD, history detail/rollback, namespace management, and listener query tools for Nacos 2.x and 3.x.
This community listing does not yet include every recommended support, privacy, pricing, and permission disclosure. Review the available package permissions before installing.
Available inside your emploidai workspace after installation.
Available inside your emploidai workspace after installation.
Author: aias00
Version: 1.0.0
Type: tool
Minimum Dify Version: 1.5.1
This plugin provides ten Dify tools for working with Nacos Config:
nacos_reader: read configuration contentnacos_writer: write or update configuration contentnacos_delete: delete a configuration itemnacos_list: list configuration items in one namespacenacos_history: list historical versions for one configuration itemnacos_history_detail: inspect one historical versionnacos_history_rollback: roll back to one historical versionnacos_namespace_list: list namespacesnacos_namespace_manage: get, check, create, update, or delete one namespacenacos_listener_query: query current listeners by config or by client IPThe plugin is focused on Nacos Config. It does not manage service discovery, instance registration, or other naming features.
Authentication and connection settings are configured once at the provider level. Individual tool calls only need business parameters such as namespace, data_id, group, and pagination.
This plugin supports both Nacos 2.x and Nacos 3.x.
For config read, write, delete, history list, history detail, and rollback:
2.x HTTP APIs when they exist410 Gone, it automatically falls back to the 3.x APIsMain endpoints used:
2.x
/nacos/v2/cs/config/nacos/v2/cs/history/configs/nacos/v2/cs/history/list/nacos/v2/cs/history3.x
/nacos/v3/client/cs/config/nacos/v3/admin/cs/config/nacos/v3/admin/cs/history/configs/nacos/v3/admin/cs/history/list/nacos/v3/admin/cs/historyNamespace list and namespace management support both 2.x and 3.x namespace APIs.
Main endpoints used:
2.x
/nacos/v2/console/namespace/list/nacos/v2/console/namespace3.x
/nacos/v3/admin/core/namespace/list/nacos/v3/admin/core/namespaceListener query uses the 3.x admin listener APIs:
/nacos/v3/admin/cs/config/listener/nacos/v3/admin/cs/listenerThis means nacos_listener_query requires Nacos 3.x.
There are two common Nacos 3.x deployment styles:
relaxed or compatible auth
The plugin can often work with just username and password.
strict 3.x auth
Some deployments also require an identity header. In that case you must provide:
identity_keyidentity_valueFor strict 3.x environments, these values are deployment-specific. A common example is:
identity_key=serverIdentityidentity_value=<your-identity-value>Configure these once when installing or debugging the plugin:
| Credential | Type | Required | Description |
|---|---|---|---|
server_addresses | text-input | Yes | Nacos server address, for example localhost:8848 or https://nacos.example.com:8848 |
username | text-input | Yes | Nacos username |
password | secret-input | Yes | Nacos password |
identity_key | text-input | No | Optional Nacos 3.x identity header key, for example serverIdentity |
identity_value | secret-input | No | Optional Nacos 3.x identity header value for strict auth environments |
Illustrative provider credential setup (using placeholder values):
The correct Nacos address depends on how the plugin is running:
127.0.0.1:8848 or your-host:8848nacos:8848 or another Docker-network hostnameThe second form is required because the installed plugin runs inside Docker-managed runtime containers and does not see the host's localhost.
nacos_readerReturns:
{
"success": true,
"config": "..."
}
nacos_writerReturns:
{
"success": true,
"result": true
}
nacos_deleteReturns:
{
"success": true,
"result": true
}
nacos_listReturns namespace-scoped config list data:
{
"success": true,
"configs": [],
"total_count": 0,
"page_number": 1,
"pages_available": 1
}
nacos_historyReturns paginated history data:
{
"success": true,
"history": {
"total_count": 1,
"page_number": 1,
"pages_available": 1,
"page_items": []
}
}
nacos_history_detailReturns one historical version object:
{
"success": true,
"history_version": {
"id": "7",
"dataId": "app.yaml",
"groupName": "DEFAULT_GROUP",
"content": "..."
}
}
nacos_history_rollbackThis tool implements rollback by:
contentReturns:
{
"success": true,
"result": true,
"history_version": {
"id": "7",
"content": "..."
}
}
nacos_namespace_listReturns:
{
"success": true,
"namespaces": [],
"total_count": 0
}
nacos_namespace_manageSupported action values:
getcheckcreateupdatedeleteTypical outputs:
{
"success": true,
"action": "get",
"namespace": {
"namespace": "public",
"namespaceShowName": "public"
}
}
{
"success": true,
"action": "check",
"exists": true
}
{
"success": true,
"action": "create",
"result": true
}
nacos_listener_querySupported query_type values:
config: query listeners for one config itemip: query subscriptions for one client IPReturns:
{
"success": true,
"query_type": "config",
"listeners_status": {},
"entry_count": 0
}
For config-domain tools such as:
nacos_readernacos_writernacos_deletenacos_listnacos_historynacos_history_detailnacos_history_rollbacknacos_listener_query with query_type=configthe following inputs all target the default namespace:
namespacenamespace=""namespace="public"Internally these are normalized to "".
For nacos_namespace_manage, the namespace_id parameter is normalized a little differently:
namespace_idnamespace_id=""namespace_id="public"These all target the default namespace, but namespace-management APIs conceptually operate on the namespace identity itself, so the tool treats them as the default namespace target rather than a config-path empty namespace value.
| Parameter | Type | Required | Description |
|---|---|---|---|
namespace | string | No | Optional namespace ID for config-domain tools |
data_id | string | Depends on tool | Config dataId |
group | string | Depends on tool | Config group, usually DEFAULT_GROUP |
Used by:
nacos_listnacos_historyParameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
page_no | string | No | Page number, default 1 |
page_size | string | No | Page size, default 100 |
Used by:
nacos_history_detailnacos_history_rollbackParameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
history_id | string | Yes | Historical version ID returned by nacos_history |
Used by:
nacos_namespace_manageParameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
action | string | Yes | One of get, check, create, update, delete |
namespace_id | string | Depends on action | Target namespace ID; optional custom ID for create |
namespace_name | string | Required for create and update | Namespace display name |
namespace_desc | string | No | Namespace description |
Used by:
nacos_listener_queryParameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
query_type | string | Yes | config or ip |
aggregation | string | No | Boolean-like string, default true |
namespace | string | No | Used when query_type=config |
data_id | string | Required for query_type=config | Target config dataId |
group | string | Required for query_type=config | Target config group |
client_ip | string | Required for query_type=ip | Client IP to inspect |
The source repository includes two reusable validation workflow DSL files:
Both workflow artifacts are wired to the package-installed provider:
aias00/nacos/nacosThese workflow DSL files are repository assets for validation and documentation. They are intentionally excluded from the packaged plugin artifact.
If you only have a remote-debug provider, replace the provider_id and provider_name values in the DSL before importing.
nacos-full-validation-workflow.ymlThis workflow validates the config CRUD lifecycle:
nacos_writernacos_readernacos_listnacos_historynacos_deletenacos-management-validation-workflow.ymlThis workflow validates the expanded config-management surface:
nacos_namespace_manage with createnacos_namespace_manage with updatenacos_namespace_manage with getnacos_namespace_manage with checknacos_namespace_listnacos_writer twicenacos_historynacos_history_detailnacos_history_rollbacknacos_reader after rollbacknacos_listener_query by confignacos_listener_query by IPnacos_deletenacos_namespace_manage with deletenacos_namespace_manage with final checkThe current validated local run produced:
namespace_create_result = truenamespace_update_result = truehistory_count = 2rollback_result = trueconfig_after_rollback = version: 1 ...listener_config_entries = 0listener_ip_entries = 0delete_config_result = truenamespace_delete_result = truenamespace_exists_after_delete = falseThe current management screenshots were refreshed using a more visible custom input set:
namespace_id = showcase-namespace-20260427data_id = showcase-config-20260427.yamlgroup = SHOWCASE_GROUPManagement workflow successful run summary:
Management workflow detail tab:
Management workflow trace tab:
In the local official Nacos 3.1.1 validation environment, there can be a short read-after-write inconsistency window:
nullThat is why the bundled validation workflow inserts a short delay before nacos_reader.
nacos_list.total_count is namespace-scoped, not "how many items match the current data_id".
Use:
nacos_readernacos_historynacos_history_detailfor per-config assertions.
nacos_listener_query is a finite query tool, not a long-lived streaming subscription. That is intentional for Dify tool execution:
query_type=config tells you which clients are currently listening to one config itemquery_type=ip tells you which config items one client IP is currently subscribed toUse values that match your own environment. For example:
server_addresses=your-nacos-host:8848username=your-usernamepassword=your-passwordidentity_key=serverIdentityidentity_value=your-identity-valuenacos_listener_query depends on Nacos 3.x admin listener APIs.