ConfiguraciónMCP

MCP

Bob Shell admite el Model Context Protocol (MCP), que te permite extender las capacidades de Bob conectándote a servicios y herramientas externos.

¿Qué es MCP?

Un servidor MCP (Model Context Protocol) actúa como un puente entre Bob y servicios externos como bases de datos, APIs o scripts personalizados. Con MCP, puedes extender las capacidades de Bob más allá de sus funciones integradas.

Los servidores MCP proporcionan a Bob:

  • Descubrimiento de herramientas: Acceso a herramientas disponibles con sus descripciones y parámetros
  • Invocación de herramientas: La capacidad de invocar herramientas específicas con argumentos y recibir respuestas estructuradas
  • Acceso a recursos: La capacidad de leer datos de recursos específicos

Beneficios de MCP

  • Extender funcionalidad: Agregar capacidades personalizadas a Bob que no están disponibles por defecto
  • Integrar con servicios: Conectar Bob con tus bases de datos, APIs y otros sistemas
  • Automatizar flujos de trabajo: Crear herramientas especializadas para tus necesidades específicas
  • Compartir capacidades: Distribuir herramientas útiles en tu equipo

Configurar servidores MCP

Puedes gestionar configuraciones de servidor MCP en dos niveles:

  1. Configuración global: La configuración en <USER_HOME>/.bob/mcp_settings.json se aplica a todos los espacios de trabajo
  2. Configuración a nivel de proyecto: La configuración en .bob/mcp.json se aplica solo al proyecto actual

Cuando un nombre de servidor existe tanto en configuraciones globales como de proyecto, la configuración a nivel de proyecto tiene precedencia.

Editar archivos de configuración MCP

Usa Bob IDE u otro editor de texto para modificar tus archivos de configuración MCP.

El siguiente ejemplo muestra una configuración básica de servidor Stdio:

{
  "mcpServers": {
    "server1": {
      "command": "python",
      "args": ["/path/to/server.py"],
      "env": {
        "API_KEY": "your_api_key"
      },
      "alwaysAllow": ["tool1", "tool2"],
      "disabled": false
    }
  }
}

Propiedades de configuración

Cada configuración de servidor requiere una de estas propiedades:

  • command: Ruta al ejecutable para transporte stdio
  • url: URL de endpoint SSE para servidores remotos
  • httpURL: URL de endpoint HTTP para transporte HTTP de streaming

Las propiedades opcionales incluyen:

  • args: Argumentos de línea de comandos para transporte stdio
  • headers: Encabezados HTTP personalizados para transporte SSE
  • env: Variables de entorno para el proceso del servidor
  • cwd: Directorio de trabajo para transporte stdio
  • timeout: Tiempo de espera de solicitud en milisegundos (predeterminado: 600,000 ms / 10 minutos)
  • alwaysAllow: Nombres de herramientas para aprobar automáticamente. Bob Shell lee estas entradas de mcp.json y las aplica al inicio de cada tarea, de modo que las herramientas listadas no requieren aprobación.
  • disabled: Establecer en true para deshabilitar el servidor

Tipos de transporte

MCP admite tres formas de comunicarse con servidores:

Transporte Stdio

El transporte Stdio ejecuta servidores localmente en tu computadora:

  • Usa flujos de entrada/salida estándar para comunicación
  • Proporciona menor latencia y mejor seguridad
  • Se ejecuta como un proceso hijo en tu computadora

Configuración de ejemplo:

{
 "mcpServers": {
   "local-server": {
     "command": "node",
     "args": ["server.js"],
     "cwd": "/path/to/project",
     "env": {
       "API_KEY": "your_api_key"
     },
     "alwaysAllow": ["tool1", "tool2"]
   }
 }
}

Transporte SSE

El transporte SSE se conecta a servidores remotos a través de HTTP/HTTPS:

  • Usa protocolo Server-Sent Events
  • Funciona con servidores alojados en diferentes computadoras
  • Requiere acceso a la red

Configuración de ejemplo:

{
 "mcpServers": {
   "remote-server": {
     "url": "https://your-server-url.com/mcp",
     "headers": {
       "Authorization": "Bearer your-token"
     },
     "alwaysAllow": ["tool3"]
   }
 }
}

Transporte HTTP de streaming

El transporte HTTP de streaming se conecta a servidores remotos mediante HTTP:

  • Utiliza una conexión HTTP bidireccional
  • Admite tanto mensajes de solicitud/respuesta como mensajes enviados por el servidor
  • Funciona con servidores alojados en diferentes máquinas

Configuración de ejemplo:

{
 "mcpServers": {
   "remote-server": {
     "httpURL": "https://your-server-url.com/mcp"
   }
 }
}

Ejemplos específicos de plataforma

Configuración de Windows

{
  "mcpServers": {
    "puppeteer": {
      "command": "cmd",
      "args": [
        "/c",
        "npx",
        "-y",
        "@modelcontextprotocol/server-puppeteer"
      ]
    }
  }
}

Configuración de macOS y Linux

{
  "mcpServers": {
    "puppeteer": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-puppeteer"
      ]
    }
  }
}

Configuración de gestor de versiones de runtime

Al usar gestores de versiones como asdf o mise:

{
  "mcpServers": {
    "mcp-batchit": {
      "command": "mise",
      "args": [
        "x",
        "--",
        "node",
        "/Users/myself/workspace/mcp-batchit/build/index.js"
      ],
      "alwaysAllow": [
        "search",
        "batch_execute"
      ]
    }
  }
}
¿Cómo es este tema?