90 90
91Al configurar servidores MCP a través de JSON en `.mcp.json`, `~/.claude.json`, o `claude mcp add-json`, el campo `type` acepta `streamable-http` como alias para `http`. La especificación MCP utiliza el nombre `streamable-http` para este transporte, por lo que las configuraciones copiadas de la documentación del servidor funcionan sin modificación.91Al configurar servidores MCP a través de JSON en `.mcp.json`, `~/.claude.json`, o `claude mcp add-json`, el campo `type` acepta `streamable-http` como alias para `http`. La especificación MCP utiliza el nombre `streamable-http` para este transporte, por lo que las configuraciones copiadas de la documentación del servidor funcionan sin modificación.
92 92
93Una entrada JSON que tiene una `url` pero no tiene `type` es un error de configuración, porque Claude Code lee una entrada sin `type` como un servidor stdio. Claude Code omite ese servidor e informa `MCP server "<name>" has a "url" but no "type"; add "type": "http" (or "sse" / "ws") to this entry`. Antes de v2.1.202, Claude Code informaba esta configuración incorrecta como `command: expected string, received undefined`.93Una entrada JSON que tiene una `url` pero sin `type` es un error de configuración, porque Claude Code lee una entrada sin `type` como un servidor stdio. Claude Code omite ese servidor e informa `MCP server "<name>" has a "url" but no "type"; add "type": "http" (or "sse" / "ws") to this entry`. Antes de v2.1.202, Claude Code informaba esta configuración incorrecta como `command: expected string, received undefined`.
94 94
95Solo una aplicación host del SDK, como una aplicación [Agent SDK](/docs/es/agent-sdk/mcp) o la [aplicación de escritorio](/docs/es/desktop), puede registrar un servidor `"type": "sdk"` en proceso. Claude Code omite una entrada `"type": "sdk"` en `.mcp.json`, `~/.claude.json`, o configuración e informa `Skipped — MCP server "<name>" declares type "sdk", which only an SDK host application can register`.95Solo una aplicación host SDK, como una aplicación [Agent SDK](/docs/es/agent-sdk/mcp) o la [aplicación de escritorio](/docs/es/desktop), puede registrar un servidor `"type": "sdk"` en proceso. Claude Code omite una entrada `"type": "sdk"` en `.mcp.json`, `~/.claude.json`, o configuración e informa `Skipped — MCP server "<name>" declares type "sdk", which only an SDK host application can register`.
96 96
97En ejecuciones `--output-format stream-json`, Claude Code también informa una entrada `--mcp-config` omitida en el campo [`mcp_server_errors`](/docs/es/headless#stream-responses) del evento `system/init`, para que los scripts puedan detectar que el servidor nunca se cargó. Esto requiere Claude Code v2.1.219 o posterior.97En ejecuciones `--output-format stream-json`, Claude Code también informa una entrada `--mcp-config` omitida en el campo [`mcp_server_errors`](/docs/es/headless#stream-responses) del evento `system/init`, para que los scripts puedan detectar que el servidor nunca se cargó. Esto requiere Claude Code v2.1.219 o posterior.
98 98
101</h3>101</h3>
102 102
103<Warning>103<Warning>
104 El transporte SSE (Server-Sent Events) está deprecado. Utilice servidores HTTP en su lugar, cuando estén disponibles.104 El transporte SSE (Server-Sent Events) está deprecado. Use servidores HTTP en su lugar, cuando estén disponibles.
105</Warning>105</Warning>
106 106
107Algunos servicios aún exponen solo un punto final SSE. Agréguelos con el mismo comando `claude mcp add --transport http <name> <url>` que [un servidor HTTP](#option-1-add-a-remote-http-server). Claude Code intenta el transporte HTTP primero y cambia a SSE cuando el servidor no lo acepta. El cambio automático requiere Claude Code v2.1.265 o posterior.107Algunos servicios aún exponen solo un punto final SSE. Agréguelos con el mismo comando `claude mcp add --transport http <name> <url>` que [un servidor HTTP](#option-1-add-a-remote-http-server). Claude Code intenta el transporte HTTP primero y cambia a SSE cuando el servidor no lo acepta. El cambio automático requiere Claude Code v2.1.265 o posterior.
128 128
129Claude Code establece `CLAUDE_PROJECT_DIR` en el entorno del servidor generado a la raíz del proyecto, para que su servidor pueda resolver rutas relativas al proyecto sin depender del directorio de trabajo. Este es el mismo directorio que los hooks reciben en su variable `CLAUDE_PROJECT_DIR`. Léalo desde dentro de su proceso de servidor, por ejemplo `process.env.CLAUDE_PROJECT_DIR` en Node o `os.environ["CLAUDE_PROJECT_DIR"]` en Python.129Claude Code establece `CLAUDE_PROJECT_DIR` en el entorno del servidor generado a la raíz del proyecto, para que su servidor pueda resolver rutas relativas al proyecto sin depender del directorio de trabajo. Este es el mismo directorio que los hooks reciben en su variable `CLAUDE_PROJECT_DIR`. Léalo desde dentro de su proceso de servidor, por ejemplo `process.env.CLAUDE_PROJECT_DIR` en Node o `os.environ["CLAUDE_PROJECT_DIR"]` en Python.
130 130
131`CLAUDE_PROJECT_DIR` es la raíz del proyecto estable y no cambia cuando agrega o elimina directorios de trabajo a mitad de sesión. Un servidor que limita su propio acceso al sistema de archivos a un conjunto de directorios permitidos debe implementar la solicitud MCP `roots/list` en su lugar. Claude Code responde `roots/list` con el directorio de lanzamiento de la sesión más cada [directorio de trabajo adicional](/docs/es/permissions#working-directories) que haya otorgado con `--add-dir`, `/add-dir`, o la configuración `additionalDirectories`. Claude Code envía `notifications/roots/list_changed` cuando ese conjunto cambia. Antes de v2.1.203, `roots/list` devolvía solo el directorio de lanzamiento y Claude Code no enviaba `notifications/roots/list_changed`.131`CLAUDE_PROJECT_DIR` es la raíz del proyecto estable y no cambia cuando agrega o elimina directorios de trabajo a mitad de sesión. Un servidor que limita su propio acceso al sistema de archivos a un conjunto de directorios permitidos debe implementar la solicitud MCP `roots/list` en su lugar. Claude Code responde `roots/list` con el directorio de lanzamiento de la sesión más cada [directorio de trabajo adicional](/docs/es/permissions#working-directories) que ha otorgado con `--add-dir`, `/add-dir`, o la configuración `additionalDirectories`. Claude Code envía `notifications/roots/list_changed` cuando ese conjunto cambia. Antes de v2.1.203, `roots/list` devolvía solo el directorio de lanzamiento y Claude Code no enviaba `notifications/roots/list_changed`.
132 132
133Esta variable se establece en el entorno del servidor, no en el entorno propio de Claude Code, por lo que hacer referencia a ella a través de la expansión `${VAR}` en el `command` o `args` de una entrada `.mcp.json` con alcance de proyecto o una entrada de servidor local o de usuario en `~/.claude.json` requiere un valor predeterminado como `${CLAUDE_PROJECT_DIR:-.}`. Las configuraciones MCP proporcionadas por plugins sustituyen `${CLAUDE_PROJECT_DIR}` directamente y no necesitan el valor predeterminado.133Esta variable se establece en el entorno del servidor, no en el entorno propio de Claude Code, por lo que hacer referencia a ella a través de la expansión `${VAR}` en el `command` o `args` de una entrada `.mcp.json` con alcance de proyecto o una entrada de servidor local o usuario en `~/.claude.json` requiere un valor predeterminado como `${CLAUDE_PROJECT_DIR:-.}`. Las configuraciones MCP proporcionadas por plugins sustituyen `${CLAUDE_PROJECT_DIR}` directamente y no necesitan el valor predeterminado.
134 134
135```bash theme={null}135```bash theme={null}
136# Sintaxis básica136# Sintaxis básica
142```142```
143 143
144<Note>144<Note>
145 **Importante: Separar argumentos del servidor con `--`**145 **Importante: Separe los argumentos del servidor con `--`**
146 146
147 Para servidores stdio, el `--` (doble guión) separa las opciones propias de Claude, como `--transport`, `--env`, y `--scope`, del comando y argumentos que ejecutan el servidor. Todo lo que viene después de `--` se pasa al servidor sin modificación.147 Para servidores stdio, el `--` (doble guión) separa las opciones propias de Claude, como `--transport`, `--env`, y `--scope`, del comando y argumentos que ejecutan el servidor. Todo lo que viene después de `--` se pasa al servidor sin cambios.
148 148
149 Por ejemplo:149 Por ejemplo:
150 150
153 153
154 Sin `--`, Claude Code intentaría analizar las banderas del servidor, como `--port` arriba, como sus propias opciones.154 Sin `--`, Claude Code intentaría analizar las banderas del servidor, como `--port` arriba, como sus propias opciones.
155 155
156 `--env` acepta múltiples pares `KEY=value`. Si el nombre del servidor viene directamente después de `--env`, la CLI lee el nombre como otro par y lo rechaza, por lo que debe colocar al menos otra opción, como `--transport stdio`, entre `--env` y el nombre del servidor.156 `--env` acepta múltiples pares `KEY=value`. Si el nombre del servidor viene directamente después de `--env`, la CLI lee el nombre como otro par y lo rechaza, así que coloque al menos otra opción, como `--transport stdio`, entre `--env` y el nombre del servidor.
157</Note>157</Note>
158 158
159<h3 id="option-4-add-a-remote-websocket-server">159<h3 id="option-4-add-a-remote-websocket-server">
160 Opción 4: Agregar un servidor WebSocket remoto160 Opción 4: Agregar un servidor WebSocket remoto
161</h3>161</h3>
162 162
163Los servidores WebSocket mantienen una conexión bidireccional persistente, que es adecuada para servidores MCP remotos que envían eventos a Claude sin ser solicitados. Utilice HTTP en su lugar cuando su servidor solo responda a solicitudes, ya que HTTP admite OAuth y la bandera `claude mcp add --transport`, mientras que WebSocket no admite ninguno de los dos.163Los servidores WebSocket mantienen una conexión bidireccional persistente, que es adecuada para servidores MCP remotos que envían eventos a Claude sin ser solicitados. Use HTTP en su lugar cuando su servidor solo responda a solicitudes, ya que HTTP admite OAuth y la bandera `claude mcp add --transport`, mientras que WebSocket no admite ninguno de los dos.
164 164
165Configure servidores WebSocket en `.mcp.json` o con `claude mcp add-json`:165Configure servidores WebSocket en `.mcp.json` o con `claude mcp add-json`:
166 166
169 '{"type":"ws","url":"wss://mcp.example.com/socket","headers":{"Authorization":"Bearer YOUR_TOKEN"}}'169 '{"type":"ws","url":"wss://mcp.example.com/socket","headers":{"Authorization":"Bearer YOUR_TOKEN"}}'
170```170```
171 171
172La entrada `type: "ws"` acepta los mismos campos `url`, `headers`, `headersHelper`, `timeout`, y `alwaysLoad` que `http`. La autenticación es solo por encabezado, por lo que pase un token estático en `headers` o genere uno en el momento de la conexión con [`headersHelper`](#use-dynamic-headers-for-custom-authentication). La bandera `claude mcp add --transport` no acepta `ws`.172La entrada `type: "ws"` acepta los mismos campos `url`, `headers`, `headersHelper`, `timeout`, y `alwaysLoad` que `http`. La autenticación es solo por encabezado, así que pase un token estático en `headers` o genere uno en el momento de la conexión con [`headersHelper`](#use-dynamic-headers-for-custom-authentication). La bandera `claude mcp add --transport` no acepta `ws`.
173 173
174<h3 id="add-a-server-from-setup-instructions-written-for-another-client">174<h3 id="add-a-server-from-setup-instructions-written-for-another-client">
175 Agregar un servidor desde instrucciones de configuración escritas para otro cliente175 Agregar un servidor desde instrucciones de configuración escritas para otro cliente
176</h3>176</h3>
177 177
178Los servidores MCP no son específicos de Claude Code, por lo que las instrucciones de configuración de un servidor pueden estar escritas para Claude Desktop, Cursor, u otro cliente MCP y no proporcionar ningún comando `claude mcp add`. Para agregar el servidor de todas formas, busque en esas instrucciones una URL, un comando de lanzamiento, o un bloque JSON:178Los servidores MCP no son específicos de Claude Code, por lo que las instrucciones de configuración de un servidor pueden estar escritas para Claude Desktop, Cursor, u otro cliente MCP y no dar ningún comando `claude mcp add`. Para agregar el servidor de todas formas, busque en esas instrucciones una URL, un comando de lanzamiento, o un bloque JSON:
179 179
180* **Una URL** como `https://mcp.example.com/mcp`: el servidor es remoto.180* **Una URL** como `https://mcp.example.com/mcp`: el servidor es remoto.
181* **Un comando de lanzamiento** como `npx -y @example/mcp-server`: el servidor se ejecuta en su máquina.181* **Un comando de lanzamiento** como `npx -y @example/mcp-server`: el servidor se ejecuta en su máquina.
187 Desde una URL187 Desde una URL
188</h4>188</h4>
189 189
190Una URL significa que el servidor es remoto. Para un punto final `https://`, agréguelo con `--transport http`, o siga [Opción 2](#option-2-add-a-remote-sse-server) cuando las instrucciones digan que el punto final utiliza SSE. Para un punto final `wss://`, utilice [Opción 4](#option-4-add-a-remote-websocket-server) en su lugar, ya que `--transport` no acepta `ws`:190Una URL significa que el servidor es remoto. Para un punto final `https://`, agréguelo con `--transport http`, o siga [Opción 2](#option-2-add-a-remote-sse-server) cuando las instrucciones digan que el punto final usa SSE. Para un punto final `wss://`, use [Opción 4](#option-4-add-a-remote-websocket-server) en su lugar, ya que `--transport` no acepta `ws`:
191 191
192```bash theme={null}192```bash theme={null}
193claude mcp add --transport http example https://mcp.example.com/mcp193claude mcp add --transport http example https://mcp.example.com/mcp
194```194```
195 195
196Si las instrucciones también proporcionan una clave API o encabezado de token, páselo con `--header` como se muestra en [Opción 1](#option-1-add-a-remote-http-server).196Si las instrucciones también dan una clave API o encabezado de token, páselo con `--header` como se muestra en [Opción 1](#option-1-add-a-remote-http-server).
197 197
198<h4 id="from-an-npx-uvx-or-binary-command">198<h4 id="from-an-npx-uvx-or-binary-command">
199 Desde un comando `npx`, `uvx`, o binario199 Desde un comando `npx`, `uvx`, o binario
200</h4>200</h4>
201 201
202Un comando de lanzamiento significa que el servidor se ejecuta como un proceso stdio local. Coloque todo el comando después de `--`, para que Claude Code pase banderas como `-y` al comando que inicia el servidor en lugar de leerlas como sus propias opciones. Pase cualquier variable de entorno que las instrucciones soliciten con `--env`, después del nombre del servidor y antes de `--`:202Un comando de lanzamiento significa que el servidor se ejecuta como un proceso stdio local. Ponga todo el comando después de `--`, para que Claude Code pase banderas como `-y` al comando que inicia el servidor en lugar de leerlas como sus propias opciones. Pase cualquier variable de entorno que las instrucciones soliciten con `--env`, después del nombre del servidor y antes de `--`:
203 203
204```bash theme={null}204```bash theme={null}
205claude mcp add example --env API_KEY=your-key -- npx -y @example/mcp-server205claude mcp add example --env API_KEY=your-key -- npx -y @example/mcp-server
214Un bloque `mcpServers` escrito para otro cliente MCP, como Claude Desktop, utiliza la clave contenedora y la forma de entrada que Claude Code lee. Pase a `claude mcp add-json` el objeto dentro de `mcpServers`, no el contenedor. Dos entradas necesitan una reparación primero:214Un bloque `mcpServers` escrito para otro cliente MCP, como Claude Desktop, utiliza la clave contenedora y la forma de entrada que Claude Code lee. Pase a `claude mcp add-json` el objeto dentro de `mcpServers`, no el contenedor. Dos entradas necesitan una reparación primero:
215 215
216* **Una `url` sin `type`**: agregue `"type": "http"`, `"type": "sse"`, o `"type": "ws"` para coincidir con el punto final. Claude Code lee una entrada sin `type` como un servidor stdio, por lo que una entrada `url` sin `type` falla.216* **Una `url` sin `type`**: agregue `"type": "http"`, `"type": "sse"`, o `"type": "ws"` para coincidir con el punto final. Claude Code lee una entrada sin `type` como un servidor stdio, por lo que una entrada `url` sin `type` falla.
217* **Una clave con caracteres distintos de letras, números, guiones e guiones bajos**: elija un nombre de servidor que utilice solo esos caracteres. De lo contrario, la clave es el nombre del servidor.217* **Una clave con caracteres distintos de letras, números, guiones e guiones bajos**: elija un nombre de servidor que use solo esos caracteres. De lo contrario, la clave es el nombre del servidor.
218 218
219Por ejemplo, este bloque:219Por ejemplo, este bloque:
220 220
237 237
238[Agregar servidores MCP desde configuración JSON](#add-mcp-servers-from-json-configuration) cubre el escape de shell y la bandera `--scope` para `add-json`. Para compartir el servidor con su equipo en su lugar, agregue `--scope project`, o agregue la entrada bajo `mcpServers` en `.mcp.json` en la raíz de su proyecto y confírmela. [Alcance de proyecto](#project-scope) cubre cómo Claude Code carga y aprueba ese archivo.238[Agregar servidores MCP desde configuración JSON](#add-mcp-servers-from-json-configuration) cubre el escape de shell y la bandera `--scope` para `add-json`. Para compartir el servidor con su equipo en su lugar, agregue `--scope project`, o agregue la entrada bajo `mcpServers` en `.mcp.json` en la raíz de su proyecto y confírmela. [Alcance de proyecto](#project-scope) cubre cómo Claude Code carga y aprueba ese archivo.
239 239
240Cada comando `claude mcp add` y `claude mcp add-json` imprime una línea `Added ...`. Para verificar que Claude Code se conectó, ejecute `claude mcp get <name>`; [Estado del servidor](#server-status) cubre los estados que muestra y el paso de aprobación para servidores `.mcp.json`.240Cada comando `claude mcp add` y `claude mcp add-json` imprime una línea `Added ...` en caso de éxito. Para verificar que Claude Code se conectó, ejecute `claude mcp get <name>`; [Estado del servidor](#server-status) cubre los estados que muestra y el paso de aprobación para servidores `.mcp.json`.
241 241
242<h3 id="managing-your-servers">242<h3 id="managing-your-servers">
243 Administración de sus servidores243 Administración de sus servidores
267 267
268`claude mcp add` confirma una adición exitosa imprimiendo una línea `Added ...`, lo que significa que la configuración se escribió. Si el comando imprime un mensaje `was not saved` en su lugar, consulte [MCP server was not saved or removed](/docs/es/errors#mcp-server-was-not-saved-or-removed); para un mensaje `may not have been saved`, consulte [MCP server may not have been saved or removed](/docs/es/errors#mcp-server-may-not-have-been-saved-or-removed).268`claude mcp add` confirma una adición exitosa imprimiendo una línea `Added ...`, lo que significa que la configuración se escribió. Si el comando imprime un mensaje `was not saved` en su lugar, consulte [MCP server was not saved or removed](/docs/es/errors#mcp-server-was-not-saved-or-removed); para un mensaje `may not have been saved`, consulte [MCP server may not have been saved or removed](/docs/es/errors#mcp-server-may-not-have-been-saved-or-removed).
269 269
270`claude mcp list` muestra un estado de salud junto a cada servidor que enumera, como `✔ Connected`, `! Needs authentication`, o `✘ Failed to connect`. Un estado de falla significa que Claude Code no pudo conectarse a ese servidor, no que el comando list haya fallado.270`claude mcp list` muestra un estado de salud junto a cada servidor que enumera, como `✔ Connected`, `! Needs authentication`, o `✘ Failed to connect`. Un estado de falla significa que Claude Code no pudo conectarse a ese servidor, no que el comando de lista haya fallado.
271 271
272Los estados en esta lista informan una decisión de configuración en lugar de un intento de conexión, por lo que Claude Code los imprime sin conectarse al servidor:272Los estados en esta lista informan una decisión de configuración en lugar de un intento de conexión, por lo que Claude Code los imprime sin conectarse al servidor:
273 273
275* `✘ Rejected (see disabledMcpjsonServers in settings)`: un servidor `.mcp.json` que una entrada [`disabledMcpjsonServers`](/docs/es/settings-reference#disabledmcpjsonservers) rechaza. Claude Code lo muestra solo en `claude mcp get <name>`.275* `✘ Rejected (see disabledMcpjsonServers in settings)`: un servidor `.mcp.json` que una entrada [`disabledMcpjsonServers`](/docs/es/settings-reference#disabledmcpjsonservers) rechaza. Claude Code lo muestra solo en `claude mcp get <name>`.
276* `⊘ Disabled for this project (re-enable via /mcp)`: un servidor que la lista [`disabledMcpServers`](#disable-a-server-without-removing-it) del proyecto nombra. Claude Code lo muestra tanto en `claude mcp list` como en `claude mcp get <name>`. Active el servidor nuevamente desde el panel `/mcp`. Antes de v2.1.238, ambos comandos se conectaban a un servidor deshabilitado para verificar su salud e informaban el resultado de la conexión.276* `⊘ Disabled for this project (re-enable via /mcp)`: un servidor que la lista [`disabledMcpServers`](#disable-a-server-without-removing-it) del proyecto nombra. Claude Code lo muestra tanto en `claude mcp list` como en `claude mcp get <name>`. Active el servidor nuevamente desde el panel `/mcp`. Antes de v2.1.238, ambos comandos se conectaban a un servidor deshabilitado para verificar su salud e informaban el resultado de la conexión.
277 277
278Los servidores WebSocket no aparecen en la salida de `claude mcp list`. Utilice `claude mcp get <name>` o el panel `/mcp` para verificarlos.278Los servidores WebSocket no aparecen en la salida de `claude mcp list`. Use `claude mcp get <name>` o el panel `/mcp` para verificarlos.
279 279
280<h4 id="project-server-approvals-and-workspace-trust">280<h4 id="project-server-approvals-and-workspace-trust">
281 Aprobaciones de servidores de proyecto y confianza del espacio de trabajo281 Aprobaciones de servidores de proyecto y confianza del espacio de trabajo
282</h4>282</h4>
283 283
284A partir de v2.1.196, `claude mcp list` y `claude mcp get` leen aprobaciones `.mcp.json` solo de archivos de configuración que no se registran en el repositorio hasta que confíe en el espacio de trabajo ejecutando `claude` en él y aceptando el diálogo de confianza del espacio de trabajo. Un repositorio clonado no puede aprobar sus propios servidores: [`enableAllProjectMcpServers`](/docs/es/settings-reference#enableallprojectmcpservers) o [`enabledMcpjsonServers`](/docs/es/settings-reference#enabledmcpjsonservers) confirmados en `.claude/settings.json` del proyecto se ignoran en una carpeta no confiable, y el servidor permanece en `⏸ Pending approval` en lugar de estar conectado y verificado de salud.284A partir de v2.1.196, `claude mcp list` y `claude mcp get` leen aprobaciones `.mcp.json` solo de archivos de configuración que no se confirman en el repositorio hasta que confíe en el espacio de trabajo ejecutando `claude` en él y aceptando el diálogo de confianza del espacio de trabajo. Un repositorio clonado no puede aprobar sus propios servidores: [`enableAllProjectMcpServers`](/docs/es/settings-reference#enableallprojectmcpservers) o [`enabledMcpjsonServers`](/docs/es/settings-reference#enabledmcpjsonservers) confirmados en `.claude/settings.json` del proyecto se ignoran en una carpeta no confiable, y el servidor permanece en `⏸ Pending approval` en lugar de estar conectado y verificado de salud.
285 285
286Las aprobaciones de estas fuentes aún se aplican en una carpeta no confiable:286Las aprobaciones de estas fuentes aún se aplican en una carpeta no confiable:
287 287
289* configuración administrada289* configuración administrada
290* configuración pasada con `--settings`290* configuración pasada con `--settings`
291 291
292Claude Code también aplica aprobaciones de un `.claude/settings.local.json` sin seguimiento, pero ejecuta git para verificar si el archivo se rastrea, y ejecuta esa verificación solo en una [carpeta confiable](/docs/es/permissions#project-allow-rules-and-workspace-trust). En una carpeta que nunca ha confiado, Claude Code espera el diálogo de confianza antes de aplicar las aprobaciones del archivo, a menos que la carpeta sea su propio hogar de configuración: su directorio de inicio, o un directorio cuyo `.claude` haya establecido como [`CLAUDE_CONFIG_DIR`](/docs/es/env-vars). Antes de v2.1.207, Claude Code aplicaba aprobaciones de un `.claude/settings.local.json` sin seguimiento incluso en una carpeta que nunca había confiado.292Claude Code también aplica aprobaciones de un `.claude/settings.local.json` sin seguimiento, pero ejecuta git para verificar si el archivo se rastrea, y ejecuta esa verificación solo en una [carpeta confiable](/docs/es/permissions#project-allow-rules-and-workspace-trust). En una carpeta que nunca ha confiado, Claude Code espera el diálogo de confianza antes de aplicar las aprobaciones del archivo, a menos que la carpeta sea su propio hogar de configuración: su directorio de inicio, o un directorio cuyo `.claude` ha establecido como [`CLAUDE_CONFIG_DIR`](/docs/es/env-vars). Antes de v2.1.207, Claude Code aplicaba aprobaciones de un `.claude/settings.local.json` sin seguimiento incluso en una carpeta que nunca había confiado.
293 293
294Una entrada `disabledMcpjsonServers` en cualquier archivo de configuración aún rechaza el servidor.294Una entrada `disabledMcpjsonServers` en cualquier archivo de configuración aún rechaza el servidor.
295 295
297 Detalle del estado del servidor297 Detalle del estado del servidor
298</h4>298</h4>
299 299
300En `/mcp`, incluido el menú de un servidor allí, y en el administrador [`/plugin`](/docs/es/plugins/install), un servidor HTTP o SSE remoto que ha utilizado antes puede mostrar un estado `cached` como `cached 2h ago · connects on first use · 5 tools`. Claude Code cargó la lista de herramientas del servidor desde su caché de descubrimiento, guardado en una sesión anterior, en lugar de conectarse al inicio, y Claude Code conecta el servidor la primera vez que Claude llama a una de las herramientas del servidor. Las herramientas están disponibles desde su primer mensaje, por lo que no necesita hacer nada. El caché de descubrimiento y su estado `cached` requieren Claude Code v2.1.221 o posterior.300En `/mcp`, incluido el menú de un servidor allí, y en el administrador [`/plugin`](/docs/es/plugins/install), un servidor HTTP o SSE remoto que ha usado antes puede mostrar un estado `cached` como `cached 2h ago · connects on first use · 5 tools`. Claude Code cargó la lista de herramientas del servidor desde su caché de descubrimiento, guardado en una sesión anterior, en lugar de conectarse al inicio, y Claude Code conecta el servidor la primera vez que Claude llama a una de las herramientas del servidor. Las herramientas están disponibles desde su primer mensaje, por lo que no necesita hacer nada. El caché de descubrimiento y su estado `cached` requieren Claude Code v2.1.221 o posterior.
301 301
302El caché de descubrimiento está desactivado de forma predeterminada a menos que un lanzamiento gradual lo haya habilitado para su cuenta. Establezca [`MCP_DISCOVERY_CACHE=1`](/docs/es/env-vars) para activarlo, o `0` para mantenerlo desactivado incluso cuando el lanzamiento lo haya habilitado. Antes de v2.1.238, el caché estaba activado de forma predeterminada.302El caché de descubrimiento está desactivado de forma predeterminada a menos que un despliegue gradual lo haya habilitado para su cuenta. Establezca [`MCP_DISCOVERY_CACHE=1`](/docs/es/env-vars) para activarlo, o `0` para mantenerlo desactivado incluso cuando el despliegue lo haya habilitado. Antes de v2.1.238, el caché estaba activado de forma predeterminada.
303 303
304Cuando selecciona **Disable** o **Clear authentication** desde el menú de un servidor en `/mcp`, Claude Code también descarta la entrada de caché de ese servidor. **Reconnect** también la descarta en un servidor conectado o fallido; en un servidor `cached`, **Reconnect** conecta el servidor ahora y mantiene la entrada. La próxima vez que Claude Code se conecte al servidor después de descartar la entrada, obtiene la lista de herramientas del servidor en lugar de del caché.304Cuando selecciona **Disable** o **Clear authentication** desde el menú de un servidor en `/mcp`, Claude Code también descarta la entrada de caché de ese servidor. **Reconnect** también la descarta en un servidor conectado o fallido; en un servidor `cached`, **Reconnect** conecta el servidor ahora y mantiene la entrada. La próxima vez que Claude Code se conecte al servidor después de descartar la entrada, obtiene la lista de herramientas del servidor en lugar del caché.
305 305
306Cuando el estado de un servidor es `✘ Failed to connect`, `claude mcp list` agrega el detalle de falla a esa línea de estado, y `claude mcp get <name>` lo muestra en una línea `Issue:`: el estado HTTP o código de error, más cualquier texto de error que el servidor devolvió. La vista de detalle del servidor en `/mcp` incluye el mismo texto informado por el servidor en su fila `Issue:`. Claude Code redacta texto similar a credenciales de este detalle y nunca incluye la URL del servidor expandida, que puede llevar secretos. Claude Code no agrega detalle a un estado `✘ Connection error`, porque el texto de excepción que imprimiría allí puede incrustar esa URL. Antes de v2.1.219, ambos comandos mostraban solo el estado de falla desnudo, sin el código de estado o el texto de error del servidor.306Cuando el estado de un servidor es `✘ Failed to connect`, `claude mcp list` añade el detalle de falla a esa línea de estado, y `claude mcp get <name>` lo muestra en una línea `Issue:`: el código de estado HTTP o código de error, más cualquier texto de error que el servidor devolvió. La vista de detalle del servidor en `/mcp` incluye el mismo texto informado por el servidor en su fila `Issue:`. Claude Code redacta texto similar a credenciales de este detalle y nunca incluye la URL del servidor expandida, que puede llevar secretos. Claude Code no añade detalle a un estado `✘ Connection error`, porque el texto de excepción que imprimiría allí puede incrustar esa URL. Antes de v2.1.219, ambos comandos mostraban solo el estado de falla desnudo, sin el código de estado o el texto de error del servidor.
307 307
308Cuando completa la autenticación desde `/mcp` y la conexión aún falla con un estado HTTP o un código de error de transporte, Claude Code agrega ese código y el origen de la URL del servidor al mensaje que imprime después del intento. El origen es el esquema y host, más el puerto cuando la URL nombra uno, como `https://mcp.example.com`.308Cuando completa la autenticación desde `/mcp` y la conexión aún falla con un código de estado HTTP o un código de error de transporte, Claude Code añade ese código y el origen de la URL del servidor al mensaje que imprime después del intento. El origen es el esquema y host, más el puerto cuando la URL nombra uno, como `https://mcp.example.com`.
309 309
310* La ruta y consulta nunca aparecen en ese mensaje.310* La ruta y consulta nunca aparecen en ese mensaje.
311* Para un servidor en el [alcance](#mcp-installation-scopes) local, de proyecto o de usuario o en configuración MCP administrada, el origen muestra el host tal como está escrito en esa configuración, por lo que una referencia `${VAR}` en el host no se expande en el mensaje.311* Para un servidor en el [alcance](#mcp-installation-scopes) local, de proyecto, o de usuario o en configuración MCP administrada, el origen muestra el host tal como está escrito en esa configuración, por lo que una referencia `${VAR}` en el host no se expande en el mensaje.
312* Para una falla sin código de estado o de error, Claude Code muestra el texto de error sin el origen.312* Para una falla sin código de estado o código de error, Claude Code muestra el texto de error sin el origen.
313 313
314Un servidor remoto cuya configuración tiene una `url` vacía se muestra como `not configured` en `/mcp`, en `claude mcp list`, y en el administrador [`/plugin`](/docs/es/plugins/install), y Claude Code no intenta conectarse a él. Un plugin puede incluir una entrada de marcador de posición como esta para un conector que configura más tarde, por lo que Claude Code no lo informa como un error o un problema de configuración. La vista de detalle del servidor en `/mcp` lee `No URL configured for this server`; establezca la `url` de la entrada para conectarla. Antes de v2.1.208, Claude Code informaba una `url` vacía como un problema de configuración con un aviso para reconectar.314Un servidor remoto cuya configuración tiene una `url` vacía se muestra como `not configured` en `/mcp`, en `claude mcp list`, y en el administrador [`/plugin`](/docs/es/plugins/install), y Claude Code no intenta conectarse a él. Un plugin puede incluir una entrada de marcador de posición como esta para un conector que configura más tarde, por lo que Claude Code no lo informa como un error o un problema de configuración. La vista de detalle del servidor en `/mcp` lee `No URL configured for this server`; establezca la `url` de la entrada para conectarla. Antes de v2.1.208, Claude Code informaba una `url` vacía como un problema de configuración con un aviso para reconectar.
315 315
319 319
320Claude Code advierte sobre los problemas de configuración a continuación. Cada entrada dice qué verifica Claude Code y cómo borrar la advertencia:320Claude Code advierte sobre los problemas de configuración a continuación. Cada entrada dice qué verifica Claude Code y cómo borrar la advertencia:
321 321
322* **Espacios en blanco ocultos**: Claude Code advierte cuando un valor de configuración MCP lleva espacios en blanco ocultos al principio o al final, que a menudo provienen de pegar un token con una nueva línea al final. Claude Code verifica `command`, `url`, cada entrada `args`, y los valores y nombres de clave bajo `env` y `headers`. Claude Code muestra la advertencia en la salida de `claude mcp list` y en `/mcp`, nombrando los campos afectados sin repetir sus valores, por ejemplo `Leading or trailing whitespace in: headers.Authorization`. Claude Code no recorta el espacio en blanco y utiliza los valores exactamente como están escritos, por lo que edite la configuración para eliminarlo.322* **Espacios en blanco ocultos**: Claude Code advierte cuando un valor de configuración MCP lleva espacios en blanco ocultos al principio o al final, que a menudo provienen de pegar un token con una nueva línea al final. Claude Code verifica `command`, `url`, cada entrada `args`, y los valores y nombres de clave bajo `env` y `headers`. Claude Code muestra la advertencia en la salida de `claude mcp list` y en `/mcp`, nombrando los campos afectados sin repetir sus valores, por ejemplo `Leading or trailing whitespace in: headers.Authorization`. Claude Code no recorta el espacio en blanco y usa los valores exactamente como están escritos, así que edite la configuración para eliminarlo.
323* **Mismo nombre en más de un alcance**: si define el mismo nombre de servidor en más de un [alcance](#mcp-installation-scopes) con diferentes puntos finales, Claude Code advierte sobre el conflicto en la salida de `claude mcp list` y en `/mcp`. Claude Code almacena inicios de sesión OAuth por punto final, por lo que cuando autentica la definición que se carga en un proyecto, aún necesita iniciar sesión por separado en un proyecto donde se carga una definición diferente. Mantenga el punto final que desea y elimine los otros con `claude mcp remove <name> --scope <scope>`. En la advertencia, Claude Code cita el punto final de cada alcance tal como está escrito en su configuración, con referencias [`${VAR}`](#environment-variable-expansion-in-mcp-json) sin expandir, por lo que nunca muestra un valor resuelto como una clave API.323* **Mismo nombre en más de un alcance**: si define el mismo nombre de servidor en más de un [alcance](#mcp-installation-scopes) con diferentes puntos finales, Claude Code advierte sobre el conflicto en la salida de `claude mcp list` y en `/mcp`. Claude Code almacena inicios de sesión OAuth por punto final, por lo que cuando autentica la definición que se carga en un proyecto, aún necesita iniciar sesión por separado en un proyecto donde se carga una definición diferente. Mantenga el punto final que desea y elimine los otros con `claude mcp remove <name> --scope <scope>`. En la advertencia, Claude Code cita el punto final de cada alcance tal como está escrito en su configuración, con referencias [`${VAR}`](#environment-variable-expansion-in-mcp-json) sin expandir, por lo que nunca muestra un valor resuelto como una clave API.
324* **Nombres reservados**: Claude Code reserva los nombres de sus servidores integrados, incluidos `workspace`, `claude-in-chrome`, `computer-use`, `Claude Preview`, y `Claude Browser`. Si su configuración define un servidor con un nombre reservado, Claude Code lo omite en el tiempo de carga y muestra una advertencia pidiéndole que lo renombre. `claude mcp add` rechaza un nombre reservado con un error. `Claude Preview` y `Claude Browser` ambos nombran el servidor integrado que el [panel de vista previa de la aplicación de escritorio Claude Code](/docs/es/desktop#preview-your-app) utiliza. Antes de v2.1.205, `Claude Browser` no estaba reservado, por lo que un servidor configurado por el usuario podría registrarse bajo ese nombre.324* **Nombres reservados**: Claude Code reserva los nombres de sus servidores integrados, incluidos `workspace`, `claude-in-chrome`, `computer-use`, `Claude Preview`, y `Claude Browser`. Si su configuración define un servidor con un nombre reservado, Claude Code lo omite en el tiempo de carga y muestra una advertencia pidiéndole que lo renombre. `claude mcp add` rechaza un nombre reservado con un error. `Claude Preview` y `Claude Browser` ambos nombran el servidor integrado que el [panel de vista previa de la aplicación de escritorio de Claude Code](/docs/es/desktop#preview-your-app) utiliza.
325* **Variable de entorno faltante**: si una referencia [`${VAR}`](#environment-variable-expansion-in-mcp-json) en la configuración de un servidor nombra una variable que no está establecida y no tiene `:-default`, Claude Code advierte en la salida de `claude mcp list` y en `/mcp`, nombrando la variable, y aún carga el servidor con el texto `${VAR}` sin expandir. Establezca la variable o agregue un respaldo `${VAR:-default}`. En la `url` y `headers` de un servidor remoto, algunas variables de credencial [se leen como vacías](#credential-variables-that-read-as-empty) en su lugar, sin advertencia.325* **Variable de entorno faltante**: si una referencia [`${VAR}`](#environment-variable-expansion-in-mcp-json) en la configuración de un servidor nombra una variable que no está establecida y no tiene `:-default`, Claude Code advierte en la salida de `claude mcp list` y en `/mcp`, nombrando la variable, y aún carga el servidor con el texto `${VAR}` sin expandir. Establezca la variable o agregue un fallback `${VAR:-default}`. En la `url` y `headers` de un servidor remoto, algunas variables de credencial [se leen como vacías](#credential-variables-that-read-as-empty) en su lugar, sin advertencia.
326 326
327<h4 id="tool-availability">327<h4 id="tool-availability">
328 Disponibilidad de herramientas328 Disponibilidad de herramientas
330 330
331El panel `/mcp` muestra el recuento de herramientas junto a cada servidor conectado e indica servidores que anuncian la capacidad de herramientas pero no exponen herramientas.331El panel `/mcp` muestra el recuento de herramientas junto a cada servidor conectado e indica servidores que anuncian la capacidad de herramientas pero no exponen herramientas.
332 332
333Si su solicitud necesita herramientas de un servidor que aún se está conectando en segundo plano, Claude espera a ese servidor antes de continuar. Cómo sucede la espera depende de su configuración:333Si su solicitud necesita herramientas de un servidor que aún se está conectando en segundo plano, Claude espera a que ese servidor continúe. Cómo sucede la espera depende de su configuración:
334 334
335* **Con [búsqueda de herramientas](#scale-with-mcp-tool-search), el valor predeterminado**: la espera sucede dentro de la llamada `ToolSearch`.335* **Con [búsqueda de herramientas](#scale-with-mcp-tool-search), el valor predeterminado**: la espera sucede dentro de la llamada `ToolSearch`.
336* **Sin búsqueda de herramientas**: Claude utiliza la herramienta `WaitForMcpServers` en su lugar. Las configuraciones sin búsqueda de herramientas incluyen un `ANTHROPIC_BASE_URL` personalizado, `ENABLE_TOOL_SEARCH=false`, y un modelo anterior a la generación Claude 4.5 en la Plataforma de Agentes de Google Cloud.336* **Sin búsqueda de herramientas**: Claude usa la herramienta `WaitForMcpServers` en su lugar. Las configuraciones sin búsqueda de herramientas incluyen un `ANTHROPIC_BASE_URL` personalizado, `ENABLE_TOOL_SEARCH=false`, y un modelo anterior a la generación Claude 4.5 en la Plataforma de Agentes de Google Cloud.
337* **En un despliegue de Microsoft Foundry [alojado en Azure](https://platform.claude.com/docs/en/build-with-claude/claude-in-microsoft-foundry#hosting-options)**: Claude comienza en la ruta de búsqueda de herramientas en lugar de con `WaitForMcpServers`, ya que Claude Code descubre el rechazo del lado del servidor solo desde la API. Después de que Claude Code cambie ese despliegue a [carga anticipada](#scale-with-mcp-tool-search), las herramientas de un servidor que termina de conectarse están disponibles en la siguiente solicitud de Claude.337* **En un despliegue de Microsoft Foundry [alojado en Azure](https://platform.claude.com/docs/en/build-with-claude/claude-in-microsoft-foundry#hosting-options)**: Claude comienza en la ruta de búsqueda de herramientas en lugar de con `WaitForMcpServers`, ya que Claude Code descubre el rechazo del lado del servidor solo desde la API. Después de que Claude Code cambie ese despliegue a [carga anticipada](#scale-with-mcp-tool-search), las herramientas de un servidor que termina de conectarse se vuelven disponibles en la siguiente solicitud de Claude.
338 338
339Con la búsqueda de herramientas habilitada, cuando un servidor termina de conectarse mientras Claude está trabajando, Claude Code enumera los nombres de herramientas del servidor a Claude en su siguiente solicitud en el mismo turno. Claude puede entonces buscar y llamar a esas herramientas sin esperar su siguiente mensaje.339Con la búsqueda de herramientas habilitada, cuando un servidor termina de conectarse mientras Claude está trabajando, Claude Code enumera los nombres de herramientas del servidor a Claude en su siguiente solicitud en el mismo turno. Claude puede entonces buscar y llamar a esas herramientas sin esperar su siguiente mensaje.
340 340
346 346
347Cuando alterna un servidor, Claude Code registra su elección por proyecto en `~/.claude.json`, en una de dos listas que cubren conjuntos disjuntos de servidores:347Cuando alterna un servidor, Claude Code registra su elección por proyecto en `~/.claude.json`, en una de dos listas que cubren conjuntos disjuntos de servidores:
348 348
349* `disabledMcpServers`: una lista de exclusión para servidores configurados por el usuario, servidores de plugins, servidores que su organización [proporciona a través de configuración administrada](/docs/es/managed-mcp#provide-servers-through-managed-settings), los conectores claude.ai que Claude Code [obtiene por sí mismo](#how-connectors-reach-claude-code), y servidores integrados que están habilitados de forma predeterminada. Claude Code no se conecta a un servidor que enumere aquí. Cuando deshabilita un conector claude.ai con el alternador `/mcp` por proyecto descrito en [Deshabilitar conectores claude.ai](#disable-claude-ai-connectors), Claude Code lo escribe en esta lista bajo su nombre de visualización, por ejemplo `claude.ai Slack`.349* `disabledMcpServers`: una lista de exclusión para servidores configurados por el usuario, servidores de plugins, servidores que su organización [proporciona a través de configuración administrada](/docs/es/managed-mcp#provide-servers-through-managed-settings), los conectores claude.ai que Claude Code [obtiene por sí mismo](#how-connectors-reach-claude-code), y servidores integrados que están activados de forma predeterminada. Claude Code no se conecta a un servidor que enumere aquí. Cuando deshabilita un conector claude.ai con el alternador `/mcp` por proyecto descrito en [Deshabilitar conectores claude.ai](#disable-claude-ai-connectors), Claude Code lo escribe en esta lista bajo su nombre de visualización, por ejemplo `claude.ai Slack`.
350* `enabledMcpServers`: una lista de inclusión para servidores integrados que están deshabilitados de forma predeterminada, como `computer-use`. Claude Code se conecta a un servidor deshabilitado de forma predeterminada solo cuando lo enumera aquí.350* `enabledMcpServers`: una lista de inclusión para servidores integrados que están desactivados de forma predeterminada, como `computer-use`. Claude Code se conecta a un servidor desactivado de forma predeterminada solo cuando lo enumera aquí.
351 351
352Claude Code consulta exactamente una de las dos listas para cada servidor, por lo que ninguna lista anula la otra. Si agrega un servidor normal a `enabledMcpServers`, o un servidor integrado deshabilitado de forma predeterminada a `disabledMcpServers`, Claude Code ignora la entrada.352Claude Code consulta exactamente una de las dos listas para cada servidor, por lo que ninguna lista anula la otra. Si agrega un servidor regular a `enabledMcpServers`, o un servidor integrado desactivado de forma predeterminada a `disabledMcpServers`, Claude Code ignora la entrada.
353 353
354`disabledMcpServers` y `enabledMcpServers` no están relacionados con [`enabledMcpjsonServers`](/docs/es/settings-reference#enabledmcpjsonservers) y [`disabledMcpjsonServers`](/docs/es/settings-reference#disabledmcpjsonservers), que controlan la aprobación de servidores definidos en el archivo `.mcp.json` de un proyecto.354`disabledMcpServers` y `enabledMcpServers` no están relacionados con [`enabledMcpjsonServers`](/docs/es/settings-reference#enabledmcpjsonservers) y [`disabledMcpjsonServers`](/docs/es/settings-reference#disabledmcpjsonservers), que controlan la aprobación de servidores definidos en el archivo `.mcp.json` de un proyecto.
355 355
357 Tiempos de ejecución del cliente MCP357 Tiempos de ejecución del cliente MCP
358</h3>358</h3>
359 359
360Claude Code se conecta a servidores MCP a través de uno de dos tiempos de ejecución del cliente. El tiempo de ejecución v1 se basa en MCP TypeScript SDK 1.x. El tiempo de ejecución v2 es el mismo código en [MCP TypeScript SDK 2.0](https://ts.sdk.modelcontextprotocol.io/v2/), que agrega la revisión del protocolo MCP 2026-07-28. El resto de esta página se aplica a ambos tiempos de ejecución, excepto donde una sección nombra el tiempo de ejecución v2.360Claude Code se conecta a servidores MCP a través de uno de dos tiempos de ejecución del cliente. El tiempo de ejecución v1 se basa en MCP TypeScript SDK 1.x. El tiempo de ejecución v2 es el mismo código en [MCP TypeScript SDK 2.0](https://ts.sdk.modelcontextprotocol.io/v2/), que añade la revisión del protocolo MCP 2026-07-28. El resto de esta página se aplica a ambos tiempos de ejecución, excepto donde una sección nombra el tiempo de ejecución v2.
361 361
362Claude Code elige un tiempo de ejecución cada vez que lo inicia y lo mantiene hasta que sale. En sesiones donde [obtiene banderas de características](/docs/es/env-vars#features-that-need-feature-flag-fetching), utiliza el tiempo de ejecución v2 en Claude Code v2.1.232 o posterior.362Claude Code elige un tiempo de ejecución cada vez que lo inicia y lo mantiene hasta que sale. En sesiones donde [obtiene banderas de características](/docs/es/env-vars#features-that-need-feature-flag-fetching), utiliza el tiempo de ejecución v2 en Claude Code v2.1.232 o posterior.
363 363
364En las sesiones donde no obtiene banderas de características, Claude Code utiliza el tiempo de ejecución v2 de forma predeterminada en Claude Code v2.1.274 o posterior:364En las sesiones donde no obtiene banderas de características, Claude Code utiliza el tiempo de ejecución v2 de forma predeterminada en Claude Code v2.1.274 o posterior:
365 365
366* Sesiones en Amazon Bedrock, Claude Platform en AWS, Plataforma de Agentes de Google Cloud, o Microsoft Foundry, a menos que una plataforma anfitriona que integra Claude Code establezca [`CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST`](/docs/es/env-vars)366* Sesiones en Amazon Bedrock, Claude Platform en AWS, Plataforma de Agentes de Google Cloud, o Microsoft Foundry, a menos que una plataforma host que incrusta Claude Code establezca [`CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST`](/docs/es/env-vars)
367* Sesiones iniciadas sesión a través de una [puerta de enlace de aplicaciones Claude](/docs/es/claude-apps-gateway)367* Sesiones iniciadas a través de una [puerta de enlace de aplicaciones Claude](/docs/es/claude-apps-gateway)
368* Sesiones donde desactiva la telemetría o la obtención de banderas de características, por ejemplo con `DISABLE_TELEMETRY`368* Sesiones donde desactiva la telemetría o la obtención de banderas de características, por ejemplo con `DISABLE_TELEMETRY`
369 369
370En v2, Claude Code también:370En v2, Claude Code también:
371 371
372* Pregunta a servidores HTTP si admiten la revisión más nueva, y la utiliza con los que lo hacen. También pregunta a servidores conectores claude.ai en sesiones donde obtiene banderas de características. Para que pregunte a servidores stdio, o a servidores conectores en cada sesión, establezca [`MCP_PROTOCOL_NEGOTIATION`](/docs/es/env-vars) en `auto`. Se conecta a todos los demás servidores como v1 lo hace.372* Pregunta a los servidores HTTP si admiten la revisión más nueva, y la utiliza con los que lo hacen. También pregunta a los servidores conectores claude.ai en sesiones donde obtiene banderas de características. Para que pregunte a servidores stdio, o servidores conectores en cada sesión, establezca [`MCP_PROTOCOL_NEGOTIATION`](/docs/es/env-vars) en `auto`. Se conecta a todos los demás servidores como v1 lo hace.
373* Recibe notificaciones `list_changed` de servidores en la revisión más nueva sobre una [secuencia que mantiene abierta](#notification-streams-on-the-v2-runtime).373* Recibe notificaciones `list_changed` de servidores en la revisión más nueva sobre una [secuencia que mantiene abierta](#notification-streams-on-the-v2-runtime).
374* No registra un servidor de [canal](#push-messages-with-channels) que se conecta en la revisión más nueva, porque esa revisión no puede llevar mensajes de canal.374* No registra un servidor de [canal](#push-messages-with-channels) que se conecta en la revisión más nueva, porque esa revisión no puede llevar mensajes de canal.
375* Falla un [inicio de sesión OAuth de MCP](#authenticate-with-remote-mcp-servers) cuya respuesta de autorización nombra un emisor inesperado.375* Falla un [inicio de sesión OAuth de MCP](#authenticate-with-remote-mcp-servers) cuya respuesta de autorización nombra un emisor inesperado.
376* Envía [credenciales OAuth de MCP](#authenticate-with-remote-mcp-servers) solo a un punto final de token servido sobre HTTPS o en `localhost`, `127.0.0.1`, o `::1`. El inicio de sesión falla para un servidor cuyo punto final de token es `http://` simple en cualquier otro lugar, como un dispositivo en su red local. Consulte [Refusing to send credentials to non-https token endpoint](/docs/es/errors#refusing-to-send-credentials-to-non-https-token-endpoint).376* Envía credenciales [OAuth de MCP](#authenticate-with-remote-mcp-servers) solo a un punto final de token servido sobre HTTPS o en `localhost`, `127.0.0.1`, o `::1`. El inicio de sesión falla para un servidor cuyo punto final de token es `http://` simple en cualquier otro lugar, como un dispositivo en su red local. Consulte [Refusing to send credentials to non-https token endpoint](/docs/es/errors#refusing-to-send-credentials-to-non-https-token-endpoint).
377 377
378Anthropic puede mantener un servidor específico en el protocolo anterior, u off esa secuencia, con una bandera de características que Claude Code obtiene.378Anthropic puede mantener un servidor específico en el protocolo anterior, o fuera de esa secuencia, con una bandera de característica que Claude Code obtiene.
379 379
380Para elegir el tiempo de ejecución usted mismo, establezca [`MCP_SDK_GENERATION`](/docs/es/env-vars) en `v1` o `v2`. Para decidir si Claude Code pregunta, establezca [`MCP_PROTOCOL_NEGOTIATION`](/docs/es/env-vars) en `auto` o `legacy`.380Para elegir el tiempo de ejecución usted mismo, establezca [`MCP_SDK_GENERATION`](/docs/es/env-vars) en `v1` o `v2`. Para decidir si Claude Code pregunta, establezca [`MCP_PROTOCOL_NEGOTIATION`](/docs/es/env-vars) en `auto` o `legacy`.
381 381
396* **La secuencia se cierra nuevamente dentro de 10 segundos**: Claude Code la reabre hasta tres veces, luego se detiene para esa conexión.396* **La secuencia se cierra nuevamente dentro de 10 segundos**: Claude Code la reabre hasta tres veces, luego se detiene para esa conexión.
397* **La secuencia permanece abierta más de 10 segundos, luego se cierra**, como las secuencias a hosts sin servidor comúnmente lo hacen: después de cinco reaperturas en una hora, Claude Code espera aproximadamente seis horas antes de la siguiente.397* **La secuencia permanece abierta más de 10 segundos, luego se cierra**, como las secuencias a hosts sin servidor comúnmente lo hacen: después de cinco reaperturas en una hora, Claude Code espera aproximadamente seis horas antes de la siguiente.
398 398
399Hasta que la secuencia se reabre, mantiene las últimas herramientas, indicaciones y recursos obtenidos del servidor. Para recoger sus cambios más pronto, reconecte el servidor desde `/mcp`.399Hasta que la secuencia se reabre, mantiene las herramientas, indicaciones y recursos del servidor obtenidos por última vez. Para recoger sus cambios más pronto, reconecte el servidor desde `/mcp`.
400 400
401<h3 id="automatic-reconnection">401<h3 id="automatic-reconnection">
402 Reconexión automática402 Reconexión automática
417 Conexiones iniciales fallidas417 Conexiones iniciales fallidas
418</h4>418</h4>
419 419
420Cuando la primera conexión de un servidor HTTP o SSE falla con un error transitorio, como una respuesta 5xx, una conexión rechazada, o un tiempo de espera, Claude Code reintenta hasta tres veces. Si la conexión aún falla, Claude Code marca el servidor como fallido. Claude Code reintenta de esta manera al inicio y cuando se agrega un servidor a mitad de sesión. Eso incluye un servidor que Claude Code agrega a una [sesión en la nube](/docs/es/claude-code-on-the-web) desde su configuración y un servidor que agrega con el método [`setMcpServers()`](/docs/es/agent-sdk/typescript) del Agent SDK.420Cuando la primera conexión de un servidor HTTP o SSE falla con un error transitorio, como una respuesta 5xx, una conexión rechazada, o un tiempo de espera, Claude Code reintenta hasta tres veces. Si la conexión aún falla, Claude Code marca el servidor como fallido. Claude Code reintenta de esta manera al inicio y cuando se agrega un servidor a mitad de sesión. Eso incluye un servidor que Claude Code agrega a una [sesión en la nube](/docs/es/claude-code-on-the-web) desde su configuración y un servidor que agrega con el [`setMcpServers()`](/docs/es/agent-sdk/typescript) del Agent SDK.
421 421
422Claude Code no reintenta en estos casos:422Claude Code no reintenta en estos casos:
423 423
424* La primera conexión de un servidor WebSocket424* La primera conexión de un servidor WebSocket
425* Un error de autenticación o no encontrado, porque requiere un cambio de configuración para resolverse. Cuando un [`headersHelper`](#use-dynamic-headers-for-custom-authentication) es la única fuente del servidor del encabezado `Authorization`, Claude Code reintenta un error de autenticación de todas formas, porque vuelve a ejecutar el ayudante en cada intento y puede recoger una credencial fresca425* Un error de autenticación o no encontrado, porque requiere un cambio de configuración para resolverse. Cuando un [`headersHelper`](#use-dynamic-headers-for-custom-authentication) es la única fuente del servidor del encabezado `Authorization`, Claude Code reintenta un error de autenticación de todas formas, porque vuelve a ejecutar el helper en cada intento y puede recoger una credencial fresca
426 426
427<h4 id="failed-discovery-requests">427<h4 id="failed-discovery-requests">
428 Solicitudes de descubrimiento fallidas428 Solicitudes de descubrimiento fallidas
434 Cómo Claude aprende que un servidor falló434 Cómo Claude aprende que un servidor falló
435</h4>435</h4>
436 436
437Si Claude Code le dice a Claude sobre un servidor configurado que no se conectó depende de [búsqueda de herramientas](#scale-with-mcp-tool-search), que está activada de forma predeterminada:437Si Claude Code le dice a Claude sobre un servidor configurado que falló al conectarse depende de [búsqueda de herramientas](#scale-with-mcp-tool-search), que está activada de forma predeterminada:
438 438
439* Con búsqueda de herramientas, Claude Code le dice a Claude qué servidor falló y su error de conexión, por lo que Claude informa la falla de conexión en su respuesta. Claude Code incluye la misma información en resultados de `ToolSearch` que no encuentran herramientas coincidentes.439* Con búsqueda de herramientas, Claude Code le dice a Claude qué servidor falló y su error de conexión, por lo que Claude informa la falla de conexión en su respuesta. Claude Code incluye la misma información en resultados de `ToolSearch` que no encuentran herramientas coincidentes.
440* En cualquier [configuración sin búsqueda de herramientas](#configure-tool-search), Claude Code no informa fallas de conexión de servidor configurado a Claude.440* En cualquier [configuración sin búsqueda de herramientas](#configure-tool-search), Claude Code no informa fallos de conexión de servidores fallidos a Claude.
441 441
442<h3 id="push-messages-with-channels">442<h3 id="push-messages-with-channels">
443 Mensajes de inserción con canales443 Enviar mensajes con canales
444</h3>444</h3>
445 445
446Un servidor MCP también puede insertar mensajes directamente en su sesión para que Claude pueda reaccionar a eventos externos como resultados de CI, alertas de monitoreo, o mensajes de chat. Para habilitar esto, su servidor declara la capacidad `claude/channel` y usted lo activa con la bandera `--channels` al inicio. Consulte [Canales](/docs/es/channels) para utilizar un canal oficialmente compatible, o [Referencia de canales](/docs/es/channels-reference) para construir el suyo propio.446Un servidor MCP también puede enviar mensajes directamente a su sesión para que Claude pueda reaccionar a eventos externos como resultados de CI, alertas de monitoreo, o mensajes de chat. Para habilitar esto, su servidor declara la capacidad `claude/channel` y usted lo activa con la bandera `--channels` al inicio. Consulte [Channels](/docs/es/channels) para usar un canal oficialmente compatible, o [Channels reference](/docs/es/channels-reference) para construir el suyo propio.
447 447
448En el [tiempo de ejecución v2](#mcp-client-runtimes), si establece [`MCP_PROTOCOL_NEGOTIATION`](/docs/es/env-vars) en `auto` y un servidor de canal negocia la revisión del protocolo MCP 2026-07-28, no puede entregar mensajes de canal, por lo que Claude Code no lo registra como un canal. Dejar la variable sin establecer, o establecerla en `legacy`, mantiene servidores stdio en el protocolo anterior.448En el [tiempo de ejecución v2](#mcp-client-runtimes), si establece [`MCP_PROTOCOL_NEGOTIATION`](/docs/es/env-vars) en `auto` y un servidor de canal negocia la revisión del protocolo MCP 2026-07-28, no puede entregar mensajes de canal, por lo que Claude Code no lo registra como un canal. Dejar la variable sin establecer, o establecerla en `legacy`, mantiene los servidores stdio en el protocolo anterior.
449 449
450<Tip>450<Tip>
451 Consejos:451 Consejos:
452 452
453 * Utilice la bandera `-s` o `--scope` para especificar dónde se almacena la configuración:453 * Use la bandera `-s` o `--scope` para especificar dónde se almacena la configuración:
454 * `local` (predeterminado): disponible solo para usted en el proyecto actual454 * `local` (predeterminado): disponible solo para usted en el proyecto actual
455 * `project`: compartido con todos en el proyecto a través del archivo `.mcp.json`455 * `project`: compartido con todos en el proyecto a través del archivo `.mcp.json`
456 * `user`: disponible para usted en todos los proyectos456 * `user`: disponible para usted en todos los proyectos
457 * Establezca variables de entorno con banderas `-e` o `--env` (por ejemplo, `-e KEY=value`)457 * Establezca variables de entorno con banderas `-e` o `--env` (por ejemplo, `-e KEY=value`)
458 * Las banderas `--transport` y `--header` también aceptan formas cortas `-t` y `-H`458 * Las banderas `--transport` y `--header` también aceptan formas cortas `-t` y `-H`
459 * Configure el tiempo de espera de inicio del servidor MCP utilizando la variable de entorno `MCP_TIMEOUT` (por ejemplo, `MCP_TIMEOUT=10000 claude` establece un tiempo de espera de 10 segundos)459 * Configure el tiempo de espera de inicio del servidor MCP usando la variable de entorno `MCP_TIMEOUT` (por ejemplo, `MCP_TIMEOUT=10000 claude` establece un tiempo de espera de 10 segundos)
460 * Establezca un tiempo de espera de ejecución de herramienta por servidor agregando un campo `timeout` en milisegundos a la entrada `.mcp.json` de ese servidor, por ejemplo `"timeout": 600000` para diez minutos. Esto anula la variable de entorno `MCP_TOOL_TIMEOUT` solo para ese servidor460 * Establezca un tiempo de espera de ejecución de herramientas por servidor agregando un campo `timeout` en milisegundos a la entrada `.mcp.json` de ese servidor, por ejemplo `"timeout": 600000` para diez minutos. Esto anula la variable de entorno `MCP_TOOL_TIMEOUT` solo para ese servidor
461 * Claude Code muestra una advertencia cuando la salida de herramientas MCP excede 10,000 tokens y limita la salida a 25,000 tokens de forma predeterminada. Para aumentar el límite, establezca la variable de entorno `MAX_MCP_OUTPUT_TOKENS` (por ejemplo, `MAX_MCP_OUTPUT_TOKENS=50000`); el umbral de advertencia es fijo. Consulte [Límites de salida de MCP y advertencias](#mcp-output-limits-and-warnings)461 * Claude Code muestra una advertencia cuando la salida de herramientas MCP excede 10,000 tokens y limita la salida a 25,000 tokens de forma predeterminada. Para aumentar el límite, establezca la variable de entorno `MAX_MCP_OUTPUT_TOKENS` (por ejemplo, `MAX_MCP_OUTPUT_TOKENS=50000`); el umbral de advertencia es fijo. Consulte [MCP output limits and warnings](#mcp-output-limits-and-warnings)
462 * Utilice `/mcp` para autenticarse con servidores remotos que requieren autenticación OAuth 2.0462 * Use `/mcp` para autenticarse con servidores remotos que requieren autenticación OAuth 2.0
463</Tip>463</Tip>
464 464
465El `timeout` por servidor es un límite de reloj de pared duro por llamada de herramienta, y las notificaciones de progreso del servidor no lo extienden. Los valores por debajo de 1000 se ignoran y caen a `MCP_TOOL_TIMEOUT`, o a su valor predeterminado de aproximadamente 28 horas cuando esa variable no está establecida. Para un servidor HTTP, SSE, o [conector claude.ai](/docs/es/mcp#use-mcp-servers-from-claude-ai) también hay un segundo temporizador por solicitud que cubre cada solicitud hasta el primer byte de respuesta del servidor. Claude Code establece ese temporizador al mayor de tres valores: 60 segundos, el tiempo de espera de herramienta que se aplica al servidor, y `MCP_TIMEOUT`. El valor predeterminado de 28 horas de un `MCP_TOOL_TIMEOUT` sin establecer no entra en esa comparación, y un valor por debajo de 60 segundos no acorta el temporizador. Los servidores stdio y WebSocket no tienen temporizador por solicitud.465El `timeout` por servidor es un límite de reloj de pared duro por llamada de herramienta, y las notificaciones de progreso del servidor no lo extienden. Los valores por debajo de 1000 se ignoran y caen a `MCP_TOOL_TIMEOUT`, o a su valor predeterminado de aproximadamente 28 horas cuando esa variable no está establecida. Para un servidor HTTP, SSE, o [conector claude.ai](/docs/es/mcp#use-mcp-servers-from-claude-ai) también hay un segundo temporizador por solicitud que cubre cada solicitud hasta el primer byte de respuesta del servidor. Claude Code establece ese temporizador al mayor de tres valores: 60 segundos, el tiempo de espera de herramientas que se aplica al servidor, y `MCP_TIMEOUT`. El valor predeterminado de 28 horas de un `MCP_TOOL_TIMEOUT` sin establecer no entra en esa comparación, y un valor por debajo de 60 segundos no acorta el temporizador. Los servidores stdio y WebSocket no tienen temporizador por solicitud.
466 466
467Un `timeout` por servidor de al menos 1000 también actúa como un piso en el tiempo de espera de inactividad descrito a continuación: Claude Code nunca aborta las llamadas de herramienta de ese servidor por inactividad más pronto que el `timeout` por servidor. Requiere Claude Code v2.1.203 o posterior.467Un `timeout` por servidor de al menos 1000 también actúa como un piso en el tiempo de espera de inactividad descrito a continuación: Claude Code nunca aborta las llamadas de herramientas de ese servidor por inactividad más pronto que el `timeout` por servidor. Requiere Claude Code v2.1.203 o posterior.
468 468
469Una llamada de herramienta a un servidor MCP que no envía respuesta y ninguna notificación de progreso para la ventana de inactividad aborta con un error en lugar de esperar el límite de reloj de pared. Se aplica a todos los tipos de servidor excepto servidores IDE y servidores en proceso del SDK. La ventana de inactividad tiene un valor predeterminado de cinco minutos para servidores HTTP, SSE, WebSocket, y [conector claude.ai](#use-mcp-servers-from-claude-ai), y de 30 minutos para servidores stdio. Antes de v2.1.203, los servidores stdio estaban exentos del tiempo de espera de inactividad.469Una llamada de herramienta a un servidor MCP que no envía respuesta ni notificación de progreso durante la ventana de inactividad aborta con un error en lugar de esperar el límite de reloj de pared. El tiempo de espera de inactividad se aplica a todos los tipos de servidor excepto servidores IDE y servidores en proceso SDK. La ventana de inactividad tiene un valor predeterminado de cinco minutos para servidores HTTP, SSE, WebSocket, y [conector claude.ai](#use-mcp-servers-from-claude-ai), y de 30 minutos para servidores stdio. Antes de v2.1.203, los servidores stdio estaban exentos del tiempo de espera de inactividad.
470 470
471Establezca la variable de entorno [`CLAUDE_CODE_MCP_TOOL_IDLE_TIMEOUT`](/docs/es/env-vars) en milisegundos para cambiar la ventana de inactividad, o establézcala en `0` para deshabilitar la verificación.471Establezca la variable de entorno [`CLAUDE_CODE_MCP_TOOL_IDLE_TIMEOUT`](/docs/es/env-vars) en milisegundos para cambiar la ventana de inactividad, o establézcala en `0` para deshabilitar la verificación.
472 472
473Estos tiempos de espera limitan cuánto tiempo puede ejecutarse una llamada, no siempre cuánto tiempo bloquea la sesión: una llamada de conversación principal que se ejecuta más de dos minutos se mueve a una tarea de fondo primero. Consulte [Envío automático a segundo plano de llamadas de herramientas largas](#automatic-backgrounding-of-long-tool-calls).473Estos tiempos de espera limitan cuánto tiempo puede ejecutarse una llamada, no siempre cuánto bloquea la sesión: una llamada de conversación principal que se ejecuta más de dos minutos se mueve a una tarea de fondo primero. Consulte [Automatic backgrounding of long tool calls](#automatic-backgrounding-of-long-tool-calls).
474 474
475<h3 id="automatic-backgrounding-of-long-tool-calls">475<h3 id="automatic-backgrounding-of-long-tool-calls">
476 Envío automático a segundo plano de llamadas de herramientas largas476 Ejecución automática en segundo plano de llamadas de herramientas largas
477</h3>477</h3>
478 478
479Una llamada de herramienta MCP en la conversación principal que aún se está ejecutando después de dos minutos se mueve a una tarea de fondo en lugar de bloquear la sesión. Claude recibe el ID de tarea inmediatamente y continúa trabajando, y el resultado llega como una notificación de tarea cuando la llamada se resuelve. El envío automático a segundo plano requiere Claude Code v2.1.212 o posterior.479Una llamada de herramienta MCP en la conversación principal que aún se está ejecutando después de dos minutos se mueve a una tarea de fondo en lugar de bloquear la sesión. Claude recibe el ID de tarea inmediatamente y continúa trabajando, y el resultado llega como una notificación de tarea cuando la llamada se resuelve. La ejecución automática en segundo plano requiere Claude Code v2.1.212 o posterior.
480 480
481La tarea aparece en [`/tasks`](/docs/es/commands#all-commands), donde también puede detenerla, y no sobrevive a la salida de la sesión. Los límites por llamada aún se aplican mientras la llamada se ejecuta en segundo plano: el límite de reloj de pared establecido por el `timeout` por servidor o [`MCP_TOOL_TIMEOUT`](/docs/es/env-vars), y el tiempo de espera de inactividad establecido por [`CLAUDE_CODE_MCP_TOOL_IDLE_TIMEOUT`](/docs/es/env-vars).481La tarea aparece en [`/tasks`](/docs/es/commands#all-commands), donde también puede detenerla, y no sobrevive a la salida de la sesión. La entrada de la tarea muestra el progreso más reciente que el servidor ha informado.
482 482
483Establezca la variable de entorno [`CLAUDE_CODE_MCP_AUTO_BACKGROUND_MS`](/docs/es/env-vars) en milisegundos para cambiar el umbral, o establézcala en `0` para desactivar el envío automático a segundo plano. Establecer `CLAUDE_CODE_DISABLE_BACKGROUND_TASKS` en `1` también lo desactiva, junto con todas las otras características de tareas de fondo.483Los límites por llamada aún se aplican mientras la llamada se ejecuta en segundo plano: el límite de reloj de pared establecido por el `timeout` por servidor o [`MCP_TOOL_TIMEOUT`](/docs/es/env-vars), y el tiempo de espera de inactividad establecido por [`CLAUDE_CODE_MCP_TOOL_IDLE_TIMEOUT`](/docs/es/env-vars).
484
485Establezca la variable de entorno [`CLAUDE_CODE_MCP_AUTO_BACKGROUND_MS`](/docs/es/env-vars) en milisegundos para cambiar el umbral, o establézcala en `0` para desactivar la ejecución automática en segundo plano. Establecer `CLAUDE_CODE_DISABLE_BACKGROUND_TASKS` en `1` también la desactiva, junto con todas las otras características de tareas de fondo.
484 486
485Algunas llamadas nunca se mueven al fondo:487Algunas llamadas nunca se mueven al fondo:
486 488
487* Llamadas de [subagentes](/docs/es/sub-agents); Claude Code solo envía a segundo plano llamadas de conversación principal489* Llamadas de [subagentes](/docs/es/sub-agents); Claude Code solo ejecuta en segundo plano llamadas de conversación principal
488* Llamadas a servidores IDE490* Llamadas a servidores IDE
489* Llamadas en [modo no interactivo](/docs/es/headless), a menos que `CLAUDE_AUTO_BACKGROUND_TASKS` esté establecido en `1`, ya que una ejecución única puede terminar antes de que llegue el resultado491* Llamadas en [modo no interactivo](/docs/es/headless), a menos que `CLAUDE_AUTO_BACKGROUND_TASKS` esté establecido en `1`, ya que una ejecución única puede terminar antes de que llegue el resultado
490 492
491Una llamada esperando un [diálogo de elicitación](#respond-to-mcp-elicitation-requests) abierto no se envía a segundo plano mientras el diálogo está abierto; el servidor está bloqueado en su entrada, no es lento, por lo que Claude Code difiere el movimiento hasta que el diálogo se cierre.493Una llamada esperando un [diálogo de elicitación](#respond-to-mcp-elicitation-requests) abierto no se ejecuta en segundo plano mientras el diálogo está abierto; el servidor está bloqueado en su entrada, no es lento, por lo que Claude Code difiere el movimiento hasta que el diálogo se cierre.
492 494
493<h3 id="plugin-provided-mcp-servers">495<h3 id="plugin-provided-mcp-servers">
494 Servidores MCP proporcionados por plugins496 Servidores MCP proporcionados por plugins
538**Características MCP de plugins**:540**Características MCP de plugins**:
539 541
540* **Ciclo de vida automático**: los servidores se conectan y desconectan en estos puntos:542* **Ciclo de vida automático**: los servidores se conectan y desconectan en estos puntos:
541 * Al inicio de la sesión, Claude Code conecta automáticamente los servidores de plugins habilitados. En `/mcp`, un servidor de plugin remoto (HTTP o SSE) que ha utilizado antes puede mostrar el estado [`cached`](#server-status-detail) en su lugar; Claude Code lo conecta cuando Claude llama por primera vez a una de sus herramientas543 * Al inicio de la sesión, Claude Code conecta automáticamente los servidores de plugins habilitados. En `/mcp`, un servidor de plugin remoto (HTTP o SSE) que ha usado antes puede mostrar el estado [`cached`](#server-status-detail) en su lugar; Claude Code se conecta cuando Claude llama por primera vez a una de sus herramientas
542 * Si habilita o deshabilita un plugin durante una sesión, Claude Code conecta o desconecta sus servidores MCP cuando el cambio se aplica. [Aplicar cambios de plugins sin reiniciar](/docs/es/plugins/cli-reference#reload-plugins) describe cuándo es eso. En una sesión sin terminal interactiva, `/reload-plugins` no conecta o desconecta servidores MCP de plugins; esos cambios tienen efecto en su próxima sesión544 * Si habilita o deshabilita un plugin durante una sesión, Claude Code conecta o desconecta sus servidores MCP cuando el cambio se aplica. [Apply plugin changes without restarting](/docs/es/plugins/cli-reference#reload-plugins) describe cuándo es eso. En una sesión sin terminal interactiva, `/reload-plugins` no conecta ni desconecta servidores MCP de plugins; esos cambios tienen efecto en su próxima sesión
543 * Cuando recarga, Claude Code mantiene las conexiones activas de servidores de plugins cuya configuración no ha cambiado, y hace lo mismo cuando [reemplaza la lista de servidores MCP de la sesión](/docs/es/agent-sdk/typescript#mcpsetserversresult) desde el Agent SDK sin nombrarlos545 * Cuando recarga, Claude Code mantiene las conexiones activas de servidores de plugins cuya configuración no ha cambiado, y hace lo mismo cuando [reemplaza la lista de servidores MCP de la sesión](/docs/es/agent-sdk/typescript#mcpsetserversresult) desde el Agent SDK sin nombrarlos
544 * Cuando [mueve la sesión con `/cd`](/docs/es/permissions#move-the-session-to-another-directory) en v2.1.246 o posterior, Claude Code conecta los servidores de plugins que la configuración del nuevo directorio habilita y desconecta los servidores de plugins que ya no están habilitados, por lo que no necesita ejecutar `/reload-plugins` después del movimiento546 * Cuando [mueve la sesión con `/cd`](/docs/es/permissions#move-the-session-to-another-directory) en v2.1.246 o posterior, Claude Code conecta los servidores de plugins que la configuración del nuevo directorio habilita y desconecta los servidores de plugins que ya no están habilitados, por lo que no necesita ejecutar `/reload-plugins` después del movimiento
545 * En [sesiones en la nube](/docs/es/claude-code-on-the-web), una llamada MCP a un servidor de plugin que aún no está conectado, como justo después de que una sesión inactiva se despierte, inicia el servidor bajo demanda y espera a que se conecte547 * En [sesiones en la nube](/docs/es/claude-code-on-the-web), una llamada MCP a un servidor de plugin que aún no está conectado, como justo después de que una sesión inactiva se despierte, inicia el servidor bajo demanda y espera a que se conecte
551 553
552Los servidores de plugins aparecen en `/mcp` con indicadores que muestran que provienen de plugins.554Los servidores de plugins aparecen en `/mcp` con indicadores que muestran que provienen de plugins.
553 555
556Para un servidor stdio de un plugin, `claude mcp get` imprime `Command: stdio`, una línea `Args:` vacía, y cada variable de entorno como `NAME=[REDACTED]`. Los valores están ocultos porque pueden llevar credenciales.
557
554**Nombres de herramientas MCP de plugins**:558**Nombres de herramientas MCP de plugins**:
555 559
556Las herramientas de un servidor MCP agrupado en un plugin incluyen tanto el nombre del plugin como la clave del servidor en su nombre invocable. La forma completa es `mcp__plugin_<plugin-name>_<server-name>__<tool-name>`, donde cualquier carácter fuera de `A-Z`, `a-z`, `0-9`, `_`, y `-` se reemplaza con `_`. Para el servidor `database-tools` agrupado en un plugin llamado `my-plugin`, una herramienta `query` es invocable como:560Las herramientas de un servidor MCP agrupado en un plugin incluyen tanto el nombre del plugin como la clave del servidor en su nombre invocable. La forma completa es `mcp__plugin_<plugin-name>_<server-name>__<tool-name>`, donde cualquier carácter fuera de `A-Z`, `a-z`, `0-9`, `_`, y `-` se reemplaza con `_`. Para el servidor `database-tools` agrupado en un plugin llamado `my-plugin`, una herramienta `query` es invocable como:
559mcp__plugin_my-plugin_database-tools__query563mcp__plugin_my-plugin_database-tools__query
560```564```
561 565
562Utilice este nombre completo cuando haga referencia a la herramienta en [reglas de permisos](/docs/es/permissions), la lista `allowed-tools` de una habilidad, el [campo `tools` de un subagente](/docs/es/sub-agents#available-tools), o un [coincidente de hook](/docs/es/hooks#match-mcp-tools). Un coincidente de hook escrito contra la clave del servidor desnuda, como `mcp__database-tools__.*`, nunca se dispara para un servidor agrupado en un plugin.566Use este nombre completo cuando haga referencia a la herramienta en [reglas de permisos](/docs/es/permissions), la lista `allowed-tools` de una skill, el [campo `tools` de un subagente](/docs/es/sub-agents#available-tools), o un [coincidente de hook](/docs/es/hooks#match-mcp-tools). Un coincidente de hook escrito contra la clave del servidor desnuda, como `mcp__database-tools__.*`, nunca se dispara para un servidor agrupado en un plugin.
563 567
564El servidor mismo se registra bajo el nombre con alcance `plugin:<plugin-name>:<server-name>`, como `plugin:my-plugin:database-tools`. Utilice ese nombre donde se espera un nombre de servidor configurado, como el [campo `server` de un hook `mcp_tool`](/docs/es/hooks#mcp-tool-hook-fields).568El servidor mismo se registra bajo el nombre con alcance `plugin:<plugin-name>:<server-name>`, como `plugin:my-plugin:database-tools`. Use ese nombre donde se espera un nombre de servidor configurado, como el [campo `server` de un hook `mcp_tool`](/docs/es/hooks#mcp-tool-hook-fields).
565 569
566Consulte la [referencia de componentes de plugins](/docs/es/plugins/components#mcp-servers) para obtener detalles sobre cómo agrupar servidores MCP con plugins.570Consulte la [referencia de componentes de plugins](/docs/es/plugins/components#mcp-servers) para obtener detalles sobre cómo agrupar servidores MCP con plugins.
567 571