Cloud Native 8 min read

How Nacos 1.1.4 Connects Service Discovery to Istio via MCP

Nacos 1.1.4 introduces Istio MCP integration, a server‑side upgrade guide, client dependency changes, custom instance ID support, and detailed usage steps, while also highlighting community contribution paths and previewing the upcoming 1.2.0 release with permission control.

Programmer DD
Programmer DD
Programmer DD
How Nacos 1.1.4 Connects Service Discovery to Istio via MCP

Upgrade Guide

Server

For versions 0.8.0 and above: replace {nacos.home}/target/nacos-server.jar after extracting the package and restart each Nacos Server.

For versions below 0.8.0: upgrade first to 1.0.0.

Client

Replace the Maven dependency with the new version.

Support for Istio MCP Protocol

This is the biggest update in 1.1.4: Nacos now pushes service data to Istio using the MCP protocol, making it the first registration center with official MCP support. Pilot’s latest design uses MCP to interact with backend data sources, decoupling extensions and improving code quality, stability, and extensibility.

Reference: Pilot design diagram

Pilot design diagram
Pilot design diagram

Nacos MCP Server currently uses a single service identifier and full‑service push mode; incremental push will be supported in a future version. The server runs a gRPC service to transmit MCP data.

Reference implementation:

Nacos MCP Server architecture
Nacos MCP Server architecture

Using Nacos MCP Server

1. Download and unzip the latest Nacos 1.1.4 package.

2. Configure application.properties and restart Nacos. nacos.istio.mcp.server.enabled=true Note: In a cluster only one server needs to enable MCP; the server uses port 18848.

3. Configure Pilot to use the Nacos MCP Server:

configSources
-- address: x.x.x.x:18848

4. Restart Pilot.

Custom Instance ID

Version 1.1.4 allows clients to set a custom instance ID and introduces a new integer‑based ID generation algorithm for unique indexing within a service. Example:

Instance instance = new Instance();
instance.setIp("1.1.1.1");
instance.setPort(80);
// Must set ephemeral=false to avoid ID conflicts
instance.setEhpemeral(false);
instance.setMetadata(new HashMap<String, String>());
instance.getMetadata().put(PreservedMetadataKeys.INSTANCE_ID_GENERATOR, Constants.SNOWFLAKE_INSTANCE_ID_GENERATOR);

Community Contribution

To help Nacos grow, contribute via GitHub issues—look for good first issue for newcomers or contribution welcome for high‑impact areas.

Upcoming release 1.2.0 will add widely requested permission‑control features.

Original Source

Signed-in readers can open the original source through BestHub's protected redirect.

Sign in to view source
Republication Notice

This article has been distilled and summarized from source material, then republished for learning and reference. If you believe it infringes your rights, please contactadmin@besthub.devand we will review it promptly.

MCPservice discoveryConfiguration ManagementNacosIstio
Programmer DD
Written by

Programmer DD

A tinkering programmer and author of "Spring Cloud Microservices in Action"

0 followers
Reader feedback

How this landed with the community

Sign in to like

Rate this article

Was this worth your time?

Sign in to rate
Discussion

0 Comments

Thoughtful readers leave field notes, pushback, and hard-won operational detail here.