La Edge Cloud Platform de Fastly

Back to blog

Follow and Subscribe

Cómo construir un servidor MCP realmente seguro con Fastly Compute

Kay Sawada

Arquitecto sénior de Enterprise Serverless, Fastly

A partir del 4 de agosto de 2025, ya está liberado el Servidor MCP de Fastly oficial. Lee el anuncio aquí y pasa por el foro para contarnos qué estás construyendo.

Todos sabemos que los LLM pueden hacer cosas increíbles a estas alturas, pero desplegarlos en el mundo real puede significar enfrentarse a problemas reales. Por ejemplo, MCP (Model Context Protocol) está recibiendo con justa razón mucha atención en este momento por los escenarios increíblemente creativos que puede habilitar. Pero las vulnerabilidades de seguridad que MCP puede exponer deberían ser una verdadera pesadilla para cualquier organización, sin mencionar otras preocupaciones importantes como escalar o gestionar un endpoint de MCP a lo largo del tiempo. Pero, ¡buenas noticias!: la seguridad, la escalabilidad, la resiliencia y la gestionabilidad son lo que hacemos. Así que te mostraremos cómo usar Fastly Compute para crear un servidor MCP listo para el mundo real: seguro, escalable y confiable.

¿Qué es MCP?

Model Context Protocol (MCP) es un protocolo abierto diseñado para estandarizar la forma en que las aplicaciones proporcionan contexto esencial a los modelos de lenguaje de gran tamaño (LLM). MCP actúa como una interfaz universal, lo que permite a las aplicaciones de IA conectarse sin problemas con diversas fuentes de datos.

MCP también ofrece la flexibilidad de cambiar entre proveedores de LLM y prioriza la seguridad de datos dentro de la infraestructura de un usuario al emplear una arquitectura cliente-servidor en la que las aplicaciones (MCP Hosts) se conectan a fuentes de datos (Local Data Sources y Remote Services) mediante servidores y clientes MCP ligeros. Este enfoque unificado ofrece integraciones preconstruidas, lo que permite a los desarrolladores aprovechar rápidamente varias fuentes de datos. 

Cubriremos cómo construir un servidor MCP usando Fastly Compute, pero si te interesa acceder a la API de la plataforma de Fastly a través de MCP, el paquete fastly-mcp-server te puede ayudar, y hablaremos más sobre esto en el futuro".

Por qué la plataforma de Fastly hace que MCP funcione mejor

Como arquitecto de Enterprise Serverless, a menudo me encuentro asesorando a clientes sobre el mejor enfoque para sus cargas de trabajo, específicamente sobre si podrían beneficiarse de la edge computing. Hay varios factores que considero, como el nivel esperado de concurrencia y los picos potenciales en la carga de trabajo, y la necesidad de una baja latencia en las aplicaciones orientadas al usuario. Y, como ya habrás adivinado, MCP, en el que profundizaremos más en este artículo, es un muy buen ejemplo de una carga de trabajo que se beneficia significativamente del diseño único de la plataforma de Fastly y de Fastly Compute. A continuación se muestra una demostración del MCP Client en acción.

Notarás que el agente de LLM está realizando múltiples llamadas simultáneas a las herramientas de MCP, como "GetHistoricalStats" y "GetServiceDetail". Si fueras responsable de ejecutar este servidor de MCP, ¿cuánta carga estimarías y cómo aprovisionarías la infraestructura del servidor? Para un entorno relativamente nuevo como MCP, tener una infraestructura masiva y compleja no es lo ideal. Si bien la tecnología sin servidor es conveniente para empezar a pequeña escala, naturalmente debes evitar problemas comunes como los arranques en frío (sin demasiadas complicaciones, por supuesto). Dada la posibilidad de picos de tráfico en los que varios usuarios puedan llamar simultáneamente a las herramientas de MCP, es fundamental elegir un entorno escalable. Además, debido a que la comunicación suele realizarse mediante chat, es fundamental mantener la latencia de respuesta lo más baja posible. 

Una ventaja destacable de usar Fastly Compute para casos como este es que su tiempo de ejecución basado en WebAssembly aprovecha la tecnología de sandbox de aislamiento, lo que permite una ejecución de código más segura tanto a nivel local como remoto. Esto significa que tu servidor MCP es más seguro si se ejecuta en Fastly. Como hemos visto, el diseño de Fastly Compute aborda muchas de las debilidades arquitectónicas inherentes de MCP. En las siguientes secciones, te guiaré a través del proceso específico para desplegar un servidor MCP remoto usando esta plataforma.

Cómo construir un servidor MCP remoto con Fastly Compute

Comenzaremos desplegando un endpoint HTTP de streaming que no incluya endpoints SSE legado. Puedes lograr esto fácilmente siguiendo estos pasos. Toma en cuenta que debes reemplazar el token de la API en dos lugares dentro del archivo main.go antes de publicar. (Para obtener información sobre cómo obtener tu token de la API, consulta este documento de guía.)

$ git clone https://gist.github.com/d829a6a58ce359b1aa99ecae12ba79f1.git fastly-compute-mcp-server
$ cd fastly-compute-mcp-server
$ vi main.go # Replace __PUT_YOUR_FASTLY_API_TOKEN__ with your own TOKEN
$ fastly compute publish 
...
✓ Activating service (version 1)

