[{"data":1,"prerenderedAt":205},["ShallowReactive",2],{"seo-verification":3,"blog-desplegar-servidor-mcp-en-un-vps-ma-es":6,"promo-bar-likely":204},{"google":4,"bing":5},"EycwPY2XMyTkVzas3n1ygeNJFGAH513qrMjfDljzsMQ","",{"key":7,"data":8},"blog-desplegar-servidor-mcp-en-un-vps-ma-es",{"id":9,"slug":10,"slugs":11,"title":15,"excerpt":16,"readTime":17,"views":18,"isPinned":19,"noindex":19,"publishedAt":20,"updatedAt":21,"category":22,"categories":28,"featuredImage":30,"bgImage":31,"posterImage":32,"relatedSolution":30,"intro":33,"sections":34,"ctaTitle":145,"ctaBody":146,"ctaButton":147,"ctaUrl":148,"relatedPosts":149},214,"desplegar-servidor-mcp-en-un-vps",{"fr":12,"en":13,"ar":14,"es":10},"mcp-serveur-ia-auto-heberge-vps","how-to-deploy-an-mcp-server-on-a-vps","كيفية-نشر-خادم-mcp-على-vps","Desplegar un servidor MCP autoalojado en VPS","Guía completa para desplegar, asegurar e integrar un servidor MCP en tu VPS: nginx, TLS, autenticación, resolución de problemas y conexión a Claude Desktop.",8,4,false,"2026-08-03T00:00:00+00:00","2026-10-20T23:18:06+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":27},1,"Inteligencia Artificial","intelligence-artificielle","bg-purple-500\u002F10 text-purple-400","ia",[29],{"id":23,"name":24,"slug":25,"color":26,"icon":27},null,"\u002Fblog\u002Fcovers\u002Fbg.svg","\u002Fblog\u002Fcovers\u002Fmcp-serveur-ia-auto-heberge-vps-poster.svg","El protocolo MCP (Model Context Protocol) se ha consolidado como la capa estándar para conectar un agente de IA a tus herramientas: bases de datos, sistemas de archivos, APIs internas. Alojar este servidor en tu propio VPS te da control total sobre los datos procesados, la latencia y los costes. Esta guía cubre la instalación, la seguridad en producción, la integración con Claude Desktop y Cursor, y los errores más frecuentes.",[35,39,48,51,85,89,99,102,105,139,142],{"type":36,"title":37,"body":38},"h2","Por qué alojar tu propio servidor MCP","Los servicios MCP alojados en terceros introducen una dependencia externa: tus datos, prompts y contextos pasan por una infraestructura que no controlas. En un VPS, el servidor MCP funciona dentro de tu red, con tus reglas de acceso y tu cadena de confianza. Es la misma lógica que autoalojar un repositorio Git o un registro Docker: la autonomía tiene prioridad sobre la comodidad.",{"type":40,"title":41,"items":42},"ul","Qué ganas con el autoalojamiento",[43,44,45,46,47],"Confidencialidad de los datos: ningún contexto sale de tu infraestructura.","Latencia reducida: el servidor MCP y tu aplicación funcionan en la misma red o en VPS vecinos.","Personalización total: herramientas propias, conectores propietarios, entorno de ejecución a medida.","Coste predecible: una suscripción VPS fija, sin facturación por llamada.","Control de versiones: decides cuándo actualizar el servidor y sus dependencias.",{"type":36,"title":49,"body":50},"Requisitos previos antes de empezar","Necesitas un VPS con acceso root, una distribución Linux reciente (Ubuntu 22.04 LTS o Debian 12 son recomendables), Node.js 18+ o Python 3.11+ según la implementación elegida, y un nombre de dominio apuntando a la IP de tu servidor. Un plan con al menos 1 vCPU y 2 GB de RAM es suficiente para un servidor MCP de uso moderado. Para cargas pesadas o varios servidores MCP en paralelo, planifica 2 vCPU y 4 GB.",{"type":52,"title":53,"steps":54},"steps","Desplegar un servidor MCP en 10 pasos",[55,58,61,64,67,70,73,76,79,82],{"title":56,"body":57},"Actualizar el sistema e instalar Node.js","Conéctate por SSH con tu clave y ejecuta `apt update && apt upgrade -y`. Instala Node.js desde el repositorio oficial NodeSource: `curl -fsSL https:\u002F\u002Fdeb.nodesource.com\u002Fsetup_20.x | bash - && apt install -y nodejs`. Verifica con `node -v` y `npm -v`.",{"title":59,"body":60},"Crear un usuario dedicado","Nunca ejecutes el servidor MCP como root. Crea un usuario de aplicación: `useradd -m -s \u002Fbin\u002Fbash mcp && su - mcp`. Todos los comandos posteriores se ejecutan bajo este usuario.",{"title":62,"body":63},"Clonar e instalar el servidor MCP","Elige tu implementación (ver la sección 'Servidores MCP de código abierto recomendados' más abajo). Para `@modelcontextprotocol\u002Fserver-filesystem`: `npm install -g @modelcontextprotocol\u002Fserver-filesystem`. Prueba localmente: `npx @modelcontextprotocol\u002Fserver-filesystem \u002Ftmp\u002Ftest`.",{"title":65,"body":66},"Crear un archivo de servicio systemd","Crea `\u002Fetc\u002Fsystemd\u002Fsystem\u002Fmcp-server.service` con las directivas `User=mcp`, `ExecStart=\u002Fusr\u002Fbin\u002Fnpx @modelcontextprotocol\u002Fserver-filesystem \u002Fhome\u002Fmcp\u002Fdata`, `Restart=always` y `Environment=NODE_ENV=production`. Activa e inicia: `systemctl enable --now mcp-server`.",{"title":68,"body":69},"Instalar nginx","Nginx actúa como reverse proxy frente a tu servidor MCP. `apt install -y nginx`. Crea un vhost en `\u002Fetc\u002Fnginx\u002Fsites-available\u002Fmcp` con un `location \u002F` que haga `proxy_pass http:\u002F\u002F127.0.0.1:3000;`. Activa: `ln -s \u002Fetc\u002Fnginx\u002Fsites-available\u002Fmcp \u002Fetc\u002Fnginx\u002Fsites-enabled\u002F && nginx -t && systemctl reload nginx`.",{"title":71,"body":72},"Obtener un certificado TLS con Certbot","`apt install -y certbot python3-certbot-nginx && certbot --nginx -d tu-dominio.com`. Certbot modifica automáticamente tu vhost nginx para redirigir HTTP a HTTPS y configura la renovación automática. Verifica la renovación: `certbot renew --dry-run`.",{"title":74,"body":75},"Activar la autenticación Bearer","Edita tu vhost nginx para requerir un token en el encabezado HTTP: `if ($http_authorization != 'Bearer TU_TOKEN_SECRETO') { return 401; }`. Genera un token fuerte con `openssl rand -hex 32`.",{"title":77,"body":78},"Configurar el cortafuegos","Cierra todos los puertos excepto 22, 80 y 443: `ufw allow 22\u002Ftcp && ufw allow 80\u002Ftcp && ufw allow 443\u002Ftcp && ufw enable`. El puerto interno del servidor MCP (3000 por defecto) nunca debe estar expuesto directamente.",{"title":80,"body":81},"Probar el endpoint con curl","`curl -H 'Authorization: Bearer TU_TOKEN_SECRETO' https:\u002F\u002Ftu-dominio.com\u002Fhealth`. Debes obtener un JSON de estado. Una respuesta 401 indica un token incorrecto; una respuesta 502 indica que el servicio systemd no está funcionando.",{"title":83,"body":84},"Activar los registros de acceso de nginx","Añade a tu vhost: `access_log \u002Fvar\u002Flog\u002Fnginx\u002Fmcp_access.log; error_log \u002Fvar\u002Flog\u002Fnginx\u002Fmcp_error.log warn;`. Estos registros son esenciales para detectar llamadas no autorizadas o bucles de peticiones.",{"type":86,"title":87,"body":88},"tip","Activa siempre los registros de acceso de nginx para tu servidor","Un servidor MCP recibe llamadas máquina a máquina: sin registros, no puedes detectar intentos de acceso no autorizados ni errores de integración. Configura también `log_format` para registrar el encabezado `Authorization` truncado (los primeros 8 caracteres son suficientes para identificar el origen sin exponer el token completo).",{"type":40,"title":90,"items":91},"Servidores MCP de código abierto recomendados",[92,93,94,95,96,97,98],"`@modelcontextprotocol\u002Fserver-filesystem` — acceso controlado al sistema de archivos, lectura y escritura de archivos locales.","`@modelcontextprotocol\u002Fserver-git` — clone, log, diff, commit a través de un repositorio local.","`@modelcontextprotocol\u002Fserver-fetch` — delega las peticiones HTTP salientes al servidor MCP.","`@modelcontextprotocol\u002Fserver-postgres` — conexión a una base de datos PostgreSQL: consultas SELECT, esquema, describe table.","`@modelcontextprotocol\u002Fserver-playwright` — control de un navegador Chromium headless desde el agente.","`mcp-server-sqlite` (comunidad) — alternativa ligera para bases de datos SQLite locales.","`mcp-obsidian` (comunidad) — acceso a un vault de Obsidian, útil para bases de conocimiento en Markdown.",{"type":36,"title":100,"body":101},"Asegurar el servidor MCP en producción","Un servidor MCP expuesto en Internet es una superficie de ataque. Cuatro medidas son innegociables antes de conectar un cliente de IA a este servidor en producción.\n\n**Autenticación por token Bearer.** Introduce un token único por cliente en el encabezado `Authorization`. Revoca inmediatamente un token comprometido y genera uno nuevo con `openssl rand -hex 32`.\n\n**Rate-limiting en nginx.** Añade en tu vhost: `limit_req_zone $binary_remote_addr zone=mcp:10m rate=30r\u002Fm; limit_req zone=mcp burst=10 nodelay;`.\n\n**HTTPS obligatorio y HSTS.** Tras instalar Certbot, añade en el bloque `server` HTTPS: `add_header Strict-Transport-Security \"max-age=31536000\" always;`.\n\n**Rotación de tokens.** Programa una rotación cada 90 días mediante cron o tu herramienta de gestión de secretos.",{"type":36,"title":103,"body":104},"Integrar Claude Desktop y Cursor con tu servidor MCP","Una vez que el servidor está en línea y asegurado, la conexión desde un cliente de IA lleva menos de dos minutos.\n\n**Claude Desktop.** Abre `~\u002FLibrary\u002FApplication Support\u002FClaude\u002Fclaude_desktop_config.json` (macOS) o `%APPDATA%\\Claude\\claude_desktop_config.json` (Windows). Añade una entrada en la clave `mcpServers`:\n\n```json\n{\n  \"mcpServers\": {\n    \"mi-vps\": {\n      \"url\": \"https:\u002F\u002Ftu-dominio.com\",\n      \"headers\": {\n        \"Authorization\": \"Bearer TU_TOKEN_SECRETO\"\n      }\n    }\n  }\n}\n```\n\nReinicia Claude Desktop. El servidor aparece en la lista de herramientas disponibles.\n\n**Cursor.** En los ajustes (`Cursor > Settings > MCP`), haz clic en 'Añadir servidor', elige el tipo `HTTP`, introduce la URL y añade el encabezado `Authorization`.",{"type":106,"title":107,"rows":108,"headers":134},"comparison","MCP vs API REST vs WebSocket para agentes de IA",[109,114,119,124,129],[110,111,112,113],"Modelo de comunicación","Llamadas de herramientas tipadas, descubrimiento dinámico del esquema","Solicitud\u002Frespuesta HTTP sin estado, contrato OpenAPI","Canal bidireccional persistente, eventos en tiempo real",[115,116,117,118],"Integración nativa con LLM","Nativa: Claude, Cursor, Cline, Continue leen el esquema MCP directamente","Requiere un wrapper de function-calling o un plugin","Requiere un adaptador en el lado del agente",[120,121,122,123],"Complejidad de despliegue","Baja: un proceso Node\u002FPython, un vhost nginx","Baja a media: framework REST estándar","Media a alta: gestión de conexiones, reconexión, estado",[125,126,127,128],"Adecuado para","Herramientas locales, acceso a archivos, bases de datos, automatización de agentes","Integraciones de terceros, webhooks, microservicios existentes","Notificaciones push, colaboración en tiempo real, streaming",[130,131,132,133],"Versionado y evolución","Esquema declarado en el servidor, autodescubierto por el cliente","Versionado explícito en la URL o el encabezado","Protocolo de aplicación a gestionar manualmente",[135,136,137,138],"Criterio","MCP","API REST","WebSocket",{"type":36,"title":140,"body":141},"Resolución de problemas: 4 errores frecuentes","**1. `MCP transport error: Failed to fetch`**\nEste mensaje aparece en Claude Desktop o Cursor cuando el cliente no puede llegar a la URL configurada. Causas frecuentes: el servicio systemd no está funcionando, nginx no se ha recargado tras modificar el vhost, o un cortafuegos bloquea el puerto 443.\n\n**2. `Connection refused on 127.0.0.1:3000`**\nEl servidor MCP no se inició o se bloqueó al arrancar. Consulta los registros systemd: `journalctl -u mcp-server -n 50`.\n\n**3. `Request timed out after 30000ms`**\nEl servidor responde pero demasiado lento. Verifica el tamaño del directorio o si el disco está lleno (`df -h`). Aumenta el timeout de nginx como último recurso: `proxy_read_timeout 120s;`.\n\n**4. `401 Unauthorized` sistemático**\nEl token enviado por el cliente no coincide con el esperado por nginx. Verifica la exactitud del token en la configuración del cliente.",{"type":36,"title":143,"body":144},"Hacia un entorno de IA completo en tu VPS","Un servidor MCP es un componente entre muchos en un entorno de IA autoalojado. En el mismo VPS, puedes ejecutar un modelo local a través de Ollama, una base de datos vectorial como Qdrant o Chroma, y un orquestador como n8n o Flowise. ServOrbit ofrece plantillas VPS listas para usar para estos entornos, instalables en pocos clics desde la Marketplace, en infraestructura alojada en centros de datos europeos con IPv4 dedicada y acceso root.","Su servidor MCP merece una infraestructura fiable","Despliegue su servidor MCP en un VPS ServOrbit: recursos dedicados, IPv4 fija, snapshots bajo demanda. Desde 99 DH\u002Fmes.","Ver planes VPS","\u002Fvps-cloud",[150,168,186],{"id":23,"slug":151,"slugs":152,"title":156,"excerpt":157,"readTime":158,"views":23,"isPinned":19,"noindex":19,"publishedAt":159,"updatedAt":160,"category":161,"categories":162,"featuredImage":30,"bgImage":31,"posterImage":164,"relatedSolution":165},"como-alojar-open-webui-en-un-vps",{"fr":153,"en":154,"ar":155,"es":151},"heberger-open-webui","how-to-host-open-webui-on-a-vps","كيفية-استضافة-open-webui-على-خادم-vps","Cómo alojar Open WebUI en un VPS","Guía completa para desplegar Open WebUI en su propio VPS: conserve el control de sus datos, evite pagar API en la nube y acceda a sus LLM desde el navegador.",9,"2026-06-01T00:00:00+00:00","2026-11-09T20:55:18+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":27},[163],{"id":23,"name":24,"slug":25,"color":26,"icon":27},"\u002Fblog\u002Fcovers\u002Fheberger-open-webui-poster.svg",{"categorySlug":166,"appSlug":167},"inteligencia-artificial","open-webui",{"id":169,"slug":170,"slugs":171,"title":175,"excerpt":176,"readTime":177,"views":23,"isPinned":19,"noindex":19,"publishedAt":178,"updatedAt":179,"category":180,"categories":181,"featuredImage":30,"bgImage":31,"posterImage":183,"relatedSolution":184},2,"desplegar-dify-en-un-vps",{"fr":172,"en":173,"ar":174,"es":170},"deployer-dify-vps","deploying-dify-on-a-vps-ai-workflows-under-control","نشر-dify-على-vps-سير-عمل-الذكاء-الاصطناعي-تحت-السيطرة","Desplegar Dify en un VPS: guía completa de instalación y plugins","Instala Dify en un VPS de ServOrbit: requisitos, Docker Compose, plugins offline, límites de la instalación Docker, copia antes de actualizar y solución de errores.",15,"2026-02-11T00:00:00+00:00","2026-10-29T03:10:23+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":27},[182],{"id":23,"name":24,"slug":25,"color":26,"icon":27},"\u002Fblog\u002Fcovers\u002Fdeployer-dify-vps-poster.svg",{"categorySlug":25,"appSlug":185},"dify",{"id":187,"slug":188,"slugs":189,"title":193,"excerpt":194,"readTime":195,"views":169,"isPinned":19,"noindex":19,"publishedAt":196,"updatedAt":197,"category":198,"categories":199,"featuredImage":30,"bgImage":31,"posterImage":201,"relatedSolution":202},122,"alojar-hermes-agent-en-un-vps",{"fr":190,"en":191,"ar":192,"es":188},"heberger-hermes-agent-vps","host-hermes-agent-on-a-vps","استضافة-hermes-agent-على-خادم-vps","Alojar Hermes Agent en un VPS","Aloje Hermes Agent de Nous Research en su VPS: el agente de IA open source autoaprendiente que le recuerda. Build Docker, LLM y copia de la memoria.",3,"2026-02-22T00:00:00+00:00","2026-09-07T11:26:10+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":27},[200],{"id":23,"name":24,"slug":25,"color":26,"icon":27},"\u002Fblog\u002Fcovers\u002Fheberger-hermes-agent-vps-poster.svg",{"categorySlug":166,"appSlug":203},"hermes",true,1794270592844]