Tools, Resources y Prompts: las 3 primitivas
Las tres primitivas de MCP — Tools (modelo), Resources (aplicación) y Prompts (usuario). Cómo funcionan, cuándo usar cada una y el loop agéntico.
🔄 En la lección 3 configuraste los 5 servidores esenciales. Pero ¿qué hay dentro de un servidor MCP? ¿Cómo sabe la IA qué herramientas tiene disponibles? Las respuestas están en las tres primitivas.
Las 3 primitivas de MCP
Todo lo que un servidor MCP expone a la IA se clasifica en tres categorías.
Tools — Los “verbos” (controlados por el modelo)
Model-driven. El modelo de IA decide cuándo llamarlos según el contexto de la conversación.
@mcp.tool()
def search_issues(repo: str, query: str) -> str:
"""Buscar issues en un repositorio de GitHub"""
# Llama a la API de GitHub y devuelve resultados
Cuando dices “muéstrame los bugs abiertos”, la IA decide que necesita llamar a search_issues y lo hace automáticamente.
Característica clave: Los tools tienen efectos secundarios — crean archivos, envían mensajes, escriben en bases de datos.
Resources — Los “sustantivos” (controlados por la aplicación)
App-driven. La aplicación proporciona datos de solo lectura que la IA usa como contexto.
@mcp.resource("file://{path}")
def read_file(path: str) -> str:
"""Leer el contenido de un archivo"""
return open(path).read()
Esquemas de bases de datos, contenido de archivos, configuraciones — cualquier dato que la IA necesita consultar pero no modificar.
Característica clave: Los resources son solo lectura. Sin efectos secundarios. Seguros por diseño.
Prompts — Las “plantillas” (controlados por el usuario)
User-driven. Plantillas predefinidas que el usuario selecciona y ejecuta.
@mcp.prompt()
def code_review_prompt(pr_url: str) -> str:
"""Plantilla de revisión de código"""
return f"Revisa {pr_url}.\n\nCriterios: bugs, rendimiento, seguridad, legibilidad"
En Claude Desktop puedes acceder a los prompts con el comando /. Son perfectos para estandarizar procesos — que todo el equipo haga las revisiones de código con los mismos criterios.
✅ Quick Check: “Enviar un mensaje por Slack” — ¿es un Tool, Resource o Prompt? (Tool. Enviar un mensaje tiene un efecto secundario — cambia algo en el mundo real. La IA decide cuándo hacerlo según el contexto.)
Resumen de las 3 primitivas
| Primitiva | Controlada por | Uso | Ejemplos |
|---|---|---|---|
| Tool | Modelo IA | Acciones con efectos secundarios | Enviar mensaje, crear archivo, llamar API |
| Resource | Aplicación | Datos de solo lectura | Contenido de archivos, esquema BD, config |
| Prompt | Usuario | Plantillas reutilizables | Review de código, generación de reportes |
Esta distinción es la base para diseñar servidores MCP en la lección 5.
Funciones avanzadas
Además de las 3 primitivas principales, MCP tiene funciones avanzadas añadidas en 2025:
| Función | Descripción | Desde cuándo |
|---|---|---|
| Sampling | El servidor puede pedir al modelo IA que genere una respuesta (razonamiento recursivo) | Spec inicial |
| Roots | El cliente indica al servidor qué rutas de archivos están permitidas | 2025 |
| Elicitation | El servidor pide al usuario información adicional durante la interacción (flujos OAuth, datos de pago) | Junio 2025 |
Estas son para casos avanzados. Por ahora, domina las 3 primitivas.
El loop agéntico: donde MCP brilla
La verdadera potencia de MCP aparece en el loop agéntico — un flujo automático de varios pasos:
[Paso 1: Recopilar contexto]
├── GitHub MCP → Obtener issues abiertos
├── Filesystem → Leer archivos de código
└── BD MCP → Consultar logs de errores
[Paso 2: Analizar y decidir]
├── IA integra la información
└── Determina la mejor acción
[Paso 3: Ejecutar acción]
├── Filesystem → Modificar código
├── GitHub MCP → Crear PR
└── Slack MCP → Notificar al equipo
[Paso 4: Verificar]
├── Ejecutar tests
└── Si hay errores → volver al paso 2
Es el patrón “contexto → acción → verificación → repetir”.
Ejemplo práctico: reporte semanal automatizado
Tú: "Resume la actividad de desarrollo de la semana pasada"
Lo que hace la IA:
1. GitHub MCP (tool) → Obtiene PRs mergeados de la última semana
2. GitHub MCP (tool) → Obtiene issues creados y cerrados
3. Análisis → Clasifica PRs por tipo (feature, bugfix, refactor)
4. Generación → Arma el reporte en markdown
5. Slack MCP (tool) → Publica en #dev-updates
Cada paso usa las primitivas correctas: tools para obtener datos y ejecutar acciones, la IA para el análisis.
✅ Quick Check: ¿Por qué el loop agéntico tiene un paso de “verificación”? (Para confirmar que la acción se ejecutó correctamente. Si un test falla o un envío da error, la IA puede corregir y reintentar automáticamente.)
Puntos clave
- Las 3 primitivas de MCP: Tools (modelo), Resources (aplicación), Prompts (usuario)
- Tools tienen efectos secundarios, Resources son solo lectura, Prompts son plantillas
- El loop agéntico: contexto → acción → verificación → repetir
- Funciones avanzadas: Sampling, Roots, Elicitation (añadidas en 2025)
- Combinar múltiples servidores en un loop agéntico automatiza flujos completos
Siguiente lección
Ahora que entiendes las primitivas, en la lección 5 vas a construir tu propio servidor MCP con Python. Desde cero, con FastMCP, en 30 líneas de código.
Comprobación de Conocimientos
Primero completa el quiz de arriba
¡Lección completada!