Recursos

Guía de diseño de recursos

Cómo los sistemas MCP-first preparan los datos para agentes de IA, desde el modelo de acceso hasta la redacción orientada al contexto.

Un recurso en el sentido de MCP no es un volcado crudo de base de datos. Es contexto de datos legible, estructurado, filtrado y adaptado al agente que lo necesita en ese momento. Mientras que una herramienta ejecuta una acción, un recurso proporciona el contexto sobre cuya base son posibles decisiones sensatas.

Los recursos con kind="resources" describen exactamente eso: qué objetos de contexto proporciona un sistema, cómo están construidos y qué nivel de protección llevan.

Effective AI Access

El acceso a datos para IA no puede reducirse a una única pregunta. El modelo correcto es aditivo:

User Permission
+ Agent Permission
+ Client Trust Level
+ Resource Sensitivity
+ Purpose
+ Context
+ Confirmation State
= Effective AI Access

Cada uno de estos factores puede restringir el acceso, incluso si todos los anteriores lo permitirían en principio.

Eso es demasiado impreciso. Los permisos de usuario y los permisos de IA son dimensiones distintas. Un usuario actúa de forma consciente, en contexto, con responsabilidad. Un agente actúa de forma automatizada, sin capacidad de juicio sobre la sensibilidad, dentro de un scope que debe estar claramente limitado.

Ejemplo: Datos salariales

El director general tiene acceso fundamental a los datos salariales, ese es su permiso de usuario. Un agente Sales Assistant que corre en el contexto de ese usuario no debería recibir esos datos en su contexto de todas formas.

Por qué: el agente tiene un propósito claramente definido (gestión de contactos, seguimientos, trabajo de proyectos). Los datos salariales quedan fuera de ese propósito. El Agent Permission y el Purpose excluyen el acceso, independientemente de lo que el usuario pueda ver él mismo.

User Permission:     ✓ (el director general puede ver datos salariales)
Agent Permission:    ✗ (Sales Assistant no tiene scope salary:read)
Resource Sensitivity: sensitive
Purpose:             Gestión de contactos / trabajo de proyectos
= Effective AI Access: denegado

Redaction & Context Filtering

Los sistemas MCP-first deben preparar los datos para los agentes de IA de forma selectiva, no simplemente retransmitirlos. Esto significa: no todos los campos que existen internamente pertenecen al contexto del agente.

Datos internos completos

{
  "name": "Max Müller",
  "email": "[email protected]",
  "phone": "+49...",
  "privateNotes": "...",
  "bankAccount": "...",
  "internalRiskScore": "...",
  "lastEmails": ["..."]
}

Esta versión contiene datos personales, datos bancarios, notas privadas y el historial completo de correos electrónicos. Está destinada a vistas internas y usuarios con los permisos correspondientes, no para un agente que debe sugerir un seguimiento.

Versión preparada para agentes

{
  "name": "Max Müller",
  "company": "Müller GmbH",
  "role": "Investment Manager",
  "lastInteractionSummary": "Opened exposé but did not reply.",
  "recommendedNextAction": "Follow up by email."
}

El agente recibe solo lo que necesita para su tarea: nombre, contexto, estado de la última interacción y una recomendación de acción. Los datos bancarios, la puntuación de riesgo y los datos crudos de correo están filtrados. Esto es Redaction by Design.

La redacción no es una medida de seguridad posterior. Es parte del diseño del recurso: cada recurso tiene una variante preparada para agentes que contiene solo los campos relevantes para el propósito en cuestión.

Recursos con contexto

Los recursos bien diseñados no solo entregan datos crudos, sino contexto integrado: líneas de tiempo, resúmenes, recomendaciones de acción. Estos son los recursos que realmente hacen útiles a los agentes.

Recursos con contexto enriquecido
  • contacts.timeline
  • contacts.communication_history
  • projects.recommended_next_actions
  • projects.timeline
  • projects.activities
  • analytics.activity_summary
  • analytics.risk_summary
  • system.available_workflows

Estos recursos van más allá de contacts.get o projects.list. Proporcionan contexto procesado que permite a un agente recomendar una próxima acción sensata, sin tener que realizar él mismo consultas crudas de base de datos ni evaluar campos sensibles.

Los agentes necesitan contexto relevante, no bases de datos completas.

Manifiesto MCP-first, §8