← Claude Code Hub
Nov 4, 2026 · 6 min de lectura ✦ Tip #253

Claude Code no ve tu MCP en tareas programadas: cómo arreglarlo

Tu servidor MCP de la terminal no existe para una tarea programada en la nube, y la ejecución sale Succeeded igual. Los tres sitios desde los que sí lo carga y cuál elegir.

Un servidor añadido con claude mcp add se queda en el ~/.claude.json de tu máquina y no llega a la tarea programada en la nube, que solo lee tres sitios: un connector de claude.ai, el .mcp.json del repositorio y el setup script del entorno

TL;DR Tu tarea programada en la nube no lee nada de tu máquina, tampoco los servidores que añadiste con claude mcp add. Si el servidor tiene URL pública, añádelo como connector en claude.ai/customize/connectors y actívalo en la pestaña Connectors de la tarea. Si no, claude mcp add --scope project y haz commit del .mcp.json.

claude mcp add guarda el servidor en ~/.claude.json, en tu máquina. Una tarea programada en la nube (las antiguas routines) corre en un contenedor de Anthropic que clona tu repositorio y nada más, así que ese servidor no existe para ella. La lista de connectors de la tarea tampoco lo enseña: solo muestra las integraciones de tu cuenta de claude.ai.

Y no te avisa. La ejecución sale como Succeeded, porque ese estado solo dice que la sesión terminó sin error. Las herramientas que faltan aparecen en la transcripción, no en la fila del historial.

Dónde se queda tu servidor

Por defecto, claude mcp add usa el scope local: el servidor queda atado a la carpeta desde la que lo añades, dentro de tu ~/.claude.json. Hecho en una carpeta de prueba, con un servidor añadido en local y otro con --scope user:

claude mcp add --transport http docs https://mcp.deepwiki.com/mcp
claude mcp add --transport http --scope user docs-user https://mcp.deepwiki.com/mcp
Added HTTP MCP server docs with URL: https://mcp.deepwiki.com/mcp to local config
File modified: /tmp/claude-0/tip/lab2/home/.claude.json [project: /tmp/claude-0/tip/lab2/work]
Added HTTP MCP server docs-user with URL: https://mcp.deepwiki.com/mcp to user config
File modified: /tmp/claude-0/tip/lab2/home/.claude.json

Ninguno de los dos sale de ese archivo. Y desde la carpeta del repositorio, claude mcp list ya no ve el local, porque se añadió en la carpeta de arriba:

docs-user: https://mcp.deepwiki.com/mcp (HTTP) - √ Connected

Ese detalle importa más abajo, en el setup script.

Los tres sitios que sí lee la nube

Connector de claude.ai .mcp.json del repositorio Setup script del entorno
Servidor Remoto, con URL pública HTTP o stdio HTTP o stdio
Llega a Todas tus tareas, claude.ai y tu terminal Tareas con ese repositorio como único repo Todas las sesiones de ese entorno
Red Por los servidores de Anthropic, sin allowlist La de la sesión: su host, en Allowed domains La de la sesión
Credenciales OAuth o cabeceras en claude.ai Network secret del entorno Network secret del entorno

1. Si tiene URL pública: añádelo como connector

En claude.ai/customize/connectors, añade un connector personalizado con la URL del servidor y autentícalo ahí: OAuth, o una cabecera fija si funciona con API key. Claude se conecta desde la nube de Anthropic, así que el servidor tiene que responder desde internet: detrás de una VPN o de un firewall no conecta aunque desde tu portátil sí. En Team y Enterprise lo añade un Owner y cada persona lo conecta después.

Luego abre la tarea en claude.ai/code/routines, Edit, pestaña Connectors, y comprueba que está. Al crear una tarea entran todos los connectors que tenías conectados, así que si añadiste este después, inclúyelo tú aquí (o con /schedule update).

2. Si viaja con el repositorio: commit del .mcp.json

claude mcp add --transport http --scope project docs https://mcp.deepwiki.com/mcp
git add .mcp.json && git commit -m "Add docs MCP server" && git push
{
  "mcpServers": {
    "docs": {
      "type": "http",
      "url": "https://mcp.deepwiki.com/mcp"
    }
  }
}

