Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
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 | Sí | 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
$topde 25, con un límite máximo de 100. - Los mensajes de chat tienen un límite de 10 por solicitud.
- Los
$skipparámetros y$skiptokende 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 | Sí | 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
base64Contenten 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 | Sí | La ruta de acceso de recursos relativa de la colección (por ejemplo, /me/events, /me/messages). |
jsonBody |
string | Sí | 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 | Sí | La ruta de acceso relativa a la entidad (por ejemplo, /me/messages/{message-id}). |
jsonBody |
string | Sí | 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 | Sí | 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 | Sí | 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 | Sí | 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 | Sí | 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 | Sí | 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 | Sí | 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-Afterencabezados 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.