Manage this service at:
	https://manage.fastly.com/configure/services/mMnYw4qeGq81xga89Mq8O0

View this service at:
	https://highly-proper-orange.edgecompute.app

Durante el proceso de publicación, se te harán varias preguntas. Responde "sí" a cualquier aviso de s/n y, para todos los demás elementos, simplemente puedes presionar la tecla “Enter” para aceptar los valores predeterminados (vacíos). Después de un momento, verás un mensaje que indica que tu servicio ya está disponible, como se muestra arriba. 

A continuación, usa el comando npx para iniciar la herramienta de verificación de MCP Inspector y comprobar si nuestro servidor desplegado funciona correctamente. Una vez que el comando npx @modelcontextprotocol/inspector se complete correctamente, accede a http://127.0.0.1:6274 para abrir la interfaz de prueba oficial. En la barra lateral izquierda, selecciona "streamable http" como tipo de conexión e ingresa la dirección del servicio (https://*.edgecompute.app) que se muestra como resultado del comando publish.

Cuando veas "Conectado" debajo del botón Connect en la barra lateral izquierda, significa que la conexión fue exitosa. En el panel de control de la derecha, haz clic en la pestaña Herramientas y prueba acciones como Listar herramientas para probar la funcionalidad. Esto significa que operaste con éxito un servidor MCP remoto que se comunica mediante Streamable-HTTP que no es SSE.

Agregar soporte para clientes legado con SSE

A la fecha de escribir esto en mayo de 2025, muchos clientes de MCP todavía no admiten Streamable HTTP, y algunos servidores remotos solo ofrecen transporte SSE. Para garantizar la compatibilidad con versiones anteriores de estos clientes, llevaremos el servidor de MCP que creamos un paso más allá al agregar soporte para SSE. (Ten en cuenta que en esta muestra, utilizaremos Fanout para establecer conexiones SSE. Este es un servicio de mensajes push de Fastly que requiere su propio registro).

Primero, crea un nuevo servicio siguiendo los mismos pasos que antes. Sin embargo, esta vez al publicar, crea dos backends en la siguiente etapa de la pantalla. Para el primer backend, especifica la dirección de *.edgecompute.app en el campo Dominio y nómbralo "self". Para el segundo backend, registra api.fastly.com con el nombre "fastly" como se muestra a continuación.

✓ Creating service

Domain: [put-your-favorite-name-here.edgecompute.app] 

Backend (hostname or IP address, or leave blank to stop adding backends): put-your-favorite-name-here.edgecompute.app
Backend port number: [443] 
Backend name: [backend_1] self

Backend (hostname or IP address, or leave blank to stop adding backends): api.fastly.com
Backend port number: [443] 
Backend name: [backend_2] fastly

Una vez que hayas publicado correctamente, ejecuta el comando que se muestra a continuación como un paso adicional para habilitar Fanout. Cuando veas la notificación de SUCCESS, tu configuración estará lista para usarse.

$ fastly products --enable=fanout
SUCCESS: Successfully enabled product 'fanout'

Por último, configura tu cliente MCP (como Claude Desktop o Cursor) para comprobar la funcionalidad. Para los clientes que admiten SSE de forma nativa, hay poca dificultad; solo sigue las instrucciones de configuración de la aplicación. En este caso, configuraremos LibreChat, un cliente MCP que solo es compatible con STDIO, como ejemplo. (El siguiente es un ejemplo de configuración de YAML para LibreChat, pero el método de ejecución del comando npx es coherente para cualquier cliente. No olvides usar la URL de tu servicio edgecompute.app cuando configures el comando "mcp-remote").

mcpServers:
  fastly-mcp-server:
    command: npx
    args:
      - -y
      - "mcp-remote"
      - https://highly-adequate-adder.edgecompute.app/sse
      - --transport
      - sse-only

A partir de mayo de 2025, el paquete mcp-remote utiliza de forma predeterminada conexiones Streamable-HTTP, a menos que uses la opción --transport sse-only. Para garantizar una conexión mediante SSE, necesitas incluir esta opción.

Cuando inicies LibreChat con esta configuración, verás una pantalla como la siguiente. Esto completa la configuración.

Este ejemplo muestra una herramienta de MCP que descarga el VCL de un Servicio VCL de Fastly, pero puedes extenderla fácilmente con funciones adicionales. Es importante tener en cuenta que la especificación de Fanout limita el tamaño del mensaje a unos 64 KB. Por lo tanto, al admitir SSE legado, asegúrate de que los mensajes de resultado de las llamadas a la herramienta de MCP no sean demasiado grandes.

Conclusión: ¿qué sigue?

En este artículo, hemos presentado cómo el entorno de desarrollo flexible y eficiente de Fastly Compute simplifica el proceso de configurar rápidamente un servidor MCP de alto rendimiento. Como próximo paso, planeo explorar la creación de un servidor más avanzado basado en la especificación OAuth. ¡Mantente al tanto!

También nos encantaría saber cómo tu organización está aprovechando los LLM y la IA, y cómo estás abordando los desafíos asociados. Comparte tus opiniones y únete a los debates de la comunidad. Agradecemos todo tipo de comentarios.

¿Estás listo para empezar?

Ponte en contacto con nosotros