Creando un Servidor MCP que se Instale a sí Mismo: Tres Hosts, Tres Mecanismos, Contratiempos

La configuración de servidores MCP a menudo implica editar manualmente un archivo JSON, y cada host utiliza un archivo y formato diferente. Esa fricción impide que los desarrolladores ejecuten servidores que de otro modo usarían. Este artículo desglosa tres hosts, sus mecanismos de instalación y los problemas que te hacen tropezar.
Tres hosts, tres mecanismos
- VS Code: Tiene una API real:
registerMcpServerDefinitionProvider. Declara un proveedor enpackage.jsony devuelve la definición del servidor en tiempo de ejecución. VS Code muestra un aviso de consentimiento. Sin edición de archivos de configuración. Es la opción más limpia, pero requiere enviar una extensión de VS Code. - Cursor: No tiene API nativa. Escribe
.cursor/mcp.jsondirectamente con la clave raízmcpServers. - Claude Code: Usa la CLI. No escribas el archivo manualmente. Ejecuta, por ejemplo:
claude mcp add --transport stdio --scope <user|local> --env … <name> -- node <path>
Seis problemas a evitar
- Ese archivo JSON no es tuyo. El
mcp.jsonde Cursor contiene otros servidores del usuario. Lee, combina tu entrada, conserva las claves no relacionadas: no sobrescribas. - Sobrevive a un archivo malformado. Si el archivo existe pero es JSON inválido, no lo trates como vacío y sobrescribas. Lo mismo para errores de lectura/permiso: relanza. Tratar "no se pudo leer" como "no hay nada" corromperá configuraciones.
- Respaldar y escribir atómicamente. Copia el archivo existente antes de tocarlo, escribe en un archivo temporal y luego renómbralo sobre el destino. Un
mcp.jsona medio escribir rompe el editor. - Instalar dos veces debe ser un no-op, no un error. La CLI de Claude da error si la entrada ya existe, así que
removeluegoadd. Para hosts de archivo, clave por nombre de servidor y reemplaza en su lugar. Re-ejecutar debe converger, no duplicar. - El ámbito lo cambia todo. La instalación a nivel de usuario vs. proyecto cambia dónde se guarda la configuración y qué necesita el servidor (por ejemplo, directorio de datos explícito vs. descubrimiento ascendente). Elige deliberadamente.
- Eres responsable de mantenerte actualizado. La versión registrada se desvía de lo que distribuyes. Añade una verificación: "¿lo instalado sigue siendo la versión que empaqueto?" y una ruta de reinstalación limpia. Un botón muestra el estado: instalar, actualizar o actualizado.
La lección principal: la configuración manual falla porque un humano pegando un fragmento no conoce la ruta absoluta, el ámbito correcto, las variables de entorno ni cómo fusionar de forma segura. El código de instalación sí.
📖 Read the full source: r/ClaudeAI
👀 Ver también

Solucionando el Inflado de Indicaciones y los Bucles Lentos de Respuesta en OpenClaw
Usuarios que experimentan demoras prolongadas desde 2026.4.26 pueden recuperar rendimiento reduciendo la hinchazón del contexto: recortar archivos siempre inyectados, limitar habilidades visibles y evitar pegar grandes salidas de herramientas en el chat principal.

Lista de Verificación de 72 Pasos para Configurar Claude: De Usuario Predeterminado a Usuario Avanzado
Un detallado artículo en Medium describe una lista de verificación de 72 pasos para configurar Claude, pasando de la configuración predeterminada a funciones avanzadas para usuarios expertos. Compartido en HN con 10 puntos y 1 comentario.

Claude Habilidades de Código vs. Agentes Personalizados: Un Modelo Mental Basado en la Consistencia de Tareas
Un usuario de Reddit aclara la distinción entre las habilidades de Claude Code y los agentes personalizados: las habilidades ejecutan los mismos pasos cada vez, mientras que los agentes personalizados requieren razonamiento y adaptación. La publicación también cubre subagentes paralelos, delegación, ganchos y bloques de construcción.

Solución para el error de la extensión Claude VS Code: 'command claude-vscode.editor.openLast not found'
La extensión Claude VS Code versión 2.1.51 contiene un error crítico que provoca el mensaje 'command claude-vscode.editor.openLast not found'. La solución temporal es volver a la versión 2.1.49.