En tu terminal, un servidor de .mcp.json espera a que lo apruebes. En una sesión en la nube no hay a quién preguntar y Claude Code lo carga directamente, igual que en claude -p. En ese mismo repositorio de prueba, el evento de arranque de claude -p --output-format stream-json --verbose lo trae conectado:

{ "name": "docs", "status": "connected", "source": "project" }

Tres condiciones que lo rompen sin decir nada:

  • La tarea tiene más de un repositorio. Solo se carga el .mcp.json de una tarea con un único repositorio.
  • El host no está permitido. En el entorno Default, con acceso Trusted, una petición a un host fuera de la lista falla con 403 y x-deny-reason: host_not_allowed. Los connectors no pasan por ahí; este servidor sí. Añade su host en Allowed domains del entorno.
  • El comando no existe en el contenedor. Un servidor stdio con npx funciona, porque los registros de paquetes están permitidos. Una ruta como /Users/tú/bin/mi-servidor no.

3. Si lo quieres en todas las tareas de un entorno: el setup script

El setup script corre como root antes de que arranque Claude, y lo que escribe en ~/.claude.json vale para la sesión. Así publica mi rutina de tips en wmedia.es: su entorno empieza con esta línea.

claude mcp add --transport http --scope user wmedia https://wmedia.es/mcp/wmedia

El --scope user es obligatorio. El script arranca en la carpeta que contiene los repositorios, no dentro de uno, y un servidor local añadido ahí no se ve desde el repositorio, como en la salida de arriba.

La API key no se escribe en el script ni en las variables del entorno, que lee cualquiera que use ese entorno. Se guarda como network secret: el proxy de la sesión añade la cabecera Authorization solo a las peticiones a wmedia.es.

Comprueba que lo tiene antes de que trabaje

Como Succeeded no te dice si la tarea tuvo el servidor, haz que lo diga ella. Añade al principio del prompt:

Antes de nada, comprueba que tienes las herramientas mcp__docs__.
Si no están, di cuál falta y para sin hacer nada más.

Lanza la primera con Run now y abre la ejecución: la respuesta está en su transcripción, no en el estado.

Si el servidor solo existe en tu máquina

Un servidor en localhost o en tu red privada no llega a la nube por ninguno de los tres caminos. Para ese caso está la tarea Local de la app de escritorio, que corre en tu ordenador con tus archivos y tus servidores MCP, con el ordenador despierto: lo cuento en tareas programadas locales. La forma de añadir y separar servidores por scope está en tu primer servidor MCP.

Documentación oficial: Automate work with scheduled tasks · Cloud environments

Requisitos

  • Plan Pro, Max, Ultra, Team o Enterprise con tareas programadas en la nube. Salidas de Claude Code v2.1.318, en un contenedor en la nube, el 4 de noviembre de 2026.

¿Te ha servido? Haz que wmedia.es te salga antes en Google.

Añadir wmedia.es como fuente preferida en Google
GUÍA GRATUITA

Aprueba menos, pero mejor.

A los diez minutos ya le das a «sí» sin leer. Eso no es revisar, es rezar. La guía de 10 páginas con las cinco palancas, en orden de riesgo.

  • 1. Reglas la primera que coincide gana
  • 2. Modo un dial, no un interruptor
  • 3. Auto mode un clasificador aprueba por ti
  • 4. Sandbox una valla del sistema operativo
  • 5. Bypass solo dentro de un contenedor
¿Eres desarrollador/a Web profesional?

Te llega por email · Te unes a la newsletter Gravitas · Cancela cuando quieras

Permisos de Claude Code: la chuleta para aprobar menos sin perder el control
GUÍA GRATUITA

Aprueba menos, pero mejor.

¿Eres desarrollador/a Web profesional? · Cancela cuando quieras
Workshop para equipos

Multiplica el output de tu equipo sin sacrificar calidad: workshop AI First de 6 a 8 horas, online, sobre la plataforma Claude.

Ver el workshop

¿Harto de aprobar permisos sin leer?