Documentación Oficial de MCP en Español
  1. Conceptos
Documentación Oficial de MCP en Español
  • Empezar
    • Introducción
    • Servidores de ejemplo
    • Clientes de ejemplo
    • Inicio rápido
      • Para desarrolladores de servidores
      • Para desarrolladores de clientes
      • Para usuarios de Claude Desktop
  • Tutoriales
    • Construyendo MCP con LLMs
    • Depuración
    • Inspector
  • Conceptos
    • Arquitectura central
    • Recursos
    • Indicaciones
    • Herramientas
    • Muestreo
    • Raíces
    • Transportes
  • Desarrollo
    • Qué hay de nuevo
    • Hoja de ruta
    • Contribuyendo
  1. Conceptos

Recursos

Exponer datos y contenido desde sus servidores a los LLM
Los Resources son una primitiva central en el Model Context Protocol (MCP) que permite a los servidores exponer datos y contenido que pueden ser leídos por los clientes y utilizados como contexto para las interacciones con LLM.
Los Resources están diseñados para ser controlados por la aplicación, lo que significa que la aplicación cliente puede decidir cómo y cuándo deben utilizarse. Diferentes clientes de MCP pueden manejar los Resources de manera diferente. Por ejemplo:
Claude Desktop actualmente requiere que los usuarios seleccionen explícitamente los Resources antes de que puedan ser utilizados.
Otros clientes podrían seleccionar automáticamente los Resources basándose en heurísticas.
Algunas implementaciones podrían incluso permitir que el propio modelo de IA determine qué Resources utilizar.
Los autores del servidor deben estar preparados para manejar cualquiera de estos patrones de interacción al implementar el soporte de Resources. Para exponer datos a los modelos automáticamente, los autores del servidor deben utilizar una primitiva controlada por el modelo como Tools.

Descripción general#

Los Resources representan cualquier tipo de dato que un servidor MCP quiera poner a disposición de los clientes. Esto puede incluir:
Contenido de archivos
Registros de bases de datos
Respuestas de API
Datos del sistema en vivo
Capturas de pantalla e imágenes
Archivos de registro
Y más
Cada Resource se identifica mediante un URI único y puede contener datos de texto o binarios.

URIs de Resources#

Los Resources se identifican mediante URIs que siguen este formato:
[protocol]://[host]/[path]
Por ejemplo:
file:///home/user/documents/report.pdf
postgres://database/customers/schema
screen://localhost/display1
El protocolo y la estructura de la ruta son definidos por la implementación del servidor MCP. Los servidores pueden definir sus propios esquemas de URI personalizados.

Tipos de Resources#

Los Resources pueden contener dos tipos de contenido:

Resources de texto#

Los Resources de texto contienen datos de texto codificados en UTF-8. Estos son adecuados para:
Código fuente
Archivos de configuración
Archivos de registro
Datos JSON/XML
Texto plano

Resources binarios#

Los Resources binarios contienen datos binarios sin procesar codificados en base64. Estos son adecuados para:
Imágenes
PDFs
Archivos de audio
Archivos de video
Otros formatos no textuales

Descubrimiento de Resources#

Los clientes pueden descubrir los Resources disponibles a través de dos métodos principales:

Resources directos#

Los servidores exponen una lista de Resources concretos a través del endpoint resources/list. Cada Resource incluye:

Plantillas de Resources#

Para los Resources dinámicos, los servidores pueden exponer plantillas de URI que los clientes pueden utilizar para construir URIs de Resource válidos:

Lectura de Resources#

Para leer un Resource, los clientes realizan una solicitud resources/read con el URI del Resource.
El servidor responde con una lista de contenidos de Resource:
Los servidores pueden devolver múltiples Resources en respuesta a una solicitud resources/read. Esto podría utilizarse, por ejemplo, para devolver una lista de archivos dentro de un directorio cuando se lee el directorio.

Actualizaciones de Resources#

MCP admite actualizaciones en tiempo real para los Resources a través de dos mecanismos:

Cambios en la lista#

Los servidores pueden notificar a los clientes cuando su lista de Resources disponibles cambia a través de la notificación notifications/resources/list_changed.

Cambios de contenido#

Los clientes pueden suscribirse a las actualizaciones de Resources específicos:
1.
El cliente envía resources/subscribe con el URI del Resource
2.
El servidor envía notifications/resources/updated cuando el Resource cambia
3.
El cliente puede obtener el contenido más reciente con resources/read
4.
El cliente puede cancelar la suscripción con resources/unsubscribe

Ejemplo de implementación#

Aquí hay un ejemplo simple de implementación del soporte de Resources en un servidor MCP:
TypeScript
Python

Mejores prácticas#

Al implementar el soporte de Resources:
1.
Utilice nombres y URIs de Resources claros y descriptivos.
2.
Incluya descripciones útiles para guiar la comprensión del LLM.
3.
Establezca los tipos MIME apropiados cuando se conozcan.
4.
Implemente plantillas de Resources para contenido dinámico.
5.
Utilice suscripciones para Resources que cambian con frecuencia.
6.
Maneje los errores con elegancia con mensajes de error claros.
7.
Considere la paginación para listas de Resources grandes.
8.
Almacene en caché el contenido de los Resources cuando sea apropiado.
9.
Valide los URIs antes de procesarlos.
10.
Documente sus esquemas de URI personalizados.

Consideraciones de seguridad#

Al exponer Resources:
Valide todos los URIs de Resources.
Implemente controles de acceso apropiados.
Limpie las rutas de archivos para evitar el recorrido de directorios.
Tenga cuidado con el manejo de datos binarios.
Considere la limitación de velocidad para las lecturas de Resources.
Audite el acceso a los Resources.
Cifre los datos confidenciales en tránsito.
Valide los tipos MIME.
Implemente tiempos de espera para lecturas de larga duración.
Maneje la limpieza de Resources de manera apropiada.
Previous
Arquitectura central
Next
Indicaciones
Built with