Referencia de la herramienta MCP de Work IQ

El servidor MCP de Work IQ expone 10 herramientas a través del Protocolo de contexto del modelo (MCP). En este artículo se proporciona una referencia para cada herramienta, incluida su finalidad, parámetros y ejemplos de uso.

Work IQ MCP utiliza la autenticación de Microsoft Entra y los permisos de Microsoft 365 del usuario que ha iniciado sesión cuando sus herramientas acceden a las rutas de recursos de Microsoft Graph. Una capa de directiva de inquilino independiente evalúa cada solicitud de herramienta y bloquea las operaciones de mutación de forma predeterminada. Los administradores pueden habilitar las solicitudes de creación, actualización, eliminación y acción compatibles a través de la directiva de inquilino. Para obtener más información, consulte Gobernanza de políticas para Work IQ MCP.

Herramientas de entidad

Las herramientas de entidad proporcionan operaciones CRUD y acciones en recursos de Microsoft 365. Estas herramientas funcionan en rutas de acceso de recursos relativas que se asignan a puntos de conexión de Microsoft Graph .

Recuperar cambios

Lee una o más entidades por ruta de acceso de recursos. Admite capturar varias rutas en paralelo.

Parámetros

Parámetro Tipo Obligatorio Descripción
entityUrls matriz de cadena Las rutas de acceso de recursos relativas a capturar (por ejemplo, /me/messages, /me/events/{event-id})
agentId string No Reservado para uso futuro.

Respuesta

Una respuesta correcta contiene una results propiedad que es una matriz de objetos con las siguientes propiedades. Hay un objeto para cada ruta de acceso de recursos en el entityUrls parámetro de la solicitud.

Propiedad Tipo Descripción
data objeto El objeto JSON devuelto por Microsoft Graph.
statusCode integer El código de estado HTTP de la respuesta.

Nota:

  • Los límites de la directiva por inquilino se aplican a los resultados de la recopilación. Si no especifica un valor, se insertará un valor predeterminado $top de 25, con un límite máximo de 100.
  • Los mensajes de chat tienen un límite de 10 por solicitud.
  • Los $skip parámetros y $skiptoken de consulta están bloqueados.

Ejemplo

Solicitud

▶ Abra este ejemplo en la demostración interactiva

{
  "method": "tools/call",
  "params": {
    "name": "fetch",
    "arguments": {
      "entityUrls": [
        "/me/messages"
      ]
    }
  }
}
Respuesta
{
  "results": [
    {
      "data": {
        "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#users('0c6bc4a2-337b-4672-9bcd-6aa53af1b02a')/messages(id,subject,from,receivedDateTime,isRead,importance)",
        "value": [
          {
            "@odata.etag": "W/\"CQAAABYAAADltuSvpI1YRKDFG38ihSmWAABepTg8\"",
            "id": "AAMkADk0...",
            "receivedDateTime": "2026-05-31T15:40:44Z",
            "subject": "Your weekly PIM digest for Contoso",
            "importance": "normal",
            "isRead": false,
            "from": {
              "emailAddress": {
                "name": "Microsoft Security",
                "address": "MSSecurity-noreply@microsoft.com"
              }
            }
          },
          {
            "@odata.etag": "W/\"CQAAABYAAADltuSvpI1YRKDFG38ihSmWAAA/eZg0\"",
            "id": "AAMkADk0...",
            "receivedDateTime": "2026-05-26T07:39:09Z",
            "subject": "Microsoft Entra ID Protection Weekly Digest",
            "importance": "normal",
            "isRead": false,
            "from": {
              "emailAddress": {
                "name": "Microsoft Security",
                "address": "MSSecurity-noreply@microsoft.com"
              }
            }
          }
        ],
        "@odata.nextLink": "https://graph.microsoft.com/v1.0/me/messages?%24select=id%2csubject%2cfrom%2creceivedDateTime%2cisRead%2cimportance&%24top=10&%24skip=10"
      },
      "statusCode": 200
    }
  ]
}

fetch_blob

Captura contenido binario, como documentos, imágenes y archivos de Office de una ruta de acceso de Work IQ relativa. El contenido se devuelve como una cadena codificada en Base64 con metadatos.

Parámetros

Parámetro Tipo Obligatorio Descripción
path string La ruta de acceso relativa al contenido binario (por ejemplo, /drives/{drive-id}/items/{item-id}/content)
format string No Formato de conversión de archivos (por ejemplo, pdf). Solo se admite con los puntos de conexión de contenido de unidad que aceptan el parámetro Microsoft Graph $format .
agentId string No Reservado para uso futuro.

Respuesta

