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.
-
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.