Español
Documentación
Servidores MCP

Servidores MCP

Añade herramientas MCP locales y remotas.

Puedes añadir herramientas externas a OpenCode usando el Model Context Protocol, o MCP. OpenCode soporta tanto servidores locales como remotos.

Una vez añadidas, las herramientas MCP están automáticamente disponibles para el LLM junto con las herramientas integradas.


Advertencias

Cuando usas un servidor MCP, se añade al contexto. Esto puede acumularse rápidamente si tienes muchas herramientas. Por eso recomendamos ser cuidadoso con qué servidores MCP usas.

Los servidores MCP se añaden a tu contexto, así que debes ser cuidadoso con cuáles habilitas.

Ciertos servidores MCP, como el servidor MCP de GitHub, tienden a añadir muchos tokens y pueden exceder fácilmente el límite de contexto.


Habilitar

Puedes definir servidores MCP en tu Configuración de OpenCode bajo mcp. Añade cada MCP con un nombre único. Puedes referirte a ese MCP por nombre cuando hagas prompts al LLM.

opencode.jsonc
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "name-of-mcp-server": {
      // ...
      "enabled": true,
    },
    "name-of-other-mcp-server": {
      // ...
    },
  },
}

También puedes deshabilitar un servidor estableciendo enabled a false. Esto es útil si quieres deshabilitar temporalmente un servidor sin eliminarlo de tu configuración.


Sobrescribir valores remotos por defecto

Las organizaciones pueden proporcionar servidores MCP por defecto a través de su endpoint .well-known/opencode. Estos servidores pueden estar deshabilitados por defecto, permitiendo a los usuarios optar por los que necesitan.

Para habilitar un servidor específico de la configuración remota de tu organización, añádelo a tu configuración local con enabled: true:

opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "jira": {
      "type": "remote",
      "url": "https://jira.example.com/mcp",
      "enabled": true
    }
  }
}

Tus valores de configuración local sobrescriben los valores remotos por defecto. Consulta precedencia de configuración para más detalles.


Local

Añade servidores MCP locales usando type como "local" dentro del objeto MCP.

opencode.jsonc
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "my-local-mcp-server": {
      "type": "local",
      // O ["bun", "x", "my-mcp-command"]
      "command": ["npx", "-y", "my-mcp-command"],
      "enabled": true,
      "environment": {
        "MY_ENV_VAR": "my_env_var_value",
      },
    },
  },
}

El comando es cómo se inicia el servidor MCP local. También puedes pasar una lista de variables de entorno.

Por ejemplo, aquí está cómo puedes añadir el servidor MCP de prueba @modelcontextprotocol/server-everything (opens in a new tab).

opencode.jsonc
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "mcp_everything": {
      "type": "local",
      "command": ["npx", "-y", "@modelcontextprotocol/server-everything"],
    },
  },
}

Y para usarlo puedo añadir use the mcp_everything tool a mis prompts.

use the mcp_everything tool to add the number 3 and 4

Opciones

Aquí están todas las opciones para configurar un servidor MCP local.

OpciónTipoRequeridoDescripción
typeStringTipo de conexión del servidor MCP, debe ser "local".
commandArrayComando y argumentos para ejecutar el servidor MCP.
environmentObjectVariables de entorno a establecer al ejecutar el servidor.
enabledBooleanHabilitar o deshabilitar el servidor MCP al inicio.
timeoutNumberTiempo de espera en ms para obtener herramientas del servidor MCP. Por defecto 5000 (5 segundos).

Remoto

Añade servidores MCP remotos estableciendo type a "remote".

opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "my-remote-mcp": {
      "type": "remote",
      "url": "https://my-mcp-server.com",
      "enabled": true,
      "headers": {
        "Authorization": "Bearer MY_API_KEY"
      }
    }
  }
}

La url es la URL del servidor MCP remoto y con la opción headers puedes pasar una lista de cabeceras.


Opciones

