Todos los productos
Search
Centro de documentos

Container Service for Kubernetes:Desplegar un MCP Server en Knative

Última actualización: Oct 13, 2026

Aloje un servidor de Model Context Protocol (MCP) en Knative para aprovechar su arquitectura serverless. Esta arquitectura ofrece escalado automático bajo demanda y procesamiento basado en eventos para los servicios de IA.

Cómo funciona

A continuación se muestra el flujo de trabajo que describe cómo una aplicación de IA en Knative utiliza MCP para interactuar con herramientas externas.

image
  1. Inicio de la solicitud: un usuario envía un comando a un agente de IA. El cliente MCP integrado del agente genera una solicitud estandarizada de llamada a herramientas y la transmite mediante Server-Sent Events (SSE) o HTTP.

    Knative no es compatible con servidores MCP que utilizan el protocolo de transporte stdio.
  2. Gestión y ejecución del servicio: el servicio de Knative recibe la solicitud HTTP, la enruta a una instancia de MCP Server y escala automáticamente según la carga.

    Para construir su propio MCP Server, consulte el SDK de MCP Server o FastMCP . También puede encontrar implementaciones existentes en el repositorio de GitHub de MCP Server .
  3. Respuesta con el resultado: el MCP Server devuelve el resultado de la tarea al agente de IA, que luego envía la respuesta final al usuario.

Requisitos previos

Ya desplegó Knative en el clúster. Para obtener más información, consulte Deploy and manage Knative components.

Paso 1: Desplegar el MCP Server

En esta sección, desplegará un MCP Server para planificar viajes en China (Hangzhou). Este servidor agrupa las funciones de planificación de viajes, búsqueda de vuelos, reserva de hoteles y pronóstico del clima en herramientas estandarizadas que los agentes de IA pueden invocar.

  1. Cree el archivo mcp-server.yaml.

    En el siguiente ejemplo se define un servicio de Knative que extrae la imagen de muestra del MCP Server.
    apiVersion: serving.knative.dev/v1
    kind: Service
    metadata:
      name: helloworld-go
      namespace: default
    spec:
      template:
        spec:
          containers:
            - env:
                - name: TARGET
                  value: Knative
              # Replace {region} in the image address with your actual region ID, such as cn-hangzhou
              image: >-
                registry-{region}-vpc.ack.aliyuncs.com/acs/knative-samples-mcp-trip:v1.0-6b9fc59
              name: user-container
  2. Cree el servicio de Knative.

    kubectl apply -f mcp-server.yaml

Paso 2: Acceder al servicio

Una vez desplegado el servicio, envíe una solicitud MCP para comprobar que funciona correctamente.

  1. En la página Services, obtenga los valores de Gateway y Default Domain del servicio.

    En este ejemplo, el valor de Gateway corresponde a una dirección de Application Load Balancer (ALB), como alb-xxx.aliyuncsslb.com. El valor de Default Domain del servicio helloworld-go es helloworld-go.default.example.com.

  2. Acceda al servicio helloworld-go.

    Reemplace helloworld-go.default.example.com por su nombre de dominio real y <GATEWAY_IP> por la dirección de su gateway.

    Este comando envía una solicitud tools/list al servicio para listar todas las herramientas compatibles.
    curl -H "Host: helloworld-go.default.example.com" http://<GATEWAY_IP>/mcp -H "Content-Type: application/json" \
      -d '{
        "jsonrpc": "2.0",
        "id": "1",
        "method": "tools/list",
        "params": {}
      }' | jq .

    El comando devuelve una respuesta JSON formateada que contiene la lista de herramientas proporcionadas por el MCP Server.

    Salida esperada

    {
      "jsonrpc": "2.0",
      "id": "1",
      "result": {
        "tools": [
          {
            "annotations": {
              "readOnlyHint": false,
              "destructiveHint": true,
              "idempotentHint": false,
              "openWorldHint": true
            },
            "description": "Book a hotel near West Lake in China (Hangzhou)",
            "inputSchema": {
              "type": "object",
              "properties": {
                "check_in": {
                  "description": "Check-in date (YYYY-MM-DD)",
                  "type": "string"
                },
                "guests": {
                  "description": "Number of guests",
                  "type": "number"
                },
                "nights": {
                  "description": "Number of nights",
                  "type": "number"
                }
              },
              "required": [
                "check_in",
                "guests",
                "nights"
              ]
            },
            "name": "book_hotel"
          },
          {
            "annotations": {
              "readOnlyHint": false,
              "destructiveHint": true,
              "idempotentHint": false,
              "openWorldHint": true
            },
            "description": "Get the weather forecast for the next several days in China (Hangzhou) to prepare for the trip",
            "inputSchema": {
              "type": "object",
              "properties": {
                "date_start": {
                  "description": "Start date (YYYY-MM-DD)",
                  "type": "string"
                },
                "days": {
                  "description": "Number of forecast days",
                  "type": "number"
                }
              },
              "required": [
                "date_start",
                "days"
              ]
            },
            "name": "get_weather_forecast"
          },
          {
            "annotations": {
              "readOnlyHint": false,
              "destructiveHint": true,
              "idempotentHint": false,
              "openWorldHint": true
            },
            "description": "Generate a detailed multi-day travel itinerary for China (Hangzhou), including daily attractions, cuisine, and cultural experiences",
            "inputSchema": {
              "type": "object",
              "properties": {
                "days": {
                  "description": "Number of travel days (1-7)",
                  "maximum": 7,
                  "minimum": 1,
                  "type": "number"
                }
              },
              "required": [
                "days"
              ]
            },
            "name": "plan_hangzhou_trip"
          },
          {
            "annotations": {
              "readOnlyHint": false,
              "destructiveHint": true,
              "idempotentHint": false,
              "openWorldHint": true
            },
            "description": "Search for flight information to China (Hangzhou)",
            "inputSchema": {
              "type": "object",
              "properties": {
                "date": {
                  "description": "Departure date (YYYY-MM-DD)",
                  "type": "string"
                },
                "origin": {
                  "description": "Departure city (for example, Beijing, Shanghai)",
                  "type": "string"
                }
              },
              "required": [
                "origin",
                "date"
              ]
            },
            "name": "search_flights"
          }
        ]
      }
    }

Facturación

El complemento de Knative no genera cargos adicionales. Sin embargo, cada producto en la nube cobra por los recursos de cómputo, de red y otros recursos que usted consuma. Para obtener más información, consulte Cloud resource costs.