V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
heqingpan
V2EX  ›  程序员

r-nacos 支持 mcp,内置 mcp server 与接口转发;支持让注册到 r-nacos 的普通 http 接口通过 r-nacos 直接转化成 mcp 服务对外提供服务。

  •  
  •   heqingpan · 3 天前 · 700 次点击

    r-nacos 支持 mcp ,内置 mcp server 与接口转发;支持让注册到 r-nacos 的普通 http 接口通过 r-nacos 直接转化成 mcp 服务对外提供服务。

    适用场景

    如果你有一个或多个普通应用之前已经接入 nacos/r-nacos 注册中心,想提供 mcp 服务给 ai code agent 或自定义 agent 使用。使用 r-nacos 不用修改应用代码,只需要在控制台配置对应的 mcp 服务,即可对外提供 mcp 服务。

    如果应用已经使用 mcp sdk 提供服务的应用,但它因状态问题只支持单实例使用。你想要支持集群部署,也可能考虑使用 r-nacos 。

    如果之前没有注册到 r-naocs ,也可以考虑先把应用注册到 r-nacos 再使用 r-nacos 中间件服务。 r-naocs 兼容 nacos 协议,支持多种不多语言的 nacos sdk ,接入很方便。

    功能说明

    1. 支持在控制台页面管理 mcp 工具与服务; mcp 服务支持版本管理,发布的版本与编辑的版本可独立维护,历史版本可快速恢复。
    2. mcp 服务同时支持 mcp sse 协议与 mcp streamable-http 协议(推荐使用);
    3. 内置 mcp 服务,支持 mcp 调用转发,支持多种 http 参数调用:原 json 参数调用、json 转化为 form 参数调用,json 转化为 url 参数调用;
    4. mcp 转发高性能:单机压测 streamable-http ,其 qps 可达 29350 ;( sse 有状态,暂时没有合适的工具压测;理论上多一些集群内部转发信息处理,大概也能超过 1.5 万)
    5. 支持集群调用,即支持同一个 session 多次请求打到不同的 r-nacos 节点;r-nacos 内部通过现有的集群通信能力支持把请求路由到对应的节点处理。

    架构

    001_20250915082157

    使用说明

    1. 部署运行 r-nacos

    使用支持 mcp 服务的 v0.7.x 版本,具体的请参考 r-nacos 部署说明文档

    2. 创建 MCP 工具规格

    工具规格定义就是提供给大模型的工具描述。 这部分与具体的实现无关,即同一个工具规格,可以有不同的具体实现。 同时一个工具可以被多个 MCP 服务关联,这也是单独管理 MCP 工具规格的主要原因。

    给大模型(openai)单个工具样例如下:

    {
        "type": "function",
        "function": {
            "name": "add",
            "description": "add",
            "parameters": {
                "type": "object",
                "properties": {
                    "a": {
                        "type": "number",
                        "description": "the first number"
                    },
                    "b": {
                        "type": "number",
                        "description": "the second number"
                    }
                },
                "required": [
                    "a",
                    "b"
                ]
            }
        }
    }
    

    其中除掉具体格式主要内容有 3 个字段name,description,parameters 。 外加上 r-nacos 管理需要的分组命名空间、分组信息,r-nacos 中一个工具规格有 5 个字段。

    详情页如下:

    002_20250915010800

    3. 创建 MCP 服务

    一个 mcp 服务可有关联一组同命名空间的工具。 为了支持工具调用每个工具除了规格还需要配置对应的调用路由信息。

    MCP 服务信息如下:

    003_20250915012133

    编辑单个工具窗口:

    004_20250915012310

    注册工具对应的服务到 r-nacos

    上面的工具路由对应的服务可参考项目自带的测试工程 python calculate-apirust calculate-api

    注:调用工具前,需要把路由对应的应用启动并注册到 r-nacos 中

    服务使用

    创建好服务后,使用以下 mcp 地址即可对外提供服务。

    Streamable HTTP:
    http://{nacos_api_host}/rnacos/mcp/{server_unique_key}/{auth_key}
    SSE:
    http://{nacos_api_host}/rnacos/mcp/sse/{server_unique_key}/{auth_key} 
    

    样例:

    Streamable:  http://127.0.0.1:8848/rnacos/mcp/calculate/123456
    SSE:  http://127.0.0.1:8848/rnacos/mcp/sse/calculate/123456
    

    验证使用方式

    可用官方工具,在终端运行npx @modelcontextprotocol/inspector,然后在浏览器中查看、调用验证工具。

    005_20250915083046

    也可以在其它如 claude code ,roo code ,opencode 或自定义等 agent 中配置 mcp 使用。


    项目地址:r-nacos , 如果对你有帮助可以给项目一个小星星 :-)

    目前尚无回复
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5686 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 39ms · UTC 02:06 · PVG 10:06 · LAX 19:06 · JFK 22:06
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.