Saltearse al contenido

Servidores MCP

Agrega herramientas MCP locales y remotas.

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

Una vez agregadas, las herramientas MCP estan automaticamente disponibles para el LLM junto con las herramientas integradas.


Advertencias

Cuando usas un servidor MCP, agrega al contexto. Esto puede sumarse rapidamente si tienes muchas herramientas. Por lo tanto, recomendamos tener cuidado con los servidores MCP que usas.

Ciertos servidores MCP, como el servidor MCP de GitHub, tienden a agregar muchos tokens y pueden exceder facilmente el limite del contexto.


Habilitar

Puedes definir servidores MCP en tu Configuracion de OpenCode bajo mcp. Agrega cada MCP con un nombre unico. Puedes referirte a ese MCP por nombre cuando solicites 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 desactivar un servidor configurando enabled en false. Esto es util si deseas desactivar temporalmente un servidor sin eliminarlo de tu configuracion.


Anular valores predeterminados remotos

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

Para habilitar un servidor especifico desde la configuracion remota de tu organizacion, agregalo a tu configuracion 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 configuracion local anulan los valores predeterminados remotos. Consulta precedencia de configuracion para mas detalles.


Local

Agrega servidores MCP locales usando type en "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 como se inicia el servidor MCP local. Tambien puedes pasar una lista de variables de entorno.

Por ejemplo, aqui esta como puedes agregar el servidor MCP de prueba @modelcontextprotocol/server-everything.

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

Aquí estan todas las opciones para configurar un servidor MCP local.

OptionTypeRequiredDescription
typeStringYTipo de conexion MCP, debe ser "local".
commandArrayYComando y argumentos para ejecutar el servidor MCP.
environmentObjectVariables de entorno para 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

Agrega servidores MCP remotos configurando 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"
}
}
}
}

La url es la URL del servidor MCP remoto y con la opcion headers puedes pasar una lista de encabezados.


Opciones

OptionTypeRequiredDescription
typeStringYTipo de conexion MCP, debe ser "remote".
urlStringYURL del servidor MCP remoto.
enabledBooleanHabilitar o deshabilitar el servidor MCP al inicio.
headersObjectEncabezados para enviar con la solicitud.
oauthObjectConfiguracion de autenticacion OAuth. Consulta la seccion OAuth a continuacion.
timeoutNumberTiempo de espera en ms para obtener herramientas del servidor MCP. Por defecto 5000 (5 segundos).

OAuth

OpenCode maneja automaticamente la autenticacion OAuth para servidores MCP remotos. Cuando un servidor requiere autenticacion, OpenCode:

  1. Detectara la respuesta 401 e iniciara el flujo OAuth
  2. Usara el Registro dinamico de cliente (RFC 7591) si es compatible con el servidor
  3. Almacenara tokens de forma segura para solicitudes futuras

Automatico

Para la mayoria de servidores MCP compatibles con OAuth, no se necesita configuracion especial. Simplemente 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 autenticacion, OpenCode te solicitara 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"
}
}
}
}

Autenticacion

Puedes activar manualmente la autenticacion o administrar credenciales.

Autenticate con un servidor MCP especifico:

Ventana de terminal
opencode mcp auth my-oauth-server

Listar todos los servidores MCP y su estado de autenticacion:

Ventana de terminal
opencode mcp list

Eliminar credenciales almacenadas:

Ventana de terminal
opencode mcp logout my-oauth-server

El comando mcp auth abrira tu navegador para autorizacion. Despues de autorizar, OpenCode almacenara los tokens de forma segura en ~/.local/share/opencode/mcp-auth.json.


Desactivar OAuth

Si deseas desactivar OAuth automatico para un servidor (por ejemplo, para servidores que usan claves API en su lugar), configura 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

OptionTypeDescription
oauthObject | falseObjeto de configuracion OAuth o false para desactivar la deteccion automatica de OAuth.
clientIdStringID de cliente OAuth. Si no se proporciona, se intentara el registro dinamico de cliente.
clientSecretStringSecreto de cliente OAuth, si lo requiere el servidor de autorizacion.
scopeStringAlcances OAuth a solicitar durante la autorizacion.

Depuracion

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

Ventana de terminal
# Ver estado de autenticacion para todos los servidores compatibles con OAuth
opencode mcp auth list
# Depurar conexion y flujo OAuth para un servidor especifico
opencode mcp debug my-oauth-server

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


Administrar

Tus MCP estan disponibles como herramientas en OpenCode, junto con las herramientas integradas. Asi que puedes administrarlos a traves de la configuracion 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
}
}

Tambien podemos usar un patron glob para deshabilitar todos los MCP que coincidan.

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
}
}

Aqui estamos usando el patron glob my-mcp* para deshabilitar todos los MCP.


Por agente

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

  1. Desactivalo como herramienta globalmente.
  2. En tu configuracion 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 patron glob usa patrones simples de globbing de regex:

  • * coincide con cero o mas caracteres (por ejemplo, "my-mcp*" coincide con my-mcp_search, my-mcp_list, etc.)
  • ? coincide exactamente con un caracter
  • Todos los demas caracteres coinciden literalmente

Ejemplos

A continuacion se presentan ejemplos de algunos servidores MCP comunes. Puedes enviar un PR si deseas documentar otros servidores.


Sentry

Agrega el servidor MCP de Sentry para interactuar con tus proyectos y problemas de Sentry.

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

Despues de agregar la configuracion, autenticate con Sentry:

Ventana de terminal
opencode mcp auth sentry

Esto abrira una ventana del navegador para completar el flujo OAuth y conectar OpenCode con tu cuenta de Sentry.

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

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

Context7

Agrega el servidor MCP de Context7 para buscar en la documentacion.

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 limites de velocidad mas 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}"
}
}
}
}

Aqui asumimos que tienes la variable de entorno CONTEXT7_API_KEY configurada.

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

Alternativamente, 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 Grep by Vercel para buscar en fragmentos de codigo en GitHub.

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

Dado que nombramos 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

Alternativamente, 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.