MCP No Conecta Modelos a Datos. Conecta Herramientas a Cualquier Modelo — y Eso es Justo Por Qué Está Ganando

MCP No Conecta Modelos a Datos. Conecta Herramientas a Cualquier Modelo — y Eso es Justo Por Qué Está Ganando

Programming· 9 min read

Todo el Mundo Llama a MCP "el USB-C de la IA" — pero el Protocolo No Conecta a Ningún Modelo, y Esa es Precisamente la Razón por la Que Gana

Anthropic lanzó el Model Context Protocol en noviembre de 2024. Lee eso otra vez: MCP no se lanzó con una API de modelo. No había promptengineering, no había streaming de tokens, no había nada del lado del LLM. Solo herramientas, recursos y plantillas de prompt, definidos sobre JSON-RPC 2.0.

*Y por eso ganó. *

En marzo de 2025, OpenAI — que ya tenía su propio ecosistema de plugins y function calling — anunció soporte para MCP. En abril de 2025, Google DeepMind hizo lo mismo en Gemini. Microsoft añadió tooling. ¿Un protocolo nacido en un laboratorio de IA adoptado por sus tres competidores principales en cuestión de meses? Eso no pasa con un nicho. Eso pasa cuando atacas el terreno correcto.

El terreno correcto no era el modelo. Era la capa de herramientas.

La Analogía del USB-C Está Rota — y Te Hace Construir la Cosa Equivocada

El USB-C es un conector físico. Síncrono. Un solo estándar de plug-and-play. Enchufas, y ya está.

MCP es un protocolo de mensajería. Asíncrono. Con arquitectura cliente–host–servidor, notificaciones streaming y múltiples transportes (stdio y HTTP streamable).

*No es lo mismo. Y la confusión no es inocente. *

La analogía del USB-C te hace pensar que el modelo es el centro del universo. Que MCP existe para conectar un modelo concreto a tus datos. Eso es exactamente lo que los vendors quieren que creas, porque así compras su modelo.

La analogía histórica correcta es JDBC. O el HTTP temprano. Un formato de cable que permite que muchas herramientas y muchos consumidores interoperen sin que nadie sea dueño del ecosistema. En JDBC, la base de datos no importa: escribes SQL una vez y funciona contra Postgres, MySQL u Oracle. En MCP, el modelo no importa: escribes un servidor una vez y funciona contra Claude, GPT o Gemini.

Ese es el truco que la mayoría de tutoriales no te cuentan.

Las Tres Primitivas Son una Declaración de Diseño — no un Detalle Técnico

MCP define exactamente tres primitivas:

  • Tools — acciones ejecutables. El agente decide cuándo llamarlas.
  • Resources — contexto legible. El agente las carga como datos de entrada.
  • Prompts — plantillas reutilizables para orquestar flujos.

Split que recuerda a cómo REST separó verbos, sustantivos y documentos. Y cada primitiva tiene una postura de seguridad distinta.

El Vector de Ataque Que Nadie Quiere Mirar: los Resources

Las tools se ejecutan. Las resources se cargan como contexto. Y ahí está el problema.

Imagina un servidor MCP que expone una resource que consulta una base de productos. La descripción del producto dice esto:

[@portabletext/react] Unknown block type "code", specify a component for it in the `components.types` prop

Ese texto viaja en el contexto que el agente consume. Y el agente, que confía en el contexto, podría obedecerlo. *Ese es el patrón de incidentes número uno en despliegues tempranos de MCP. *

La resource no se ejecuta: se lee. Pero lo que lees entra directo al contexto del modelo. Prompt injection por la puerta de atrás.

Server bien diseñado: las resources están sanitizadas, se tratan como datos no fiables, y las tools de escritura exigen autorización explícita de un humano.

Server mal diseñado: las resources van tal cual al contexto sin validación, y las tools de escritura se auto-autorizan.

Mitigación concreta: todo lo que viene de una resource se trata como input de un usuario no autenticado. Nunca como instrucción.

El Servidor MCP no es "una Feature de IA". Es un Contrato de Servicio Tipado

Aquí está la lección que casi nadie enseña: un servidor MCP que escribes hoy no es "una feature de IA". Es un contrato de servicio tipado y testeable que casualmente puede consumir cualquier agente.

Por eso las schemas importan más que el modelo. El protocolo no tiene semántica específica de modelo. No sabe si el consumidor es Claude o un test de integración. Lo que decide si tu tool funciona es la calidad del schema.

Mira la diferencia:

Una tool con parámetro libre:

[@portabletext/react] Unknown block type "code", specify a component for it in the `components.types` prop

El modelo no sabe si query es un DNI, un nombre, un dominio o una fecha. Adivinará. Y cuando adivina, alucina inputs.

Una tool con contrato estricto:

[@portabletext/react] Unknown block type "code", specify a component for it in the `components.types` prop

El schema no es boilerplate. El schema ES el producto. Un enum en vez de un string libre ahorra tokens en cada llamada del agente y elimina las invocaciones fantasmas. Las descripciones no se escriben para humanos: se escriben para que un agente autónomo las lea sin ambigüedad.

Los 5 Pasos para un Servidor MCP que Sobreviva al Modelo

He pasado por suficientes integraciones en producción (doce, para ser exacto) para saber que el protocolo no mata proyectos. La falta de scope sí. Aquí está el framework que uso: los 5 Pasos del Servidor Vendor-Neutral.