Una respuesta correcta expone las siguientes propiedades a través del campo MCP structuredContent .

Propiedad Tipo Descripción
statusCode integer El código de estado HTTP de la respuesta.
contentType string El tipo MIME del contenido devuelto.
blobName string Nombre de archivo, cuando esté disponible.
sizeBytes integer El tamaño del contenido sin procesar en bytes.
base64Content string El contenido binario codificado como Base64.

Nota:

  • El límite predeterminado de archivos sin procesar es de 4 MB y se puede configurar por ruta.
  • Los clientes deben descodificar base64Content en base64 para recuperar los bytes originales.
  • La carga de blobs no se duplica en el campo de contenido de texto de MCP. Los clientes deben leerlo de structuredContent.
  • Un archivo que supera el límite configurado devuelve un error de herramienta MCP que contiene el límite configurado; no devuelve contenido blob.

Ejemplo

Solicitud

▶ Abra este ejemplo en la demostración interactiva

{
  "method": "tools/call",
  "params": {
    "name": "fetch_blob",
    "arguments": {
      "path": "/me/drive/items/01ABCDEF/content"
    }
  }
}
Respuesta
{
  "structuredContent": {
    "statusCode": 200,
    "contentType": "text/plain",
    "blobName": "notes.txt",
    "sizeBytes": 14,
    "base64Content": "SGVsbG8sIFdvcmtJUSE="
  }
}

create_entity

Crea una nueva entidad en una colección.

Parámetros

Parámetro Tipo Obligatorio Descripción
parentUrl string La ruta de acceso de recursos relativa de la colección (por ejemplo, /me/events, /me/messages).
jsonBody string Los datos de entidad que se van a crear, que coinciden con el esquema de recursos. Esta propiedad debe ser una cadena codificada en JSON, no un objeto JSON.
agentId string No Reservado para uso futuro.

Respuesta

Una respuesta correcta contiene un objeto en la structuredContent propiedad con las siguientes propiedades.

Propiedad Tipo Descripción
data objeto El objeto JSON devuelto por Microsoft Graph.
statusCode integer El código de estado HTTP de la respuesta.

Ejemplo

Solicitud

▶ Abra este ejemplo en la demostración interactiva

{
  "method": "tools/call",
  "params": {
    "name": "create_entity",
    "arguments": {
      "parentUrl": "/me/messages",
      "jsonBody": "{ \"subject\": \"Hello world!\" }"
    }
  }
}
Respuesta
{
  "statusCode": 201,
  "data": {
    "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#users('0c6bc4a2-337b-4672-9bcd-6aa53af1b02a')/messages/$entity",
    "@odata.etag": "W/\"CQAAABYAAADltuSvpI1YRKDFG38ihSmWAABlFT7g\"",
    "id": "AAMkADk0...",
    "createdDateTime": "2026-06-01T17:32:39Z",
    "lastModifiedDateTime": "2026-06-01T17:32:39Z",
    "changeKey": "CQAAABYAAADltuSvpI1YRKDFG38ihSmWAABlFT7g",
    "categories": [],
    "receivedDateTime": "2026-06-01T17:32:39Z",
    "sentDateTime": "2026-06-01T17:32:39Z",
    "hasAttachments": false,
    "internetMessageId": "<CH7PR03MB79063B75F29F929523CCC68FAE152@CH7PR03MB7906.namprd03.prod.outlook.com>",
    "subject": "Hello world!",
    "bodyPreview": "",
    "importance": "normal",
    "parentFolderId": "AQMkADk0...",
    "conversationId": "AAQkADk0...",
    "conversationIndex": "AQHc8eykdVXKjf4ytUio+dQPqWG95A==",
    "isDeliveryReceiptRequested": false,
    "isReadReceiptRequested": false,
    "isRead": true,
    "isDraft": true,
    "inferenceClassification": "focused",
    "body": {
      "contentType": "text",
      "content": ""
    },
    "toRecipients": [],
    "ccRecipients": [],
    "bccRecipients": [],
    "replyTo": [],
    "flag": {
      "flagStatus": "notFlagged"
    }
  }
}

update_entity

Novedades de una entidad existente.

Parámetros

Parámetro Tipo Obligatorio Descripción
entityUrl string La ruta de acceso relativa a la entidad (por ejemplo, /me/messages/{message-id}).
jsonBody string Los datos de entidad que se van a crear, que coinciden con el esquema de recursos. Esta propiedad debe ser una cadena codificada en JSON, no un objeto JSON.
agentId string No Reservado para uso futuro.

Respuesta

Una respuesta correcta contiene un objeto en la structuredContent propiedad con las siguientes propiedades.

