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

3 天前
 heqingpan

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 内部通过现有的集群通信能力支持把请求路由到对应的节点处理。

架构

使用说明

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 个字段。

详情页如下:

3. 创建 MCP 服务

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

MCP 服务信息如下:

编辑单个工具窗口:

注册工具对应的服务到 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,然后在浏览器中查看、调用验证工具。

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


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

744 次点击
所在节点    程序员
0 条回复

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1159191

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX