La función de conector del Protocolo de Contexto de Modelo (MCP) de Claude te permite conectarte a servidores MCP remotos directamente desde la API de Messages sin un cliente MCP separado.

Esta función requiere el encabezado beta: "anthropic-beta": "mcp-client-2025-04-04"

Características clave

  • Integración directa de API: Conéctate a servidores MCP sin implementar un cliente MCP
  • Soporte para llamadas de herramientas: Accede a herramientas MCP a través de la API de Messages
  • Autenticación OAuth: Soporte para tokens Bearer OAuth para servidores autenticados
  • Múltiples servidores: Conéctate a múltiples servidores MCP en una sola solicitud

Limitaciones

  • Del conjunto de características de la especificación MCP, solo las llamadas de herramientas están actualmente soportadas.
  • El servidor debe estar expuesto públicamente a través de HTTP (soporta tanto transportes HTTP Streamable como SSE). Los servidores STDIO locales no pueden conectarse directamente.
  • El conector MCP actualmente no está soportado en Amazon Bedrock y Google Vertex.

Usando el conector MCP en la API de Messages

Para conectarte a un servidor MCP remoto, incluye el parámetro mcp_servers en tu solicitud de la API de Messages:

curl https://api.anthropic.com/v1/messages \
  -H "Content-Type: application/json" \
  -H "X-API-Key: $ANTHROPIC_API_KEY" \
  -H "anthropic-version: 2023-06-01" \
  -H "anthropic-beta: mcp-client-2025-04-04" \
  -d '{
    "model": "claude-sonnet-4-20250514",
    "max_tokens": 1000,
    "messages": [{"role": "user", "content": "What tools do you have available?"}],
    "mcp_servers": [
      {
        "type": "url",
        "url": "https://example-server.modelcontextprotocol.io/sse",
        "name": "example-mcp",
        "authorization_token": "YOUR_TOKEN"
      }
    ]
  }'

Configuración del servidor MCP

Cada servidor MCP en el array mcp_servers soporta la siguiente configuración:

{
  "type": "url",
  "url": "https://example-server.modelcontextprotocol.io/sse",
  "name": "example-mcp",
  "tool_configuration": {
    "enabled": true,
    "allowed_tools": ["example_tool_1", "example_tool_2"]
  },
  "authorization_token": "YOUR_TOKEN"
}

Descripciones de campos

PropiedadTipoRequeridoDescripción
typestringActualmente solo “url” está soportado
urlstringLa URL del servidor MCP. Debe comenzar con https://
namestringUn identificador único para este servidor MCP. Se usará en bloques mcp_tool_call para identificar el servidor y para desambiguar herramientas al modelo.
tool_configurationobjectNoConfigurar el uso de herramientas
tool_configuration.enabledbooleanNoSi habilitar herramientas de este servidor (por defecto: true)
tool_configuration.allowed_toolsarrayNoLista para restringir las herramientas a permitir (por defecto, todas las herramientas están permitidas)
authorization_tokenstringNoToken de autorización OAuth si es requerido por el servidor MCP. Ver especificación MCP.

Tipos de contenido de respuesta

Cuando Claude usa herramientas MCP, la respuesta incluirá dos nuevos tipos de bloques de contenido:

Bloque de Uso de Herramienta MCP

{
  "type": "mcp_tool_use",
  "id": "mcptoolu_014Q35RayjACSWkSj4X2yov1",
  "name": "echo",
  "server_name": "example-mcp",
  "input": { "param1": "value1", "param2": "value2" }
}

Bloque de Resultado de Herramienta MCP

{
  "type": "mcp_tool_result",
  "tool_use_id": "mcptoolu_014Q35RayjACSWkSj4X2yov1",
  "is_error": false,
  "content": [
    {
      "type": "text",
      "text": "Hello"
    }
  ]
}

Múltiples servidores MCP

Puedes conectarte a múltiples servidores MCP incluyendo múltiples objetos en el array mcp_servers:

{
  "model": "claude-sonnet-4-20250514",
  "max_tokens": 1000,
  "messages": [
    {
      "role": "user",
      "content": "Use tools from both mcp-server-1 and mcp-server-2 to complete this task"
    }
  ],
  "mcp_servers": [
    {
      "type": "url",
      "url": "https://mcp.example1.com/sse",
      "name": "mcp-server-1",
      "authorization_token": "TOKEN1"
    },
    {
      "type": "url",
      "url": "https://mcp.example2.com/sse",
      "name": "mcp-server-2",
      "authorization_token": "TOKEN2"
    }
  ]
}

Autenticación

Para servidores MCP que requieren autenticación OAuth, necesitarás obtener un token de acceso. La beta del conector MCP soporta pasar un parámetro authorization_token en la definición del servidor MCP. Se espera que los consumidores de la API manejen el flujo OAuth y obtengan el token de acceso antes de hacer la llamada a la API, así como refrescar el token según sea necesario.

Obteniendo un token de acceso para pruebas

El inspector MCP puede guiarte a través del proceso de obtener un token de acceso para propósitos de prueba.

  1. Ejecuta el inspector con el siguiente comando. Necesitas Node.js instalado en tu máquina.

    npx @modelcontextprotocol/inspector
    
  2. En la barra lateral de la izquierda, para “Tipo de transporte”, selecciona “SSE” o “Streamable HTTP”.

  3. Ingresa la URL del servidor MCP.

  4. En el área derecha, haz clic en el botón “Open Auth Settings” después de “Need to configure authentication?”.

  5. Haz clic en “Quick OAuth Flow” y autoriza en la pantalla OAuth.

  6. Sigue los pasos en la sección “OAuth Flow Progress” del inspector y haz clic en “Continue” hasta llegar a “Authentication complete”.

  7. Copia el valor access_token.

  8. Pégalo en el campo authorization_token en tu configuración del servidor MCP.

Usando el token de acceso

Una vez que hayas obtenido un token de acceso usando cualquiera de los flujos OAuth anteriores, puedes usarlo en tu configuración del servidor MCP:

{
  "mcp_servers": [
    {
      "type": "url",
      "url": "https://example-server.modelcontextprotocol.io/sse",
      "name": "authenticated-server",
      "authorization_token": "YOUR_ACCESS_TOKEN_HERE"
    }
  ]
}

Para explicaciones detalladas del flujo OAuth, consulta la sección de Autorización en la especificación MCP.