nacos支持MCP Server注册与发现
nacos3安装启动
官方下载地址:https://nacos.io/download/nacos-server/?spm=5238cd80.41607710.0.0.13b03f77IQAR7x
我这里下载的是:nacos-server-3.1.0.zip
解压下载的安装包,进入conf目录,修改application.properties
配置好数据库相关连接地址和账号密码
打开cmd命令行进行bin目录后执行命令启动服务
cmd
C:\Users\admin\Downloads\nacos\bin>startup.cmd -m standalone

打开浏览器输入地址访问:http://127.0.0.1:8080/
第一次访问提示修改密码

java自动注册MCP服务
- 依赖引入
xml
<dependency>
<groupId>com.alibaba.cloud.ai</groupId>
<artifactId>spring-ai-alibaba-starter-mcp-registry</artifactId>
<version>1.0.0.3</version>
</dependency>
<!-- MCP Server (WebMVC) -->
<dependency>
<groupId>org.springframework.ai</groupId>
<artifactId>spring-ai-starter-mcp-server-webmvc</artifactId>
<version>1.0.0</version>
</dependency>
- MCP服务定义
java
import org.springframework.ai.tool.annotation.Tool;
import org.springframework.ai.tool.annotation.ToolParam;
import org.springframework.stereotype.Service;
@Service
public class WeatherService {
@Tool(description = "Get weather information by city name")
public String getWeather(@ToolParam(description = "City name") String cityName) {
return "Sunny in " + cityName;
}
}
- 自动注册参数配置
properties格式
yml
spring.application.name=springai
server.port=8088
spring.ai.mcp.server.name=webmvc-mcp-server
spring.ai.mcp.server.version=1.0.0
spring.ai.mcp.server.type=sync
spring.ai.mcp.server.instructions="This mcp server provides time information tools and resources"
spring.ai.alibaba.mcp.nacos.server-addr=127.0.0.1:8848
spring.ai.alibaba.mcp.nacos.namespace=public
spring.ai.alibaba.mcp.nacos.username=nacos
spring.ai.alibaba.mcp.nacos.password=nacos
spring.ai.alibaba.mcp.nacos.register.enabled=true
yml格式
yml
spring:
application:
name: springai
ai:
mcp:
server:
name: webmvc-mcp-server # MCP服务名称
version: 1.0.0 # 服务版本
type: SYNC # 调用类型:SYNC(同步)或ASYNC(异步)
instructions: "This mcp server provides time information tools and resources"
alibaba:
mcp:
nacos:
server-addr: 127.0.0.1:8848 # 替换为你的 Nacos 地址
namespace: public # Nacos 命名空间 ID(默认为public)
username: nacos # 开源控制台用户名
password: nacos # 开源控制台密码
register:
enabled: true # 是否开启服务注册
- 服务启动
java
import com.example.springai.service.WeatherService;
import org.springframework.ai.tool.ToolCallbackProvider;
import org.springframework.ai.tool.method.MethodToolCallbackProvider;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.Bean;
@SpringBootApplication
public class SpringaiApplication {
public static void main(String[] args) {
SpringApplication.run(SpringaiApplication.class, args);
}
@Bean
public ToolCallbackProvider weatherTools(WeatherService weatherService) {
return MethodToolCallbackProvider.builder().toolObjects(weatherService).build();
}
}
- 启动springboot服务没有报错后查看nacos是否注册MCP服务



python自动注册MCP服务
- 安装环境
cmd
pip install nacos-mcp-wrapper-python
- 自动注册参数配置
python
nacos_settings = NacosSettings()
nacos_settings.SERVER_ADDR = "127.0.0.1:8848"
nacos_settings.NAMESPACE= "public" # Nacos 命名空间ID
nacos_settings.USERNAME="nacos" #开源控制台用户名
nacos_settings.PASSWORD="nacos" #开源控制台密码
- 完整示例代码
python
# server.py
from nacos_mcp_wrapper.server.nacos_mcp import NacosMCP
from nacos_mcp_wrapper.server.nacos_settings import NacosSettings
# Create an MCP server
# mcp = FastMCP("Demo")
nacos_settings = NacosSettings()
nacos_settings.SERVER_ADDR = "127.0.0.1:8848"
nacos_settings.NAMESPACE= "public" # Nacos 命名空间ID
nacos_settings.USERNAME="nacos" #开源控制台用户名
nacos_settings.PASSWORD="nacos" #开源控制台密码
mcp = NacosMCP("nacos-mcp-python", nacos_settings=nacos_settings,
port=18001,
instructions="This is a simple Nacos MCP server",
version="1.0.1")
mcp._mcp_server.website_url = None
# Add an addition tool
@mcp.tool()
def add(a: int, b: int) -> int:
"""Add two numbers"""
return a + b
mcp.run(transport="sse")
- 启动服务
使用命令启动
cmd
python .\nacos_mcp.py

查看nacos是否注册了MCP服务