OpciónTipoRequeridoDescripción
typeStringTipo de conexión del servidor MCP, debe ser "remote".
urlStringURL del servidor MCP remoto.
enabledBooleanHabilitar o deshabilitar el servidor MCP al inicio.
headersObjectCabeceras a enviar con la solicitud.
oauthObjectConfiguración de autenticación OAuth. Ver sección OAuth abajo.
timeoutNumberTiempo de espera en ms para obtener herramientas del servidor MCP. Por defecto 5000 (5 segundos).

OAuth

OpenCode maneja automáticamente la autenticación OAuth para servidores MCP remotos. Cuando un servidor requiere autenticación, OpenCode:

  • Detecta la respuesta 401 e inicia el flujo OAuth
  • Usa Dynamic Client Registration (RFC 7591) si el servidor lo soporta
  • Almacena tokens de forma segura para futuras solicitudes

Automático

Para la mayoría de servidores MCP habilitados con OAuth, no se necesita configuración especial. Solo configura el servidor remoto:

opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "my-oauth-server": {
      "type": "remote",
      "url": "https://mcp.example.com/mcp"
    }
  }
}

Si el servidor requiere autenticación, OpenCode te pedirá que te autentiques cuando intentes usarlo por primera vez. Si no, puedes activar manualmente el flujo con opencode mcp auth <server-name>.


Pre-registrado

Si tienes credenciales de cliente del proveedor del servidor MCP, puedes configurarlas:

opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "my-oauth-server": {
      "type": "remote",
      "url": "https://mcp.example.com/mcp",
      "oauth": {
        "clientId": "{env:MY_MCP_CLIENT_ID}",
        "clientSecret": "{env:MY_MCP_CLIENT_SECRET}",
        "scope": "tools:read tools:execute"
      }
    }
  }
}

Autenticación

Puedes activar manualmente la autenticación o gestionar credenciales.

Autenticarse con un servidor MCP específico:

opencode mcp auth my-oauth-server

Listar todos los servidores MCP y su estado de autenticación:

opencode mcp list

Eliminar credenciales almacenadas:

opencode mcp logout my-oauth-server

El comando mcp auth abrirá tu navegador para autorización. Después de autorizar, OpenCode almacenará los tokens de forma segura en ~/.local/share/opencode/mcp-auth.json.


Deshabilitar OAuth

Si quieres deshabilitar OAuth automático para un servidor (por ejemplo, para servidores que usan claves API), establece oauth a false:

opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "my-api-key-server": {
      "type": "remote",
      "url": "https://mcp.example.com/mcp",
      "oauth": false,
      "headers": {
        "Authorization": "Bearer {env:MY_API_KEY}"
      }
    }
  }
}

Opciones OAuth

OpciónTipoDescripción
oauthObject | falseObjeto de configuración OAuth, o false para deshabilitar la auto-detección OAuth.
clientIdStringID de cliente OAuth. Si no se proporciona, se intentará el registro dinámico de cliente.
clientSecretStringSecreto de cliente OAuth, si lo requiere el servidor de autorización.
scopeStringScopes OAuth a solicitar durante la autorización.

Depuración

Si un servidor MCP remoto falla al autenticarse, puedes diagnosticar problemas con:

# Ver estado de autenticación para todos los servidores con OAuth
opencode mcp auth list
 
# Depurar conexión y flujo OAuth para un servidor específico
opencode mcp debug my-oauth-server

El comando mcp debug muestra el estado actual de autenticación, prueba la conectividad HTTP e intenta el flujo de descubrimiento OAuth.


Gestionar

Tus MCPs están disponibles como herramientas en OpenCode, junto con las herramientas integradas. Así que puedes gestionarlos a través de la configuración de OpenCode como cualquier otra herramienta.


Global

Esto significa que puedes habilitarlos o deshabilitarlos globalmente.

opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "my-mcp-foo": {
      "type": "local",
      "command": ["bun", "x", "my-mcp-command-foo"]
    },
    "my-mcp-bar": {
      "type": "local",
      "command": ["bun", "x", "my-mcp-command-bar"]
    }
  },
  "tools": {
    "my-mcp-foo": false
  }
}