Propiedad Tipo Descripción
data objeto El objeto JSON devuelto por Microsoft Graph.
statusCode integer El código de estado HTTP de la respuesta.

Ejemplo

Solicitud

▶ Abra este ejemplo en la demostración interactiva

{
  "method": "tools/call",
  "params": {
    "name": "update_entity",
    "arguments": {
      "entityUrl": "/me/messages/AAMkADk0...",
      "jsonBody": "{ \"subject\": \"Updated: Hello world!\" }"
    }
  }
}
Respuesta
{
  "statusCode": 200,
  "data": {
    "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#users('0c6bc4a2-337b-4672-9bcd-6aa53af1b02a')/messages/$entity",
    "@odata.etag": "W/\"CQAAABYAAADltuSvpI1YRKDFG38ihSmWAABlFT7g\"",
    "id": "AAMkADk0...",
    "createdDateTime": "2026-06-01T17:32:39Z",
    "lastModifiedDateTime": "2026-06-01T17:32:39Z",
    "changeKey": "CQAAABYAAADltuSvpI1YRKDFG38ihSmWAABlFT7g",
    "categories": [],
    "receivedDateTime": "2026-06-01T17:32:39Z",
    "sentDateTime": "2026-06-01T17:32:39Z",
    "hasAttachments": false,
    "internetMessageId": "<CH7PR03MB79063B75F29F929523CCC68FAE152@CH7PR03MB7906.namprd03.prod.outlook.com>",
    "subject": "Updated: Hello world!",
    "bodyPreview": "",
    "importance": "normal",
    "parentFolderId": "AQMkADk0...",
    "conversationId": "AAQkADk0...",
    "conversationIndex": "AQHc8eykdVXKjf4ytUio+dQPqWG95A==",
    "isDeliveryReceiptRequested": false,
    "isReadReceiptRequested": false,
    "isRead": true,
    "isDraft": true,
    "inferenceClassification": "focused",
    "body": {
      "contentType": "text",
      "content": ""
    },
    "toRecipients": [],
    "ccRecipients": [],
    "bccRecipients": [],
    "replyTo": [],
    "flag": {
      "flagStatus": "notFlagged"
    }
  }
}

delete_entity

Elimina una entidad.

Parámetros

Parámetro Tipo Obligatorio Descripción
entityUrl string La ruta de acceso relativa del recurso a la entidad que se va a eliminar (por ejemplo, /me/messages/{id})
agentId string No El identificador de un agente específico al que dirigir la pregunta. Si se omite, el valor predeterminado es el agente de Microsoft 365 Copilot integrado.

Respuesta

Una respuesta correcta contiene una statusCode propiedad establecida en 204 en el structuredContent campo.

Ejemplo

Solicitud

▶ Abra este ejemplo en la demostración interactiva

{
  "method": "tools/call",
  "params": {
    "name": "delete_entity",
    "arguments": {
      "entityUrl": "/me/messages/AAMkADk0MDkyMzM3LTlmNzAtNDhmM...."
    }
  }
}
Respuesta
{
  "statusCode": 204
}

do_action

Ejecuta una acción de efecto secundario, como enviar correo, copiar o mover elementos.

Parámetros

Parámetro Tipo Obligatorio Descripción
actionUrl string La ruta de acceso relativa de la acción (por ejemplo, /me/messages/{message-id}/send).
jsonBody string No El cuerpo JSON de la acción, si es necesario. Esta propiedad debe ser una cadena codificada en JSON, no un objeto JSON.
agentId string No Reservado para uso futuro.

Respuesta

Una respuesta correcta contiene un objeto en la structuredContent propiedad con las siguientes propiedades.

Propiedad Tipo Descripción
data objeto El objeto JSON devuelto por Microsoft Graph, si lo hay.
statusCode integer El código de estado HTTP de la respuesta.

Ejemplo

Solicitud

▶ Abra este ejemplo en la demostración interactiva

{
  "method": "tools/call",
  "params": {
    "name": "do_action",
    "arguments": {
      "actionUrl": "/me/messages/AAMkADk0.../send"
    }
  }
}
Respuesta
{
  "statusCode": 202
}

call_function

Llama a una función de Microsoft Graph para calcular datos derivados, como programaciones, deltas o resultados de búsqueda.

Parámetros

Parámetro Tipo Obligatorio Descripción
functionUrl string La ruta de acceso relativa de la función (por ejemplo, /me/calendarview).
agentId string No Reservado para uso futuro.

Respuesta

Una respuesta correcta contiene un objeto en la structuredContent propiedad con las siguientes propiedades.

