Nacos 3.2.0 is a major release focused on plugin architecture enhancement, AI Registry expansion, API modernization, and code quality improvements. Key highlights include:
- AI Registry Completes the "AI Triad": Skill Registry and Prompt Registry join existing MCP/Agent Registry, with Nacos Copilot integration for AI-assisted management
- Plugin Architecture Modernization: Comprehensive SPI-based plugin management with console UI, cluster-wide synchronization, and PostgreSQL enhancements
- API Cleanup: Legacy UDP PUSH support removed, /v1 and /v2 HTTP APIs extracted to submodules for future removal
- Security & Code Quality: OIDC/OAuth2 authentication plugin, multiple FindBugs fixes, dead code removal, and JDK 17+ compatibility enhancements
- Console Modernization: Dual UI support for new/legacy console switching with improved user experience
Feature
- [#13699] Support outputSchema for MCP tools
- [#14041] Merge nacos-plugin PostgreSQL & Base Implementation into main repository
- [#14056] Refactor datasource plugins structure and enhance PostgreSQL capabilities
- [#14077] Implement SPI-based plugin discovery and management API
- [#14078] Implement cluster-wide state synchronization for plugins
- [#14079] Add plugin management console UI and API
- [#14084] Support MCP Tool _meta and annotations fields
- [#14085] Enhance MCP tool metadata with annotations support
- [#14101] Implement cluster-wide state synchronization
- [#14109] Introduce Prompt Registry as core component of Nacos AI Registry
- [#14110] Introduce Skills Registry to complement Nacos AI Registry vision
- [#14117] Add plugin management console UI and API
- [#14120] Add version parameter support to Maintainer SDK Get Agent Card method
- [#14527] Add OIDC/OAuth2 Authentication Plugin (Server)
- [#14534] Add find-skill-from-nacos capability for intelligent skill discovery
- [#14623] Add skill-scanner integration for AI Skill security scanning
- [#14641] Update Nacos console UI with modern design
- [#14653] Support dual UI switching between new and legacy console with contextPath adaptation
- [#14672] Skill support for data level access and visibility Phase 2
- [#14677] Skill support for data level access and visibility Phase 3
Enhancement/Refactor
- [#14048] Refactor datasource plugins structure and enhance PostgreSQL capabilities
- [#14050] Extract /v1 and /v2 HTTP APIs to submodules for future removal
- [#14052] Remove UDP PUSH support for naming module
- [#14057] Refactor CreateTool and support output scheme
- [#14074] Remove legacy UDP PUSH support from naming module
- [#14122] Add JVM --add-opens options for JDK 17+ compatibility in startup scripts
- [#14125] Activate dev profile by default for plugin dependencies
- [#14441] Refactor version comparison and JSON field handling with constants
- [#14461] Remove obsolete p3c-pmd plugin and cleanup annotations
- [#14463] Unify component scanning with custom package exclusion
- [#14468] Unify component scanning with custom package exclusion
- [#14546] Remove unused common.cache package (dead code from Guava removal attempt)
- [#14585] Refactor admin API input from JSON body to form params
- [#14640] Refactor database plugins and update CI report paths
BugFix
- [#13770] Fix missing context path in importToolsFromMcp and other AI-related APIs
- [#14009] Fix UUID passing issue in configuration fuzzy listening causing initialization events to be filtered
- [#14016] Fix Console automatic server member synchronization in distributed deployment
- [#14020] Fix missing '?' placeholder in database query
- [#14024] Fix MCP cache index inconsistency when recreating MCP server with same name
- [#14028] Fix remote server selection to use healthy nodes during import/export operations
- [#14063] Fix control plugin bug
- [#14104] Fix AI API context path errors in console
- [#14114] Fix incorrect grayRule detection in ConfigMigrateService
- [#14121] Fix console-ui pagination reset to 0 instead of 1 on API error
- [#14210] Fix MainLayout to handle language changes and fetch notices on update
- [#14307] Add JVM --add-opens options for JDK 17+ compatibility in startup scripts
- [#14401] Fix incorrect created field returned by ConfigRowMapperInjector
- [#14402] Fix MySQL LIKE query escaping to prevent underscore and hyphen confusion
- [#14442] Fix Derby and MySQL LIKE query with proper escape handling
- [#14450] Fix console remote server context-path for maintainer-client
- [#14454] Throw proper exception when form parameters exceed size limit
- [#14471] Replace Long.valueOf() with Long.parseLong() to avoid unnecessary boxing
- [#14479] Fix typo, incorrect Javadoc and improve resource management in health check processors
- [#14484] Add 'type' and 'md5' fields to findConfigInfoLike4PageFetchRows for plugin development
- [#14486] Remove unnecessary equals() override in enum classes
- [#14491] Fix DumpChangeGrayConfigWorker NPE
- [#14509] Fix non-short-circuit operator in for-loop condition
- [#14510] Fix clone() not calling super.clone() in ConfigForm
- [#14515] Fix unnecessary equals() override in enum classes
- [#14527] Add OIDC/OAuth2 Authentication Plugin (Server)
- [#14533] Fix DM_DEFAULT_ENCODING: add explicit charset to avoid platform-dependent encoding
- [#14538] Fix DMI_RANDOM_USED_ONLY_ONCE: replace new Random() with ThreadLocalRandom
- [#14545] Remove unused common.cache package
- [#14547] Fix HE_EQUALS_USE_HASHCODE: add missing hashCode() to Config model classes
- [#14548] Fix NP_PARAMETER_MUST_BE_NONNULL_BUT_MARKED_AS_NULLABLE: add null check in GrpcConnection callback
- [#14567] Fix console-ui TypeError in MainLayout and improve copilot module loading
- [#14616] Fix naming module pagination parameter validation
- [#14622] Exclude json-schema-validator 3.0.0 from agentscope-core to resolve NoClassDefFoundError
- [#14625] Fix NoClassDefFoundError by excluding conflicting json-schema-validator dependency
- [#14635] Fix health status update method to correctly handle persistent instances
- [#14712] Fix Skill ZIP upload losing SKILL.md content
Dependencies
- [#11180] Upgrade jraft-core version to 1.4.0
- [#14006] Upgrade Spring Boot to 3.4.10 to address CVE-2025-55752
- [#14055] Bump org.apache.logging.log4j:log4j-core from 2.24.3 to 2.25.3
- [#14625] Exclude json-schema-validator 3.0.0 from agentscope-core
- [#14714] Upgrade gRPC version to 1.78.0
⚠️ Breaking Changes & Migration Notes
Database Schema Changes (Important)
Action Required: This release introduces significant database schema changes with multiple new tables added for plugin management, AI Registry (Skill/Prompt), and enhanced audit capabilities.
Before upgrading, you must apply the new schema:
- Backup your existing database
- Apply the schema upgrade script:
conf/schema.sql(for MySQL) or corresponding script for your database type - Restart Nacos server after schema migration
Failure to apply the schema changes may result in plugin management, AI Registry, and other new features not functioning correctly.
API Legacy Adapter Plugin (Important)
Action Required: The plugins directory includes the api-legacy-adapter plugin by default to maintain compatibility with extracted /v1 and /v2 HTTP APIs. This plugin will be removed in future versions.
If you have confirmed that your deployment no longer uses the legacy /v1 or /v2 APIs, you can safely remove the api-legacy-adapter plugin from the plugins directory immediately to reduce footprint.
Naming Module: UDP PUSH Support Removed
The naming module has removed legacy UDP PUSH support, moving to a cleaner HTTP API architecture. Clients relying on UDP-based service discovery updates must migrate to HTTP-based mechanisms.
Java Version Requirements
| Module | Java Required |
|---|---|
| Nacos-Server / Nacos-Console | Java 17 |
| Nacos-Client | Java 8 |
| Nacos-Maintainer-Client | Java 8 |
📚 What's New in AI Registry
Skill Registry
- Centralized Management: Create, update, and version skills via UI or API with changelogs
- Skill Composition: Chain multiple MCP tools into business-meaningful capabilities (e.g., "user_onboarding" = verify_email + create_profile + send_welcome_email)
- MCP Integration: Skills explicitly declare dependencies on registered MCP tools with integrity validation
- Folder-based Organization: Skills displayed in multi-level folder structure for better organization
- Agent-Friendly APIs: REST/gRPC APIs for agent frameworks (LangChain, CrewAI, etc.) to discover and subscribe to skills
- Upload Support: Upload skill packages (zip format, max 10MB) with authentication
- Security Scanning: Integrated skill-scanner for AI Skill security validation
- Data Level Access: Fine-grained visibility and access control (Phase 2 & 3)
Prompt Registry
- First-Class Configuration: Store prompts with metadata (agentId, modelId, version, tags) as versioned config artifacts
- Multi-Version Management: Support parallel multi-version management with template and commit message tracking
- Tag-Based Subscription: Subscribe to prompts by tags for dynamic updates
- Interactive Debugging: Test and compare prompt outputs across versions directly in console
- AI Client Proxy: Unified HTTP/gRPC client interface for prompt operations
Nacos Copilot
- AI-Powered Assistant: Integrated AI assistant to help optimize and create Prompts and Skills
- Intelligent Discovery: Automatically find relevant existing skills from the registry
- Console Integration: Accessible directly from Nacos console for seamless workflow
New Contributors
- @INotWant made their first contribution in #14009
- @QingYuanQ made their first contribution in #14020
- @echooymxq made their first contribution in #14100
- @shichaoyuan made their first contribution in #14099
- @chlch made their first contribution in #14104
- @lvren1485 made their first contribution in #14210
- @slightsharp made their first contribution in #14263
- @Cholesterol12138 made their first contribution in #14357
- @codezkk made their first contribution in #14401
- @1lck made their first contribution in #14449
- @Zjianru made their first contribution in #14461
- @qiacheng7 made their first contribution in #14465
- @aMetric made their first contribution in #14477
- @DocJlm made their first contribution in #14480
- @java-acc made their first contribution in #14485
- @FrioSea made their first contribution in #14476
- @saynoword made their first contribution in #14534
- @pierluigilenoci made their first contribution in #14706
- @daguimu made their first contribution in #14730
Full Changelog: 3.1.1...3.2.0