También podemos usar un patrón glob para deshabilitar todos los MCPs coincidentes.

opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "my-mcp-foo": {
      "type": "local",
      "command": ["bun", "x", "my-mcp-command-foo"]
    },
    "my-mcp-bar": {
      "type": "local",
      "command": ["bun", "x", "my-mcp-command-bar"]
    }
  },
  "tools": {
    "my-mcp*": false
  }
}

Aquí estamos usando el patrón glob my-mcp* para deshabilitar todos los MCPs.


Por agente

Si tienes un gran número de servidores MCP, puede que quieras habilitarlos solo por agente y deshabilitarlos globalmente. Para hacer esto:

  • Deshabilítalo como herramienta globalmente.
  • En tu configuración de agente, habilita el servidor MCP como herramienta.
opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "my-mcp": {
      "type": "local",
      "command": ["bun", "x", "my-mcp-command"],
      "enabled": true
    }
  },
  "tools": {
    "my-mcp*": false
  },
  "agent": {
    "my-agent": {
      "tools": {
        "my-mcp*": true
      }
    }
  }
}

Patrones glob

El patrón glob usa patrones de globbing regex simples:

  • * coincide con cero o más de cualquier carácter (por ejemplo, "my-mcp*" coincide con my-mcp_search, my-mcp_list, etc.)
  • ? coincide exactamente con un carácter
  • Todos los demás caracteres coinciden literalmente

Las herramientas del servidor MCP se registran con el nombre del servidor como prefijo, así que para deshabilitar todas las herramientas de un servidor simplemente usa:

"mymcpservername_*": false

Ejemplos

A continuación hay ejemplos de algunos servidores MCP comunes. Puedes enviar un PR si quieres documentar otros servidores.


Sentry

Añade el servidor MCP de Sentry (opens in a new tab) para interactuar con tus proyectos e issues de Sentry.

opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "sentry": {
      "type": "remote",
      "url": "https://mcp.sentry.dev/mcp",
      "oauth": {}
    }
  }
}

Después de añadir la configuración, autentícate con Sentry:

opencode mcp auth sentry

Esto abrirá una ventana del navegador para completar el flujo OAuth y conectar OpenCode a tu cuenta de Sentry.

Una vez autenticado, puedes usar las herramientas de Sentry en tus prompts para consultar issues, proyectos y datos de errores.

Show me the latest unresolved issues in my project. use sentry

Context7

Añade el servidor MCP de Context7 (opens in a new tab) para buscar en documentación.

opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "context7": {
      "type": "remote",
      "url": "https://mcp.context7.com/mcp"
    }
  }
}

Si te has registrado para una cuenta gratuita, puedes usar tu clave API y obtener límites de tasa más altos.

opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "context7": {
      "type": "remote",
      "url": "https://mcp.context7.com/mcp",
      "headers": {
        "CONTEXT7_API_KEY": "{env:CONTEXT7_API_KEY}"
      }
    }
  }
}

Aquí asumimos que tienes la variable de entorno CONTEXT7_API_KEY establecida.

Añade use context7 a tus prompts para usar el servidor MCP de Context7.

Configure a Cloudflare Worker script to cache JSON API responses for five minutes. use context7

Alternativamente, puedes añadir algo como esto a tu AGENTS.md.

AGENTS.md
When you need to search docs, use `context7` tools.

Grep by Vercel

Añade el servidor MCP de Grep by Vercel (opens in a new tab) para buscar fragmentos de código en GitHub.

opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "gh_grep": {
      "type": "remote",
      "url": "https://mcp.grep.app"
    }
  }
}

Como nombramos nuestro servidor MCP gh_grep, puedes añadir use the gh_grep tool a tus prompts para que el agente lo use.

What's the right way to set a custom domain in an SST Astro component? use the gh_grep tool

Alternativamente, puedes añadir algo como esto a tu AGENTS.md.

AGENTS.md
If you are unsure how to do something, use `gh_grep` to search code examples from GitHub.