nacos支持MCP Server注册与发现

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服务

  1. 依赖引入
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>
  1. 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;
    }
}
  1. 自动注册参数配置

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   # 是否开启服务注册
  1. 服务启动
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();
    }

}
  1. 启动springboot服务没有报错后查看nacos是否注册MCP服务



python自动注册MCP服务

  1. 安装环境
cmd 复制代码
pip install nacos-mcp-wrapper-python
  1. 自动注册参数配置
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" #开源控制台密码
  1. 完整示例代码
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")
  1. 启动服务

使用命令启动

cmd 复制代码
python .\nacos_mcp.py

查看nacos是否注册了MCP服务

相关推荐
海南java第二人7 小时前
Spring MVC核心流程深度解析:从请求到响应的完美掌控
java·springmvc
未来之窗软件服务7 小时前
幽冥大陆(一百10)PHP打造Java的Jar安全——东方仙盟筑基期
java·php·phar·仙盟创梦ide·东方仙盟
yunhuibin7 小时前
LeNet
人工智能·python
程序猿_极客10 小时前
【2025 年最新版】Java JDK 安装与环境配置教程(附图文超详细,Windows+macOS 通用)
java·开发语言·windows·macos·jdk
猫头虎10 小时前
macOS 双开/多开微信WeChat完整教程(支持 4.X 及以上版本)
java·vscode·macos·微信·编辑器·mac·脚本
哥布林学者13 小时前
吴恩达深度学习课程五:自然语言处理 第二周:词嵌入(五)GloVe 算法
深度学习·ai
二哈喇子!13 小时前
Java开发工具——IDEA(修改全局配置,提升工作效率)
java·编辑器·intellij-idea
强子感冒了14 小时前
Java网络编程学习笔记,从网络编程三要素到TCP/UDP协议
java·网络·学习
二哈喇子!14 小时前
SpringBoot项目右上角选择ProjectNameApplication的配置
java·spring boot
jaray14 小时前
PyCharm 2024.3.2 Professional 如何更换 PyPI 镜像源
ide·python·pycharm·pypi 镜像源