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.
{
"$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:
{
"$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.
{
"$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).
{
"$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 4Opciones
Estas son todas las opciones para configurar un servidor MCP local.
| Opción | Tipo | Obligatorio | Descripción |
|---|---|---|---|
type | String | Y | Tipo de conexión del servidor MCP, debe ser "local". |
command | Array | Y | Comando y argumentos para ejecutar el servidor MCP. |
environment | Object | Variables de entorno que se establecen al ejecutar el servidor. | |
enabled | Boolean | Habilita o deshabilita el servidor MCP al iniciar. | |
timeout | Number | Tiempo de espera en ms para obtener las herramientas del servidor MCP. Predeterminado 5000 (5 segundos). |
Remoto
Agrega servidores MCP remotos estableciendo type en "remote".
{
"$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ón | Tipo | Obligatorio | Descripción |
|---|---|---|---|
type | String | Y | Tipo de conexión del servidor MCP, debe ser "remote". |
url | String | Y | URL del servidor MCP remoto. |
enabled | Boolean | Habilita o deshabilita el servidor MCP al iniciar. | |
headers | Object | Cabeceras que se envían con la solicitud. | |
oauth | Object | Configuración de autenticación OAuth. Consulta la sección de OAuth a continuación. | |
timeout | Number | Tiempo 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:
- Detecta la respuesta 401 e inicia el flujo de OAuth
- Usa Dynamic Client Registration (RFC 7591) si el servidor lo admite
- 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:
{
"$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:
{
"$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-serverLista todos los servidores MCP y su estado de autenticación:
opencode mcp listElimina las credenciales almacenadas:
opencode mcp logout my-oauth-serverEl 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:
{
"$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ón | Tipo | Descripción |
|---|---|---|
oauth | Object | false | Objeto de configuración de OAuth, o false para deshabilitar la autodetección de OAuth. |
clientId | String | ID de cliente OAuth. Si no se proporciona, se intentará el registro dinámico de cliente. |
clientSecret | String | Secreto de cliente OAuth, si lo requiere el servidor de autorización. |
scope | String | Scopes 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-serverEl 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.
{
"$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.
{
"$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:
- Deshabilítalo como herramienta de forma global.
- En tu config de agente , habilita el servidor MCP como herramienta.
{
"$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 conmy-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.
{
"$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 sentryEsto 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 sentryContext7
Agrega el servidor MCP de Context7 (opens in a new tab) para buscar en la documentación.
{
"$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.
{
"$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 context7Como alternativa, puedes agregar algo como esto a tu 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.
{
"$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 toolComo alternativa, puedes agregar algo como esto a tu AGENTS.md.
If you are unsure how to do something, use `gh_grep` to search code examples from GitHub.