Español
Documentación
Servidores MCP

Servidores MCP

Agrega herramientas MCP locales y remotas.

Puedes agregar herramientas externas a OpenCode usando el Model Context Protocol, o MCP. OpenCode admite tanto servidores locales como remotos.

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


Advertencias

Cuando usas un servidor MCP, este se suma al contexto. Esto puede acumularse rápidamente si tienes muchas herramientas. Por eso recomendamos tener cuidado con qué servidores MCP usas.

Consejo: Los servidores MCP se suman a tu contexto, así que conviene tener cuidado con cuáles habilitas.

Algunos servidores MCP, como el servidor MCP de GitHub, tienden a agregar muchos tokens y pueden superar fácilmente el límite de contexto.


Habilitar

Puedes definir servidores MCP en tu Config de OpenCode (opens in a new tab) bajo mcp. Agrega cada MCP con un nombre único. Puedes referirte a ese MCP por su nombre al darle instrucciones 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 en false. Esto es útil si quieres deshabilitar temporalmente un servidor sin eliminarlo de tu configuración.


Anular los valores predeterminados remotos

Las organizaciones pueden proporcionar servidores MCP predeterminados mediante su endpoint .well-known/opencode. Estos servidores pueden estar deshabilitados de forma predeterminada, lo que permite a los usuarios optar por los que necesitan.

Para habilitar un servidor específico de la configuración remota de tu organización, agrégalo 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
    }
  }
}

Los valores de tu configuración local anulan los valores predeterminados remotos. Consulta precedencia de configuración para más detalles.


Local

Agrega servidores MCP locales usando type con valor "local" dentro del objeto MCP.

opencode.jsonc
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "my-local-mcp-server": {
      "type": "local",
      // Or ["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, así puedes agregar 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 agregar use the mcp_everything tool a mis prompts.

use the mcp_everything tool to add the number 3 and 4

Opciones

Estas son todas las opciones para configurar un servidor MCP local.

OpciónTipoObligatorioDescripción
typeStringYTipo de conexión del servidor MCP, debe ser "local".
commandArrayYComando y argumentos para ejecutar el servidor MCP.
environmentObjectVariables de entorno que se establecen al ejecutar el servidor.
enabledBooleanHabilita o deshabilita el servidor MCP al iniciar.
timeoutNumberTiempo de espera en ms para obtener las herramientas del servidor MCP. Predeterminado 5000 (5 segundos).

Remoto

Agrega servidores MCP remotos estableciendo type en "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"
      }
    }
  }
}

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


Opciones

OpciónTipoObligatorioDescripción
typeStringYTipo de conexión del servidor MCP, debe ser "remote".
urlStringYURL del servidor MCP remoto.
enabledBooleanHabilita o deshabilita el servidor MCP al iniciar.
headersObjectCabeceras que se envían con la solicitud.
oauthObjectConfiguración de autenticación OAuth. Consulta la sección de OAuth a continuación.
timeoutNumberTiempo de espera en ms para obtener las herramientas del servidor MCP. Predeterminado 5000 (5 segundos).

OAuth

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

  1. Detecta la respuesta 401 e inicia el flujo de OAuth
  2. Usa Dynamic Client Registration (RFC 7591) si el servidor lo admite
  3. Almacena los tokens de forma segura para futuras solicitudes

Automática

Para la mayoría de los servidores MCP habilitados con OAuth, no se necesita una 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 la primera vez que intentes usarlo. Si no, puedes activar manualmente el flujo con opencode mcp auth <server-name>.


Pre-registrada

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 administrar las credenciales.

Autentícate con un servidor MCP específico:

opencode mcp auth my-oauth-server

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

opencode mcp list

Elimina las credenciales almacenadas:

opencode mcp logout my-oauth-server

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


Deshabilitar OAuth

Si quieres deshabilitar el OAuth automático para un servidor (p. ej., para servidores que usan claves de API en su lugar), establece oauth en 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 de OAuth

OpciónTipoDescripción
oauthObject | falseObjeto de configuración de OAuth, o false para deshabilitar la autodetección de 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 de OAuth a solicitar durante la autorización.

Depuración

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

# View auth status for all OAuth-capable servers
opencode mcp auth list
 
# Debug connection and OAuth flow for a specific server
opencode mcp debug my-oauth-server

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


Administrar

Tus MCP están disponibles como herramientas en OpenCode, junto con las herramientas integradas. Por lo tanto, puedes administrarlos mediante 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 MCP 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 MCP.


Por agente

Si tienes una gran cantidad de servidores MCP, es posible que quieras habilitarlos solo por agente y deshabilitarlos globalmente. Para hacerlo:

  1. Deshabilítalo como herramienta de forma global.
  2. En tu config 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 de regex simples:

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

Nota: Las herramientas de 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 se muestran ejemplos de algunos servidores MCP comunes. Puedes enviar un PR si quieres documentar otros servidores.


Sentry

Agrega el servidor MCP de Sentry (opens in a new tab) para interactuar con tus proyectos e incidencias de Sentry.

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

Después de agregar la configuración, autentícate con Sentry:

opencode mcp auth sentry

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

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

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

Context7

Agrega el servidor MCP de Context7 (opens in a new tab) para buscar en la 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 obtener una cuenta gratuita, puedes usar tu clave de 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.

Agrega 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

Como alternativa, puedes agregar algo como esto a tu AGENTS.md.

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

Grep by Vercel

Agrega 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 a nuestro servidor MCP gh_grep, puedes agregar 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

Como alternativa, puedes agregar 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.