Paso 1 — Scope a UNA herramienta. Elige una capacidad de alto valor: una query de solo lectura o una acción bien acotada. No construyas una "suite de conectores". El 90% de los proyectos MCP que mueren mueren de scope, no de complejidad del protocolo.

Paso 2 — Scaffold con el SDK oficial. TypeScript o Python. Define los schemas de input/output como contratos estrictos (Zod o Pydantic). Descripciones escritas para un agente autónomo, no para un humano.

Paso 3 — Testea con MCP Inspector antes de conectar modelo alguno. El Inspector es la herramienta de referencia del ecosistema: un GUI que ejercita tu servidor sin un LLM. Aísla bugs del protocolo de bugs del comportamiento del modelo. Es la forma más rápida de aprender el flujo de mensajes.

Paso 4 — Elige transporte deliberadamente. stdio para tools locales de un solo proceso (sistemas de ficheros, CLIs). HTTP streamable para servidores remotos multi-cliente. Y una regla innegociable: *nunca expongas un servidor MCP HTTP sin autenticación. *

Mira cómo el transporte es un detalle de implementación:

[@portabletext/react] Unknown block type "code", specify a component for it in the `components.types` prop
[@portabletext/react] Unknown block type "code", specify a component for it in the `components.types` prop

El protocolo no cambia. Solo el transporte. stdio para local, seguro y single-process. HTTP para remoto — y ahí exiges auth, rate limiting y listas de herramientas permitidas.

Paso 5 — Conecta el modelo al final. Cuando esté todo testeado, conecta un cliente y ejecuta. Audita los modos de fallo: truncamiento de resultados, prompt injection vía contenido devuelto por tools, y límites de permisos. *Trata al agente como un usuario sin privilegios. * El blast radius lo define el autor del servidor, no el modelo.

Cliente Python: Demostrando que el Protocolo Funciona sin Ningún LLM

La prueba definitiva de que MCP no es "una feature de IA": puedes consumirlo con un cliente que no tiene nada que ver con modelos.

[@portabletext/react] Unknown block type "code", specify a component for it in the `components.types` prop

Un script Python que lista tools y las ejecuta directamente sobre el protocolo. Petición JSON-RPC 2.0. Respuesta estructurada. Cero LLM implicado.

Los segments del protocolo son la diferencia: las resources se cargan como contexto, las tools se ejecutan como acciones. Aprender esa distinción es aprender MCP.

"¿Por Qué Añadir Otro Protocolo si Ya Tengo Function Calling?"

Porque el function calling de OpenAI te ata a OpenAI. A su API. A su pricing. A sus límites de contexto.

*MCP es un contrato neutral que funciona con cualquier provedor. * Y lo mejor: puedes testearlo y ejercitarlo con cero implicación de un LLM. Escribe el servidor una vez, consúmelo desde Claude, GPT o un script de test. Los modelos son intercambiables; la capa de herramientas, no.

Eso no es teoría. Es la adopción en el timeline:

  • Anthropic — noviembre 2024: lanza MCP sobre la capa de tools/datos.
  • OpenAI — marzo 2025: adopta MCP, pese a tener plugin ecosystem y function calling propios.
  • Google DeepMind — abril 2025: añade soporte en Gemini.

Tres vendors con stack propio adoptando el estándar de su competidor. La evidencia más fuerte de que la capa de herramientas era el terreno en disputa, no la inteligencia de los modelos.

El Argumento de la Inmadurez: "Esperaré a que Estabilice"

El spec está versionado y estable. Los SDKs oficiales (TypeScript y Python) están mantenidos. La adopción ocurrió a nivel de vendors en cuestión de meses.

Si esperas, heredas patrones legacy. Si empiezas con una tool de solo lectura, el risk es bajo y la experiencia compuesta es enorme. Cada servidor que escribes hoy es un activo que consumirá cualquier modelo de mañana.

El Ecosistema No Está Consolidado — y Eso es una Oportunidad

Múltiples SDKs, implementaciones no estándar, vendors añadiendo extensiones (OAuth-style authorization, registries, listings). El spec es estable; el tooling alrededor se mueve.

El punto dulce pragmático: escribe servidores contra los SDKs oficiales, fija versiones con gestor de dependencias, y trata los registries como ayuda de descubrimiento, no como dependencia.

La Lección Real

MCP no ganó porque conecta modelos a datos. Ganó porque decouplificó la capa de herramientas de los vendors de modelos. Los modelos se volvieron commodities encima de un contrato neutral.

Tu servidor MCP no es una feature de IA. Es un servicio tipado y testeable que casualmente puede consumir cualquier agente.

Optimiza por calidad de schema y seguridad. No por los quirks de ningún modelo. Porque el modelo que uses hoy va a cambiar, pero el contrato que escribas bien — ese se queda.

Y la próxima vez que alguien te diga que MCP es "el USB-C de la IA", corrige: es el JSON-RPC 2.0 de las herramientas. Y eso es mucho más poderoso.

Artículos relacionados

---

¿Quieres recibir contenido como este cada semana? Suscríbete a mi newsletter

Brian Mena

Brian Mena

Software engineer building profitable digital products: SaaS, directories and AI agents. All from scratch, all in production.

LinkedIn