首页 / 资讯中心 / 文章详情

Nacos 3.0 正式发布:MCP Registry、安全零信任、链接更多生态

Nacos 3.0 正式发布:MCP Registry、安全零信任、链接更多生态 ★ FEATURED ARTICLE
1. Nacos 3.0 升级前你必须搞清楚的三件事Nacos 3.0 正式发布这件事对正在跑微服务的人来说不是“又多了一个版本号”而是一次架构定位的转向。Nacos 从 2018 年开源到现在一直是 Dynamic Naming and Configuration Service 的定位也就是注册中心和配置中心。3.0 把这句话往前推了一步它开始把自己当成 AI 原生应用的动态服务治理平台核心抓手就是 MCP Registry、安全零信任和生态链接这三块。先说 MCP Registry 是什么。MCP 是 Model Context Protocol你可以把它理解成大模型和外部工具之间的“插头标准”。以前你写一个 Agent要调用高德地图、数据库、内部 API得一个个在 Agent 里配 MCP Server 地址、密钥、工具列表。Nacos 3.0 做的事是把这些 MCP Server 统一注册到 Nacos 里Agent 只连一个 Nacos-MCP-Router就能按需发现、安装、代理这些 MCP 服务。适合谁适合正在做 AI Agent、工具链编排、又已经在用 Nacos 做微服务治理的团队。再说安全零信任。Nacos 3.0 默认开启鉴权控制台和引擎拆成独立 Web 容器端口可以分开暴露。以前 2.x 为了方便控制台和引擎共用一个端口内网里谁都能点进去改配置。3.0 把这个口子收紧了启动前必须配 NACOS_AUTH_TOKEN 和 NACOS_AUTH_IDENTITY_VALUE否则起不来。第三是生态链接。K8s 的 Service、ConfigMap、Secret 可以通过 Nacos Controller 2.0 双向同步多语言 SDK 里 Go、Python、Rust 都在补Nacos 自己还出了一个 Nacos MCP Server让大模型能直接查 Nacos 里的服务和配置。我试过在本地用 Docker 拉 3.0 镜像第一感受就是“不配密钥真的起不来”这跟 2.x 的体验差别很大。下面按升级评估的顺序把配置、验证、排障一步步拆开。2. TaoToken 前置给 MCP 调试准备一个模型入口Nacos 3.0 的 MCP Registry 本身不负责跑大模型它管的是 MCP 服务的注册、发现和元数据。但你要验证 MCP 工具能不能被 Agent 正确调用就得有一个能发请求的模型入口。这里我用 TaoToken 来做模型对话和 Coding Plan 的调试入口原因是它同时提供 OpenAI 兼容的 API 和 Claude Code 接入方式配 MCP 的时候不用来回换工具。TaoToken 的官网是 https://taotoken.net/?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content API 地址是 https://taotoken.net/api 注意 API 地址后面不加 UTM 参数。模型对话入口在 https://taotoken.net/models?utm_sourcetaotoken_aicg_blog_endutm_contentmodel_chat Coding Plan 在 https://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_contentcoding_plan 控制台在 https://taotoken.net/console?utm_sourcetaotoken_aicg_blog_endutm_contentconsole API Keys 在 https://taotoken.net/api-keys?utm_sourcetaotoken_aicg_blog_endutm_contentapi_keys 接入文档在 https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_contentdoc 。为什么要在 Nacos 3.0 的教程里提这个因为 MCP Registry 的验证动作本质是“Agent 通过 Router 找到 MCP Server再调用工具返回结果”。这个链路里Agent 背后必须有一个能理解工具描述、决定调哪个工具的模型。你可以在 Cline、Cursor 里配 Nacos-MCP-Router同时把模型 Base URL 指向 TaoToken 的 API这样 MCP 的发现和模型推理就在同一个调试环境里完成。具体来说TaoToken 提供三件套Base URL 填 https://taotoken.net/api API Key 在 API Keys 页面生成Model ID 在模型对话页面能看到当前可用的模型列表。这三样在 Cline 的 MCP 配置和模型配置里都要用到。如果你用的是 Claude Code接入文档里有对应的环境变量写法把 ANTHROPIC_BASE_URL 指向 TaoToken 的 ClaudeCodeAnthropic 入口即可。需要提醒的是TaoToken 在这里的角色是模型调用入口不是 Nacos 的替代品。Nacos 管服务注册发现和配置TaoToken 管模型推理两者通过 MCP 协议串起来。你不需要把 Nacos 的密钥配到 TaoToken 里也不需要把 TaoToken 的 Key 写进 Nacos 的 MCP 元数据各管各的。3. 可复制配置Nacos 3.0 Docker 启动与 MCP 注册这一节给可直接复制的配置片段。先启动 Nacos 3.0再注册一个 MCP Server最后配 Nacos-MCP-Router。3.1 Docker 启动 Nacos 3.0Nacos 3.0 默认开启鉴权启动前必须设置两个环境变量。NACOS_AUTH_TOKEN 是生成 JWT Token 的密钥要求原串 32 位以上再做 Base64 编码NACOS_AUTH_IDENTITY_VALUE 是服务端之间 Inner API 的身份标识值任意英文数字组合即可。export NACOS_AUTH_TOKEN$(echo -n YourSecretKeyMustBeLongerThan32Chars | base64) export NACOS_AUTH_IDENTITY_VALUEnacosIdentity2024 docker run -td \ -e PREFER_HOST_MODEhostname \ -e MODEstandalone \ -e NACOS_AUTH_IDENTITY_KEYserverIdentity \ -e NACOS_AUTH_IDENTITY_VALUE${NACOS_AUTH_IDENTITY_VALUE} \ -e NACOS_AUTH_TOKEN${NACOS_AUTH_TOKEN} \ -p 8080:8080 \ -p 8848:8848 \ -p 9848:9848 \ nacos/nacos-server启动后访问 http://localhost:8080 第一次进控制台会要求设置管理员密码。注意 3.0 的控制台端口是 8080引擎端口还是 88489848 是 gRPC 端口。如果你从 2.x 升上来防火墙规则要加上 8080。3.2 Spring AI 构建 MCP Server 自动注册如果你用 Spring AI 写 MCP Server把官方 starter 换成 Spring AI Alibaba 的 Nacos 版本不用改代码就能自动注册到 Nacos。!-- 将 Spring AI 官方 Mcp Server Starter 替换成 Spring AI Alibaba Mcp Nacos -- dependency groupIdcom.alibaba.cloud.ai/groupId artifactIdspring-ai-alibaba-mcp-nacos/artifactId version1.0.0-M6.2-mcp-SNAPSHOT/version /dependency !-- WebMvc SSE和 WebFlux 模式二选一 -- dependency groupIdorg.springframework.ai/groupId artifactIdspring-ai-mcp-server-webmvc-spring-boot-starter/artifactId version1.0.0-M6/version /dependencyapplication.yml 里加上 Nacos 连接信息spring: ai: mcp: server: name: Demo version: 1.0.0 type: SYNC alibaba: mcp: nacos: enabled: true server-addr: 127.0.0.1:8848 username: nacos password: 你设置的管理员密码启动后 MCP Server 会自动注册到 Nacos在控制台的 MCP 管理页能看到改描述和工具列表实时生效。3.3 Python 构建 MCP Server 自动注册Python 侧装 nacos-mcp-wrapper-python把官方的 Server 类换成 NacosMCP# server.py from nacos_mcp_wrapper.server.nacos_mcp import NacosMCP from nacos_mcp_wrapper.server.nacos_settings import NacosSettings nacos_settings NacosSettings() nacos_settings.SERVER_ADDR 127.0.0.1:8848 mcp NacosMCP(Demo, nacos_settingsnacos_settings) mcp.tool() def get_weather(city_name: str) - str: Get weather information by city name return Sunny mcp.run()pip install nacos-mcp-wrapper-python python server.py3.4 Nacos-MCP-Router 配置到 ClineNacos-MCP-Router 是标准 MCP Server配到 Cline 或 Cursor 的 mcpServers 里。环境要求 Python 3.12 和 uv。{ mcpServers: { nacos-mcp-router: { command: uvx, args: [ nacos-mcp-routerlatest ], env: { NACOS_ADDR: 127.0.0.1:8848, NACOS_USERNAME: nacos, NACOS_PASSWORD: 你设置的管理员密码 } } } }这里的三件套是Base URL 指向 Nacos 地址Key 是 Nacos 用户名密码Model ID 在 Cline 的模型配置里指向 TaoToken 的模型。Cline 的模型配置里 Base URL 填 https://taotoken.net/api API Key 填 TaoToken 生成的 KeyModel ID 填你在模型对话页看到的模型名。4. 验证请求MCP 发现与调用链路跑通配置写完得验证链路真的通。分三步Nacos 控制台确认 MCP 注册成功Router 能搜到 MCP ServerAgent 能调用工具返回结果。第一步打开 Nacos 控制台 http://localhost:8080 进 MCP 管理页应该能看到刚才注册的 Demo 服务。点进去看 Tools 列表get_weather 应该在列。如果看不到说明 MCP Server 没注册成功回去检查 server-addr 和用户名密码。第二步在 Cline 里看 Nacos-MCP-Router 的 Tools 列表。安装成功后Cline 会显示 Router 暴露的工具通常包括 search_mcp_server、add_mcp_server 这类。如果 Tools 列表是空的说明 Router 没连上 Nacos检查 NACOS_ADDR 格式是不是 IP:Port。第三步发一个自然语言请求比如“帮我查一下北京天气”。Agent 会先调 Router 的搜索工具Router 返回可用的 MCP Server 列表Agent 选中 get_weather 对应的 ServerRouter 自动安装或代理最后返回结果。整个过程 Agent 只配了 Router 一个 MCP Server其他都是动态发现的。验证成功的标志是Cline 的对话里能看到工具调用记录先 search再 add再 call最后返回“Sunny”。如果卡在某一步看 Cline 的 MCP 日志通常能看到具体报错。这里有个细节Nacos-MCP-Router 的搜索是基于向量数据库做语义匹配的所以你的 MCP 描述写得越清楚匹配越准。如果搜不到先检查 MCP 服务的描述字段是不是太模糊。5. 本篇常见错排查401、local proxy failed、reading choices升级 Nacos 3.0 和配 MCP 的过程中几个报错出现频率最高逐个说。401 Unauthorized。Nacos 3.0 默认开鉴权如果你用 2.x 的客户端连 3.0或者 Docker 启动时没传 NACOS_AUTH_TOKEN就会 401。检查两点Docker 环境变量是不是都传了客户端的 username/password 是不是控制台设置的那个。另外 NACOS_AUTH_TOKEN 必须是 Base64 编码后的字符串直接传原文会报错。local proxy failed。这个通常出现在 Cline 配 Nacos-MCP-Router 的时候。原因是 uvx 命令找不到或者 Python 版本低于 3.12。先在终端跑uvx --version确认 uv 装了再跑python --version确认版本。如果 uvx 装了但 Cline 里起不来把 command 字段改成 uvx 的全路径默认在~/.local/bin/uvx。reading choices 报错。这个多出现在模型调用侧Agent 发请求给模型返回体里没有 choices 字段。检查 TaoToken 的 Base URL 是不是 https://taotoken.net/api 注意结尾不要多加斜杠也不要写成 https://taotoken.net/api/v1 这种。Model ID 要跟模型对话页列出的完全一致大小写敏感。OAuth 相关报错。如果你用 Claude Code 接入报 OAuth 失败检查 ANTHROPIC_BASE_URL 是不是指向 TaoToken 的 ClaudeCodeAnthropic 入口API Key 是不是在 API Keys 页面生成的。Claude Code 的配置在接入文档里有完整示例照着改环境变量就行。MCP Server 注册后控制台看不到。先确认 Nacos 控制台的命名空间对不对MCP 注册默认在 public 命名空间。再看 MCP Server 日志有没有报连接超时。如果 Nacos 跑在 Docker 里MCP Server 跑在宿主机server-addr 不能写 localhost要写宿主机的局域网 IP。Router 搜不到已注册的 MCP Server。检查 MCP 服务的描述字段语义搜索依赖描述文本。另外确认 Router 的 NACOS_ADDR 和 MCP Server 注册的 Nacos 是同一个实例。如果 Nacos 开了鉴权Router 的 NACOS_USERNAME 和 NACOS_PASSWORD 必须填。6. 升级评估与后续动作Nacos 3.0 的升级路径我的建议是分两步走。第一步先在测试环境用 Docker 起一个 3.0 实例把现有的配置和服务数据导进去验证客户端兼容性。2.x 的客户端连 3.0 引擎基本兼容但控制台端口从 8848 变成 8080运维脚本要改。第二步如果你要做 AI Agent 相关的东西再开 MCP Registry 的功能把存量 API 通过 Higress 转成 MCP Server或者用 Spring AI、Python SDK 注册新的 MCP Server。安全零信任这块3.0 默认开鉴权是好事但升级前要确认你的客户端都支持传用户名密码。如果有些老客户端不支持要么升级客户端要么在 Nacos 侧做兼容配置。控制台和引擎拆端口之后ACL 可以只把 8080 开给办公网8848 留给内网服务这个改动对安全提升很明显。生态链接方面K8s 的 Service、ConfigMap、Secret 同步用 Nacos Controller 2.0多语言 SDK 按你的技术栈选。Nacos MCP Server 目前是 0.1.1 版本支持服务、配置的查询和检索写入功能还没开适合做运维辅助不适合生产写入。后续动作上如果你要长期做 AI Agent 和 MCP 编排可以看 TaoToken 的 Coding Plan https://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_contentcoding_plan 把模型调用和 MCP 调试放在一个环境里。接入文档在 https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_contentdoc API Keys 在 https://taotoken.net/api-keys?utm_sourcetaotoken_aicg_blog_endutm_contentapi_keys 。先把 Nacos 3.0 跑起来再把 Router 配上最后用模型对话验证工具调用这条链路走通一次后面加 MCP Server 就是重复动作了。
阅读完成 · 觉得有帮助?
咨询建站