top of page

🧩 MÓDULO 4: Resources en MCP (Model Context Protocol)

  • Foto del escritor: Brayan Neciosup
    Brayan Neciosup
  • 6 nov
  • 2 Min. de lectura

En el ecosistema MCP (Model Context Protocol), los resources son uno de los pilares fundamentales junto a las tools. Mientras las tools ejecutan acciones, los resources aportan contexto, datos o conocimiento al modelo, para que pueda razonar o responder de forma más precisa y controlada.

GitHub-Ejemplo-Practico-Resources-MCP-FastMCP

🧠 En pocas palabras:

  • Tools → hacen cosas.

  • Resources → contienen información

⚙️ Concepto Base

Un resource en MCP se define mediante un decorador (fastmcp):

ree

Componentes clave:

  • uri: identificador único global del recurso (namespace interno).

  • title: Titulo que permite exponerse en el listado de recursos del servidor MCP

  • name: nombre legible o descriptivo (para el cliente MCP).

  • description: descripción breve del propósito del recurso. (para el cliente MCP)

  • mime_type: tipo de dato que retorna (application/json, text/plain, etc.).


Para mas detalle revisar: 📽️Ejecucion_ServidorMCP-Resource y el archivo 04_resources_mcp_fastmcp.py

⚙️ Problemas iniciales que encontré

Durante la implementación de mi servidor MCP personalizado, noté que:

  • El recurso se cargaba correctamente en el servidor (visible en logs y listado interno).

  • Pero no era reconocido por el cliente MCP (solo aparecían las tools).

  • Intentar consultarlo desde el cliente generaba errores del tipo “resource not found”.

💡 Causa encontrada

El problema no era de conexión ni permisos, sino de cómo el recurso estaba definido:

  • Algunos recursos no tenían correctamente el URI, el nombre o el tipo MIME.

  • En otros casos, se retornaban estructuras no compatibles con el protocolo (por ejemplo, un objeto Python sin serializar).

✅ Solución final

Definí correctamente cada recurso usando el decorador @mcp_server.resource, con todos sus metadatos obligatorios y un valor de retorno serializable (texto, JSON, etc.). Esto permitió que:

  • El cliente MCP reconociera automáticamente el recurso.

  • Los prompts y contextos pudieran incluirlo.

  • Se validara su uso igual que con cualquier tool

🧩 Tipología conceptual de Resources

Aunque el protocolo MCP no impone tipos formales, en la práctica se clasifican según su objetivo o rol dentro del sistema.

Tipo funcional

Propósito

Ejemplo práctico

🗂️ Estático

Contener información fija (configuración, parámetros base)

Config global del sistema

📊 Dinámico

Proveer datos que cambian en tiempo real (estado, métricas)

Uso de CPU, memoria, logs activos

🌐 Externo

Conectar con APIs o servicios externos

Consulta de clima, API de precios

📚 Documental

Cargar conocimiento o referencias locales

Manual técnico, dataset, CSV

⚙️ Interno

Exponer metainformación del propio servidor MCP

Listado de tools, introspección

La diferencia clave en un recursos estático y dinámico, es el uso de async en la función del recurso.

🧭 Conclusión

Los resources son la forma más estructurada y segura de proveer contexto, estado o conocimiento a un modelo dentro del ecosistema MCP. A diferencia de las tools, no ejecutan acciones, sino que describen el entorno en el que el modelo opera.

Su diseño correcto:

  • Mejora la comprensión del modelo.

  • Facilita la modularidad del sistema.

  • Permite interoperabilidad con múltiples clientes MCP.

    🚀 En resumen:

    • Diseñar bien los resources es diseñar bien el conocimiento que el modelo entenderá. Y su acceso en el cliente MCP es mediante el agregado de un recurso como tal agregado en el prompt al cliente MCP.


Comentarios


IngenieriaDatos.jpg

Tomar decisiones sin datos es como navegar en la oscuridad...

En la era digital, los datos son el activo más valioso de las empresas; su correcta recopilación, análisis y aplicación estratégica son clave para impulsar la toma de decisiones informada, la innovación y el éxito empresarial

  • GitHub
  • LinkedIn
  • Youtube

Copyrights © 2025 Brayan Neciosup Bolaños All rights reserved.

bottom of page