Propiedad Tipo Descripción
data objeto El objeto JSON devuelto por Microsoft Graph.
statusCode integer El código de estado HTTP de la respuesta.

Ejemplo

Solicitud

▶ Abra este ejemplo en la demostración interactiva

{
  "method": "tools/call",
  "params": {
    "name": "call_function",
    "arguments": {
      "parentUrl": "/me/calendarView?startdatetime=2026-06-01T17:51:49.607Z&enddatetime=2026-06-08T17:51:49.607Z"
    }
  }
}
Respuesta
{
  "data": {
    "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#users('0c6bc4a2-337b-4672-9bcd-6aa53af1b02a')/calendarView(id,subject,start,end,location,organizer,isAllDay)",
    "value": [
      {
        "@odata.etag": "W/\"5bbkr6SNWESgxRt/IoUplgAAKcCTsQ==\"",
        "id": "AAMkADk0...",
        "subject": "Sales and Marketing Sync",
        "isAllDay": false,
        "start": {
          "dateTime": "2026-06-08T12:30:00.0000000",
          "timeZone": "UTC"
        },
        "end": {
          "dateTime": "2026-06-08T13:00:00.0000000",
          "timeZone": "UTC"
        },
        "location": {
          "displayName": "Sales and Marketing / General",
          "locationType": "default",
          "uniqueId": "Sales and Marketing / General",
          "uniqueIdType": "private"
        },
        "organizer": {
          "emailAddress": {
            "name": "Sales and Marketing",
            "address": "SalesandMarketing@contoso.com"
          }
        }
      }
    ],
    "@odata.nextLink": "https://graph.microsoft.com/v1.0/me/calendarView?startdatetime=2026-06-01T17%3a51%3a49.607Z&enddatetime=2026-06-08T17%3a51%3a49.607Z&%24select=id%2csubject%2cstart%2cend%2clocation%2corganizer%2cisAllDay&%24top=10&%24skip=10"
  },
  "statusCode": 200
}

Herramientas de Copilot

Las herramientas de Copilot proporcionan inteligencia de lenguaje natural invocando Microsoft 365 Copilot y detectando agentes disponibles.

Preguntar

Pregunta a Microsoft 365 Copilot (o un agente específico) una pregunta en lenguaje natural sobre los datos del usuario. Cuando proporcionas un agentId, la solicitud va a ese agente específico. Cuando lo omite, la solicitud va al agente de Microsoft 365 Copilot integrado.

Parámetros

Parámetro Tipo Obligatorio Descripción
question string La pregunta en lenguaje natural que se debe formular
agentId string No El identificador de un agente específico al que dirigir la pregunta. Si se omite, el valor predeterminado es el agente de Microsoft 365 Copilot integrado.
fileUrls matriz de cadena No Una matriz de direcciones URL de archivos de OneDrive o SharePoint para usar como contexto.
conversationId string No Id. de conversación de una conversación existente. Si se proporciona, esta solicitud continúa la conversación existente.
timeZone string No Un identificador de zona horaria de la IANA que coincide con el desplazamiento UTC actual del usuario. Si se omite, la hora se devuelve en UTC.

Respuesta

Una respuesta correcta contiene una cadena JSON en la text propiedad de un objeto TextContent . La cadena incluye las siguientes propiedades.

Propiedad Tipo Descripción
response string La respuesta de Microsoft 365 Copilot o agente especificado.
conversationId string El identificador de conversación. Proporcione este identificador en las conversationId solicitudes posteriores para continuar la conversación.

Ejemplo

Solicitud

▶ Abra este ejemplo en la demostración interactiva

{
  "method": "tools/call",
  "params": {
    "name": "ask",
    "arguments": {
      "question": "Do I have any meetings today?"
    }
  }
}
Respuesta
{
  "response": "You have **4 meetings scheduled today**. Here\\u2019s a clear view of your day:...",
  "conversationId": "cc7d6f5202cb4c5b814b120440e48ede"
}

list_agents

Enumera los agentes disponibles que puede usar con la ask herramienta. Devuelve una matriz JSON de agentes disponibles y siempre se incluye el agente integrado de Microsoft 365 Copilot.

Parameters

Esta herramienta no toma parámetros.

Respuesta

Una respuesta correcta contiene una cadena JSON en la text propiedad de un objeto TextContent . La cadena incluye las siguientes propiedades.

Propiedad Tipo Descripción
agentId string El identificador único del agente.
name string El nombre para mostrar del agente.
provider string El publicador del agente.

Ejemplo

Solicitud

▶ Abra este ejemplo en la demostración interactiva

