· nervico-team · inteligencia-artificial · 12 min read
MCP (Model Context Protocol): guia tecnica completa
Qué es MCP, su arquitectura cliente-servidor, cómo implementar servidores y clientes, el ecosistema de herramientas disponibles y casos de uso prácticos para equipos de desarrollo.
Si trabajas con agentes de IA para desarrollo, probablemente ya has experimentado el problema fundamental: el agente es inteligente pero esta aislado. Puede razonar sobre código, pero no puede consultar tu base de datos, no puede leer tus tickets de Jira, no puede enviar mensajes a Slack ni interactuar con tus servicios internos. Al menos, no sin integraciones ad hoc para cada herramienta.
MCP (Model Context Protocol) es el estándar abierto que resuelve exactamente ese problema. Definido por Anthropic en noviembre de 2024 y adoptado rápidamente por toda la industria (incluyendo OpenAI en marzo de 2025), MCP proporciona un protocolo universal para que los agentes de IA se conecten con cualquier fuente de datos o servicio externo.
Este artículo explica qué es MCP, cómo funciona su arquitectura, cómo implementar servidores y clientes, qué herramientas están disponibles en el ecosistema actual y cómo tu equipo puede beneficiarse de este protocolo en la práctica.
Qué es MCP y por qué existe
El problema de las integraciones N-a-N
Antes de MCP, cada combinación de agente de IA + herramienta externa requería una integración específica. Si tenías 5 agentes y 10 herramientas, necesitabas hasta 50 integraciones diferentes. Cada una con su propia autenticación, formato de datos y manejo de errores.
MCP resuelve esto de la misma forma que USB resolvió el problema de los cables de periféricos: definiendo un estándar universal. En lugar de que cada agente necesite saber cómo conectarse a Slack, PostgreSQL, GitHub y Google Drive por separado, todos hablan MCP. Y en lugar de que cada herramienta necesite integrarse con cada agente, exponen un servidor MCP que cualquier agente puede consumir.
Analogía con LSP
MCP reutiliza ideas del Language Server Protocol (LSP), el protocolo que permite que un solo servidor de lenguaje (para Python, TypeScript, Rust, etc.) funcione con cualquier editor. Antes de LSP, cada editor necesitaba su propio plugin para cada lenguaje. Después de LSP, un servidor de TypeScript funciona en VS Code, Neovim, Emacs y cualquier editor que soporte el protocolo.
MCP aplica la misma lógica a la conexión entre agentes de IA y herramientas externas.
Adopción actual
La adopción de MCP ha sido excepcionalmente rápida:
- La comunidad ha construido miles de servidores MCP
- SDKs disponibles para todos los lenguajes de programación principales
- En noviembre de 2025, la especificación recibió actualizaciones mayores: operaciones asíncronas, statelessness, identidad de servidor y un registro oficial
- En diciembre de 2025, Anthropic donó MCP a la Agentic AI Foundation (AAIF), un fondo bajo la Linux Foundation, cofundado por Anthropic, Block y OpenAI
- OpenAI adoptó oficialmente MCP en marzo de 2025, integrándolo en ChatGPT desktop
- El ecosistema cuenta con mas de 200 servidores disponibles a febrero de 2026
Arquitectura de MCP
Modelo cliente-servidor
MCP sigue una arquitectura cliente-servidor donde:
- Host: La aplicación que aloja al agente de IA (Claude Desktop, Cursor, una aplicación custom)
- Client: El componente dentro del host que establece conexiones con servidores MCP. Cada client tiene una relación 1:1 con un servidor MCP
- Server: El servicio que expone herramientas, recursos o prompts al agente a través del protocolo MCP
Un host puede contener múltiples clients, cada uno conectado a un servidor diferente. Por ejemplo, Claude Desktop puede estar conectado simultáneamente a un servidor MCP de PostgreSQL, uno de GitHub y uno de Slack.
Protocolo de comunicación: JSON-RPC 2.0
Toda la comunicación entre clients y servers usa JSON-RPC 2.0, que define tres tipos de mensajes:
Requests: Enviados para iniciar una operación. Requieren un ID único y esperan una respuesta.
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "query_database",
"arguments": {
"sql": "SELECT * FROM users WHERE active = true"
}
}
}Responses: Enviados en respuesta a un request, con resultado o error.
{
"jsonrpc": "2.0",
"id": 1,
"result": {
"content": [
{
"type": "text",
"text": "Found 42 active users"
}
]
}
}Notifications: Mensajes unidireccionales sin ID que no requieren respuesta. Se usan para eventos como progreso de operaciones o cambios de estado.
Los tres primitivos de MCP
MCP define tres tipos de capacidades que un servidor puede exponer:
1. Tools (herramientas):
Las tools son funciones que el agente puede invocar para realizar acciones. Son el primitivo mas usado. Ejemplos:
query_database: Ejecutar una consulta SQLcreate_issue: Crear un issue en GitHubsend_message: Enviar un mensaje en Slackread_file: Leer un archivo del filesystem
Las tools tienen inputs definidos (schema JSON) y retornan resultados. El agente decide cuándo invocar una tool basándose en el contexto de la conversación.
2. Resources (recursos):
Los resources son datos contextuales que el agente puede leer para informar sus decisiones. A diferencia de las tools, los resources no ejecutan acciones: proporcionan información.
Ejemplos:
- Contenido de un archivo de configuración
- Schema de una base de datos
- Documentación de una API interna
- Estado actual de un deployment
3. Prompts:
Los prompts son templates reutilizables que definen formas específicas de interactuar con el agente. Son útiles para estandarizar workflows:
- Un prompt de “code review” que incluye las convenciones del equipo
- Un prompt de “debug” que guía al agente paso a paso
- Un prompt de “deploy” que verifica requisitos antes de proceder
Transporte
MCP soporta dos mecanismos de transporte:
Standard I/O (stdio): Para servidores locales. El servidor lee JSON-RPC de stdin y escribe en stdout. Los mensajes van delimitados por saltos de línea. Es el mecanismo mas simple y usado en desarrollo local.
Streamable HTTP: Para servidores remotos. Usa HTTP POST para mensajes del client al server, con Server-Sent Events (SSE) opcionales para streaming. Soporta métodos estándar de autenticación HTTP (bearer tokens, API keys, headers custom).
Negociación de capacidades
Cuando un client se conecta a un server, ambos declaran explícitamente sus capacidades soportadas durante la inicialización. Este sistema de negociación asegura que solo se usan features que ambas partes entienden, evitando errores por incompatibilidad.
Cómo implementar un servidor MCP
Estructura básica en Python
Anthropic proporciona un SDK oficial de Python para implementar servidores MCP. La estructura básica es:
from mcp.server import Server
from mcp.types import Tool, TextContent
server = Server("my-server")
@server.list_tools()
async def list_tools():
return [
Tool(
name="get_user",
description="Get user by ID from the database",
inputSchema={
"type": "object",
"properties": {
"user_id": {
"type": "string",
"description": "The user ID"
}
},
"required": ["user_id"]
}
)
]
@server.call_tool()
async def call_tool(name: str, arguments: dict):
if name == "get_user":
user = await db.get_user(arguments["user_id"])
return [TextContent(
type="text",
text=f"User: {user.name}, Email: {user.email}"
)]Estructura básica en TypeScript
import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
import { z } from 'zod';
const server = new McpServer({
name: 'my-server',
version: '1.0.0',
});
server.tool(
'get_user',
'Get user by ID from the database',
{ user_id: z.string().describe('The user ID') },
async ({ user_id }) => {
const user = await db.getUser(user_id);
return {
content: [
{
type: 'text',
text: `User: ${user.name}, Email: ${user.email}`,
},
],
};
}
);Buenas prácticas para servidores
Descripciones claras: El agente decide cuándo usar cada tool basándose en su descripción. Una descripción vaga genera invocaciones incorrectas. Sé específico sobre qué hace la tool, qué inputs necesita y qué retorna.
Schemas estrictos: Define schemas JSON precisos para los inputs. Cuanto mas restrictivo sea el schema, menos errores de invocación tendrás.
Manejo de errores informativo: Cuando una tool falla, retorna mensajes de error que el agente pueda entender y usar para reintentar o informar al usuario.
Operaciones idempotentes cuando sea posible: Si una tool puede invocarse múltiples veces con el mismo input sin efectos secundarios inesperados, reduce el riesgo de errores en workflows agénticos.
Servidores MCP disponibles
Servidores oficiales de Anthropic
Anthropic proporciona servidores pre-construidos para los sistemas enterprise mas comunes:
- PostgreSQL: Consulta y gestión de bases de datos
- GitHub: Acceso a repositorios, issues, PRs y Actions
- Git: Operaciones locales de control de versiones
- Google Drive: Lectura de documentos y archivos
- Slack: Lectura y envío de mensajes
- Puppeteer: Automatización de navegador web
Servidores de la comunidad
El ecosistema de servidores MCP de la comunidad ha crecido enormemente. A febrero de 2026, hay mas de 200 servidores disponibles cubriendo categorías como:
Bases de datos: MySQL, MongoDB, Redis, SQLite, Elasticsearch
Servicios cloud: AWS, Google Cloud, Azure, Cloudflare
Herramientas de desarrollo: Docker, Kubernetes, Terraform, CI/CD pipelines
Productividad: Notion, Linear, Jira, Confluence
APIs públicas: OpenAPI/Swagger, REST, GraphQL
Observabilidad: Datadog, Grafana, PagerDuty
Registro oficial
La actualización de la especificación de noviembre de 2025 incluyó un registro oficial community-driven para descubrir servidores MCP. Esto facilita encontrar servidores existentes antes de construir uno propio.
Casos de uso para equipos de desarrollo
Caso 1: Agente con acceso a la base de datos
Problema: Tu agente de desarrollo necesita entender el schema de la base de datos para generar queries, migrations o modelos de datos correctos. Sin acceso a la base de datos real, genera código basado en suposiciones.
Solución con MCP:
- Servidor MCP de PostgreSQL conectado a tu base de datos de desarrollo
- El agente puede consultar el schema, ver datos de ejemplo, y verificar que sus queries funcionan
- Las tools expuestas son de solo lectura (SELECT) para evitar modificaciones accidentales
Resultado: Código de acceso a datos correcto desde la primera iteración, en lugar de generar código que falla porque asumió tipos de datos incorrectos.
Caso 2: Agente integrado con el flujo de trabajo
Problema: Tu equipo usa Linear para gestión de proyectos, GitHub para código y Slack para comunicación. El agente solo conoce el código, no tiene contexto del ticket que se esta implementando ni del equipo que espera el resultado.
Solución con MCP:
- Servidor MCP de Linear: el agente lee el ticket, sus requisitos y criterios de aceptación
- Servidor MCP de GitHub: accede al repositorio, crea branches, hace commits, abre PRs
- Servidor MCP de Slack: notifica al equipo cuando completa una tarea o necesita input humano
Resultado: El agente trabaja con contexto completo. Lee el ticket, implementa la solución en el repo correcto, abre un PR con descripción que referencia el ticket, y notifica al equipo.
Caso 3: Testing y deployment automatizado
Problema: El agente puede escribir código pero no puede verificar que funciona en tu entorno ni deployar los cambios.
Solución con MCP:
- Servidor MCP de Docker: levanta entornos de test, ejecuta la aplicación localmente
- Servidor MCP de CI/CD: lanza pipelines, verifica resultados, obtiene logs de fallos
- Servidor MCP de monitoring: verifica métricas post-deploy
Resultado: El agente escribe código, lo testea en un entorno real, despliega y verifica que no hay regresiones. El ciclo completo sin salir del agente.
Caso 4: Documentación técnica automatizada
Problema: La documentación siempre esta desactualizada porque nadie tiene tiempo de mantenerla.
Solución con MCP:
- Servidor MCP de filesystem: lee el código fuente actual
- Servidor MCP de Confluence o Notion: actualiza la documentación
- El agente analiza cambios en el código y actualiza la documentación correspondiente
Resultado: Documentación que se mantiene sincronizada con el código sin esfuerzo manual.
Seguridad en MCP
Riesgos específicos del protocolo
MCP introduce vectores de seguridad específicos que debes considerar:
Inyección vía tools: Si un servidor MCP expone una tool que acepta inputs de usuario sin validación, es vulnerable a inyección. Un input malicioso puede modificar el comportamiento del agente.
Acceso excesivo: Un servidor MCP que expone demasiadas operaciones da al agente mas capacidad de la necesaria. Principio de mínimo privilegio: expón solo las tools que el agente necesita.
Exfiltración de datos: Un servidor MCP malicioso (o comprometido) puede actuar como intermediario para exfiltrar datos. Solo usa servidores MCP de fuentes confiables o audita el código de los que uses.
Configuraciones persistentes: Los archivos de configuración de MCP pueden ser objetivo de ataques de inyección indirecta. Protege los archivos de configuración con permisos restrictivos.
Recomendaciones de seguridad
- Audita los servidores MCP que usas. Lee el código fuente cuando sea posible.
- Implementa autenticación en servidores MCP remotos (bearer tokens, API keys con scope limitado).
- Usa read-only tools cuando el agente solo necesita consultar datos, no modificarlos.
- Limita la superficie de ataque exponiendo solo las tools necesarias para cada tarea.
- Monitoriza las invocaciones de tools para detectar patrones anómalos.
- Ejecuta servidores locales cuando sea posible, evitando exponer datos a redes externas.
Cómo empezar con MCP
Paso 1: Configura un cliente MCP
Si usas Claude Desktop o Cursor, ya tienes un cliente MCP integrado. Solo necesitas configurar qué servidores conectar.
En Claude Desktop, edita el archivo de configuración claude_desktop_config.json para añadir servidores:
{
"mcpServers": {
"postgres": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-postgres", "postgresql://localhost/mydb"]
}
}
}Paso 2: Instala servidores existentes
Antes de construir tu propio servidor, busca en el registro oficial si ya existe uno que cubra tu caso de uso. La mayoría se instalan con un simple npx o pip install.
Paso 3: Construye tu primer servidor custom
Cuando necesites integrar un sistema interno que no tiene servidor MCP público, el SDK oficial facilita la creación. Empieza con un servidor simple que exponga 2-3 tools de solo lectura. Itera desde ahí.
Paso 4: Integra en tu flujo de trabajo
Una vez que tu agente tiene acceso a las herramientas que necesita vía MCP, define workflows que aprovechen esa conectividad:
- “Lee el ticket de Linear, implementa la solución, abre un PR”
- “Analiza el schema de la base de datos y genera el migration file”
- “Ejecuta los tests, analiza los fallos, propón correcciones”
Conclusión
MCP resuelve un problema fundamental en el ecosistema de agentes de IA: la conectividad. Sin MCP, cada integración es trabajo custom. Con MCP, construyes un servidor una vez y cualquier agente que soporte el protocolo puede usarlo.
La analogía con USB es real: antes de un estándar universal de conectividad, cada dispositivo necesitaba su propio cable. MCP es ese estándar para agentes de IA. Y como todo estándar exitoso, su valor crece exponencialmente con la adopción.
Para equipos de desarrollo, el beneficio práctico es inmediato. Un agente con acceso a tu base de datos, tu gestor de proyectos y tu pipeline de CI/CD a través de MCP es un agente que puede hacer trabajo real, no solo sugerir código descontextualizado.
¿Quieres integrar MCP en tu flujo de desarrollo con agentes de IA?
En NERVICO ayudamos a equipos técnicos a implementar MCP de forma práctica:
- Auditoría de integraciones: Identificamos qué herramientas y datos necesitan tus agentes y diseñamos la arquitectura MCP
- Desarrollo de servidores custom: Construimos servidores MCP para tus sistemas internos
- Configuración de seguridad: Implementamos autenticación, autorización y monitorización para tus servidores MCP
- Formación: Enseñamos a tu equipo a construir y mantener servidores MCP
Sin overengineering. Sin conectar herramientas que no necesitas. Solo las integraciones que aportan valor real.
Solicitar auditoría técnica gratuita — Evaluaremos tu ecosistema de herramientas y te diremos qué integraciones MCP tienen mayor impacto para tu equipo.