El Model Context Protocol se consolidó como la forma estándar de darle herramientas a un modelo sin acoplar tu integración a un proveedor concreto. Escribes un servidor MCP una vez y cualquier cliente compatible —editor, agente, asistente— puede usar tus herramientas. La buena noticia para el dev: montar uno es mucho menos trabajo del que suena.
Qué expone un servidor MCP
Tres tipos de cosas, y conviene no confundirlas:
- Tools: acciones que el modelo puede invocar (consultar tu API, escribir en tu DB, lanzar un job). Tienen efectos.
- Resources: datos que el modelo puede leer (un fichero, un registro, el resultado de una query). Son de solo lectura.
- Prompts: plantillas reutilizables que el usuario puede invocar.
La distinción tool/resource importa: las tools hacen, los resources informan. Meter una acción con efectos como resource es una fuente clásica de sorpresas.
El diseño que hace o rompe la experiencia
El modelo elige qué herramienta usar leyendo su descripción. Esa descripción es tu interfaz de verdad, no la firma de la función. Reglas:
- Describe cuándo usar la herramienta, no solo qué hace. “Usa esto para X cuando el usuario pida Y.”
- Nombres y parámetros explícitos.
buscar_pedido(id_pedido)gana aquery(q). - Pocas herramientas bien definidas baten a treinta que se solapan. El modelo se pierde eligiendo entre opciones ambiguas.
Errores como datos, no como excepciones
Cuando una tool falla, no revientes la conexión: devuelve el error como resultado, en lenguaje que el modelo pueda entender y sobre el que pueda actuar. “No existe un pedido con ese ID, pídele al usuario que lo confirme” es infinitamente más útil que un stack trace o un 500 mudo. El servidor MCP no habla con humanos; habla con un modelo que va a leer ese texto y decidir el siguiente paso.
Empieza con una sola herramienta
No diseñes el servidor definitivo. Expón una tool real, conéctala a un cliente, mira cómo la usa el modelo de verdad y ajusta la descripción según lo que veas. El bucle corto de “observa y corrige la descripción” te enseña más que cualquier especificación previa.