{
  "method": "tools/call",
  "params": {
    "name": "list_agent",
    "arguments": {}
  }
}
Respuesta
[
  {
    "agentId": "bizchat-as-gpt-scenario",
    "name": "Microsoft Copilot",
    "provider": "Microsoft"
  }
]

Herramientas de esquema

Las herramientas de esquema permiten el descubrimiento en tiempo de ejecución de las rutas de acceso de API disponibles y sus esquemas OpenAPI. Estas herramientas permiten a los agentes descubrir qué operaciones están disponibles sin necesidad de cargar grandes definiciones de esquemas en el contexto por adelantado.

get_schema

Recupera el esquema de OpenAPI para una operación específica, identificada por ruta de acceso y tipo de operación.

Nota:

Actualmente, solo están disponibles los esquemas de Microsoft Graph v1.0.

Parámetros

Parámetro Tipo Obligatorio Descripción
operationIds string No El identificador de operación de la API para obtener el esquema (por ejemplo, me.CreateMessages). Use operationIds or path, no ambos.
path string No La ruta de acceso de la API para obtener el esquema (por ejemplo, /me/messages). Use operationIds or path, no ambos.
operationType string El tipo de operación. Los valores válidos son fetch, create y update.
format string No El formato de salida deseado. Los valores válidos son jsonschema (formato de esquema JSON ) y typescript (definiciones de TypeScript). Si se omite, se devuelve el esquema JSON.
backend string No Reservado para uso futuro.
agentId string No Reservado para uso futuro.

Respuesta

Una respuesta correcta contiene el esquema JSON o las definiciones de TypeScript en la text propiedad de un objeto TextContent .

Ejemplo

Solicitud

▶ Abra este ejemplo en la demostración interactiva

{
  "method": "tools/call",
  "params": {
    "name": "get_schema",
    "arguments": {
      "path": "/me/messages",
      "operationType": "fetch"
    }
  }
}
Respuesta
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "title": "microsoft.graph.messageCollectionResponse",
  "type": "object",
  "properties": {
    "value": {
      "type": "array",
      "items": {
        "$ref": "#/$defs/microsoft.graph.message"
      }
    }
  },
  "$defs": {
    ...
  }
}

search_paths

Busca rutas de acceso API disponibles por prefijo o filtro de expresiones regulares. Utilice esta herramienta para detectar qué rutas de recursos están disponibles antes de llamar a otras herramientas.

Nota:

Actualmente, solo están disponibles las rutas de acceso de Microsoft Graph v1.0.

Parámetros

Parámetro Tipo Obligatorio Descripción
filter string Un patrón de prefijo o expresión regular para buscar rutas de acceso de API coincidentes (por ejemplo, messages o .*calendar.*)
backend string No Reservado para uso futuro.
agentId string No Reservado para uso futuro.

Respuesta

Una respuesta correcta contiene una paths propiedad en el structuredContent campo. Esta propiedad es una matriz de objetos con las siguientes propiedades.

Propiedad Tipo Descripción
path string La ruta de acceso de API relativa.
operations matriz de cadena Las operaciones admitidas para la ruta. Los valores válidos son fetch, create y update.

Ejemplo

Solicitud

▶ Abra este ejemplo en la demostración interactiva

{
  "method": "tools/call",
  "params": {
    "name": "search_paths",
    "arguments": {
      "filter": "messages"
    }
  }
}
Respuesta
{
  "paths": [
    {
      "path": "/admin/serviceAnnouncement/messages",
      "operations": [
        "fetch",
        "create"
      ]
    },
    {
      "path": "/admin/serviceAnnouncement/messages/{serviceUpdateMessage-id}",
      "operations": [
        "fetch",
        "create",
        "update"
      ]
    },
    ...
  ]
}

Rutas de acceso de recursos permitidas

Las herramientas de entidad funcionan con rutas de acceso de recursos relativas. De forma predeterminada, se permiten los siguientes prefijos de ruta de acceso:

  • /me/
  • /users/
  • /sites/

Se bloquean los siguientes segmentos de ruta:

  • /authentication/
  • /servicePrincipals/

Nota:

La lista completa de rutas de acceso permitidas y bloqueadas depende de la configuración de la directiva por inquilino y puede variar.

Control de errores

Cuando se produce un error en una llamada a una herramienta, el servidor MCP de Work IQ devuelve errores con la siguiente información:

  • Código de estado HTTP del servicio descendente
  • Retry-After encabezados para limitar las respuestas (pasados desde Microsoft Graph)
  • Solicitar id. de correlación para solucionar problemas

El servidor no realiza reintentos automáticos. El cliente MCP recibe errores y toma decisiones de reintento del lado cliente.