Tu Agente de IA es Inútil Sin Esto
Por qué MCP es el USB-C de la Inteligencia Artificial.
Has construido un agente de IA. Quizás incluso es uno bueno. Los prompts son precisos, el modelo es rápido y las respuestas se sienten naturales.
Pero entonces alguien le pide que consulte Salesforce por un registro de cliente. O que obtenga los últimos tickets de Jira. O que busque en tu documentación interna.
Y tu hermoso agente simplemente… no puede.
Este es el problema de integración que todas las plataformas de IA eventualmente enfrentan. Tu agente necesita manos. Necesita ojos en tus sistemas de negocio reales. Sin ellos, solo estás ejecutando un chatbot caro.
¿La solución tradicional? Escribir un wrapper de API personalizado para cada servicio al que quieras conectar. Leer su documentación, manejar su autenticación, lidiar con sus límites de tasa, rezar para que no cambien sus endpoints el próximo mes. Y luego hacerlo de nuevo para el siguiente servicio. Y el siguiente.
El Model Context Protocol cambia este cálculo por completo.
Lo Que MCP Realmente Resuelve
Piensa en USB antes de USB-C. Tenías Mini-USB, Micro-USB, conectores propietarios de Apple y un cajón lleno de cables que solo funcionaban con dispositivos específicos. USB-C no solo agregó un nuevo conector: estableció un estándar que significaba que cualquier cable podía funcionar con cualquier dispositivo.
MCP está haciendo lo mismo para las integraciones de herramientas de IA.
En lugar de escribir código personalizado para conectar tu agente con Salesforce, HubSpot, GitHub o cualquier otro servicio, implementas el protocolo una vez (o descargas un servidor preconstruido) y cualquier agente compatible con MCP puede comunicarse con él de inmediato.
El protocolo maneja la capa de comunicación. Tú solo defines qué hacen tus herramientas y qué datos necesitan.
Configuración de Múltiples Integraciones
Mastra tiene soporte nativo para MCP a través de su MCPClient. Puedes conectar tanto herramientas locales (ejecutándose como procesos hijo) como servicios remotos (ejecutándose en su propia infraestructura).
Aquí tienes una configuración de producción realista que conecta Google Maps para rutas, un servicio meteorológico y una búsqueda local de Wikipedia:
import { MCPClient } from '@mastra/mcp';
export const mcpClient = new MCPClient({ servers: { // Herramienta local (Stdio) wikipedia: { command: 'npx', args: ['-y', 'wikipedia-mcp'], }, // Maps y Navegación (Remoto/HTTP) googleMaps: { url: new URL(process.env.GOOGLE_MAPS_MCP_URL!), requestInit: { headers: { Authorization: `Bearer ${process.env.GOOGLE_MAPS_API_KEY}`, }, }, }, // Integración de Servicio Meteorológico weather: { url: new URL('https://mcp.weatherapi.dev/v1'), requestInit: { headers: { 'X-API-Key': process.env.WEATHER_API_KEY!, }, }, }, },});El cliente gestiona el ciclo de vida de la conexión, maneja la generación de procesos para herramientas locales y mantiene conexiones HTTP para servidores remotos. No tocas sockets ni stdio directamente.
Conectando Herramientas a Agentes
Una vez que tienes tu cliente MCP configurado, darle esas herramientas a un agente es sencillo:
import { Agent } from '@mastra/core/agent';import { openai } from '@ai-sdk/openai';import { mcpClient } from '../mcp';
export const navigationDirectionsAgent = new Agent({ id: 'navigation-directions-agent', name: 'Asistente de Navegación y Direcciones', instructions: `Eres un asistente de navegación útil que proporciona planificación de rutas y consejos de viaje. - Siempre confirma las ubicaciones de origen y destino - Usa las herramientas de Google Maps para encontrar rutas óptimas - Consulta las condiciones climáticas a lo largo de la ruta - Proporciona tiempos de viaje estimados y sugiere alternativas si el clima es malo - Incluye detalles relevantes como tráfico, estado de las carreteras y puntos de interés - Mantén las respuestas claras y accionables`, model: openai('gpt-5'), tools: await mcpClient.getTools(), // <--- Esta es la línea mágica});Cuando un usuario pregunta: “¿Cuál es la mejor ruta de San Francisco a Lake Tahoe, y debería preocuparme por el clima?”
El agente lee las definiciones de herramientas disponibles, se da cuenta de que tiene acceso a herramientas de rutas de Google Maps y pronóstico meteorológico, las ejecuta con los parámetros correctos y responde con una ruta óptima más las condiciones climáticas actuales en el camino.
No escribiste ni una sola línea de código de la API de Google Maps ni de integración con el servicio meteorológico.
Autenticación por Usuario
Hay un error de seguridad fácil de cometer aquí: hardcodear credenciales.
Si pones una sola clave de API de Google Maps en tus variables de entorno y das el trabajo por terminado, todos los usuarios comparten la misma cuota y los mismos límites de tasa. Más importante aún, si usas servicios que almacenan preferencias de usuario (como ubicaciones guardadas o rutas favoritas), todos verían los mismos datos. Esto funciona bien para demos. Es un pasivo en producción.
Mastra lo resuelve permitiéndote crear clientes MCP de forma dinámica con credenciales específicas por usuario:
async function handleUserRequest(userPrompt: string, userCredentials: UserCreds) { // Crear un cliente para ESTE usuario en particular const userMcp = new MCPClient({ servers: { googleMaps: { url: new URL(process.env.GOOGLE_MAPS_MCP_URL!), requestInit: { headers: { // Clave de API o token específico del usuario Authorization: `Bearer ${userCredentials.mapsApiKey}`, 'X-User-ID': userCredentials.userId, }, }, }, }, });
const agent = mastra.getAgent('navigationDirectionsAgent');
// Inyectar herramientas en tiempo de ejecución const response = await agent.generate(userPrompt, { toolsets: await userMcp.getToolsets(), });
return response;}Cada usuario obtiene su propio conjunto de herramientas aislado con sus propias cuotas y preferencias de API. Las ubicaciones guardadas del Usuario A permanecen privadas, el historial de rutas del Usuario B es independiente. Así es como funcionan en la práctica los agentes SaaS multi-tenant.
Construcción de Herramientas Compuestas
A veces necesitas combinar múltiples herramientas MCP en una sola operación. Quizás quieras planificar una ruta que tenga en cuenta tanto el tráfico en tiempo real como las condiciones meteorológicas en el camino.
Puedes envolver herramientas MCP en definiciones de herramientas personalizadas:
export const smartRouteTool = createTool({ id: 'smart-route-planner', description: 'Planifica ruta óptima considerando tráfico y condiciones climáticas', execute: async ({ context, mastra }) => { // Obtener las herramientas raw const tools = await mcpClient.getTools();
// 1. Obtener la ruta base de Google Maps const routeData = await tools.googleMaps_getDirections.execute({ context: { origin: context.origin, destination: context.destination } });
// 2. Consultar el clima a lo largo de la ruta const weatherData = await tools.weather_getForecast.execute({ context: { coordinates: routeData.waypoints } });
// 3. Devolver la ruta mejorada con alertas meteorológicas return { ...routeData, weatherAlerts: weatherData.alerts, recommendation: weatherData.severe ? 'Consider delaying trip' : 'Safe to travel' }; },});Esto te da un control preciso sobre exactamente cómo interactúan las herramientas mientras aprovechas el protocolo MCP para el trabajo pesado.
Hacia Dónde Conduce Esto
Escribir clientes de API personalizados para cada servicio con el que tu agente de IA necesita comunicarse nunca fue sostenible. Escala mal, se rompe a menudo y ata tu plataforma a implementaciones específicas.
MCP no resuelve todos los desafíos de integración: la autenticación sigue siendo compleja, la limitación de tasas sigue importando y no todos los servicios tienen un servidor MCP todavía. Pero establece una base que hace que construir plataformas de agentes sea significativamente menos doloroso.
Si estás diseñando un sistema de IA que necesita interactuar con servicios externos, entender MCP probablemente valga tu tiempo.
Recursos
- Documentación de MCP de Mastra
- Registro de MCP
- Klavis AI (MCP Empresarial)
- Repositorio de Mastra en GitHub
Lee la Serie
- Enrutamiento LLM
- Seguridad y Guardrails
- MCP e Integraciones de Herramientas (Esta Publicación)
- Flujos de Trabajo y Memoria