[alibaba/higress]MCP Server Plugin 配置不生效,请求直接转发至后端upstream server

2025-11-04 879 views
8

在后台的/user2接口中添加如下MCP配置。

server:
  name: "random-user-server"
tools:
- description: "Get random user information"
  name: "get-user"
  requestTemplate:
    method: "GET"
    url: "/api/"
  responseTemplate:
    body: |-
      # User Information
      {{- with (index .results 0) }}
      - **Name**: {{.name.first}} {{.name.last}}
      - **Email**: {{.email}}
      - **Location**: {{.location.city}}, {{.location.country}}
      - **Phone**: {{.phone}}
      {{- end }}

之后使用MCP Inspector加载该user2地址,发现MCP配置没有生效,反而直接将请求转发至后端Server中了。

环境

Higress 版本: v2.1.0 all-in-one, Higress配置中添加了/user前缀为MCP Server

回答

8

higress-config怎么配置的

8

higress-config怎么配置的

apiVersion: v1
kind: ConfigMap
metadata:
  name: higress-config
  namespace: higress-system
  creationTimestamp: "2000-01-01T00:00:00Z"
  resourceVersion: "1"
data:
  higress: |-
    mcpServer:
      sse_path_suffix: /sse  # SSE 连接的路径后缀
      enable: true          # 启用 MCP Server
      redis:
        address: redis:6379 # Redis服务地址
        username: "" # Redis用户名(可选)
        password: "" # Redis密码(可选)
        db: 0 # Redis数据库(可选)
      match_list:          # MCP Server 会话保持路由规则(当匹配下面路径时,将被识别为一个 MCP 会话,通过 SSE 等机制进行会话保持)
        - match_rule_domain: "*"
          match_rule_path: /mcp
          match_rule_type: "prefix"
        - match_rule_domain: "*"
          match_rule_path: /user
          match_rule_type: "prefix"
      servers: []
    downstream:
      connectionBufferLimits: 32768
      http2:
        initialConnectionWindowSize: 1048576
        initialStreamWindowSize: 65535
        maxConcurrentStreams: 100
      idleTimeout: 180
      maxRequestHeadersKb: 60
      routeTimeout: 0
    upstream:
      connectionBufferLimits: 10485760
      idleTimeout: 10
4

address: redis:6379 这个地址确定是通的吗?all-in-one 镜像可以改成用 latest 的再试一下。

如果还不行的话,可以重启一下容器然后提供容器里 /var/log/higress/gateway.log 文件的完整内容。

6

拉取最新的镜像然后重新部署后解决该问题。现在关掉该issue