{"formatVersion":"1","kind":"dock_integration","slug":"microsoft-graph-mail","title":"Microsoft Graph Mail","summary":"Import a Harbor-safe Microsoft Graph Mail starter set for profile reads, mailbox listing, and approval-friendly send flows.","description":"A Dock-hosted Microsoft Graph Mail starter integration for Harbor. Importing it creates a local http_api port shell plus a Harbor-safe Microsoft Graph action set covering signed-in user profile reads, mailbox listing, and explicit sendMail execution.","version":"0.1.0","publisher":{"slug":"microsoft","name":"Microsoft","websiteUrl":"https://learn.microsoft.com/en-us/graph/api/overview?view=graph-rest-1.0"},"category":"Email","tags":["microsoft","graph","mail","email","productivity"],"compatibility":{"harborNode":">=0.1.0","notes":"Requires local operator-configured auth after import. Templates use location-based inputs such as input.query and input.body at execution time."},"requiredPlan":"community","portTemplates":[{"kind":"http_api","label":"Microsoft Graph Mail API","description":"Microsoft Graph Mail connection managed locally through Harbor.","baseUrl":"https://graph.microsoft.com/","authMode":"header_token","authHeaderName":"Authorization","authTokenPrefix":"Bearer"}],"actionTemplates":[{"slug":"get-profile","label":"Get Graph Profile","description":"Fetch the signed-in Microsoft Graph user profile through the stable /me route.","method":"GET","path":"/v1.0/me","approvalMode":"automatic","requestBodyMode":"none","resultMode":"json_summary"},{"slug":"list-mail-folders","label":"List Mail Folders","description":"List mail folders visible to the signed-in Microsoft Graph user.","method":"GET","path":"/v1.0/me/mailFolders","approvalMode":"automatic","requestBodyMode":"none","resultMode":"json_summary"},{"slug":"create-mail-folder","label":"Create Mail Folder","description":"Create a mail folder for the signed-in Microsoft Graph user using a bounded JSON request body.","method":"POST","path":"/v1.0/me/mailFolders","approvalMode":"require_approval","requestBodyMode":"json","resultMode":"json_summary"},{"slug":"list-messages","label":"List Messages","description":"List messages in the signed-in user's mailbox using typed query inputs for page size.","method":"GET","path":"/v1.0/me/messages","inputs":{"parameters":[{"name":"$top","in":"query","schema":{"type":"integer","minimum":1,"maximum":1000},"default":25,"description":"Maximum number of messages to return. Microsoft Graph defaults to 10 if omitted."}],"staticQuery":{"$select":"id,subject,sender,from,receivedDateTime,isRead,webLink"}},"approvalMode":"automatic","requestBodyMode":"none","resultMode":"json_summary"},{"slug":"list-folder-messages","label":"List Folder Messages","description":"List messages in a specific Microsoft Graph mail folder using an explicit folder ID and typed query inputs.","method":"GET","path":"/v1.0/me/mailFolders/{mailFolderId}/messages","inputs":{"parameters":[{"name":"mailFolderId","in":"path","required":true,"schema":{"type":"string","minLength":1},"description":"Microsoft Graph mail folder ID."},{"name":"$top","in":"query","schema":{"type":"integer","minimum":1,"maximum":1000},"default":25,"description":"Maximum number of messages to return."}],"staticQuery":{"$select":"id,subject,sender,from,receivedDateTime,isRead,webLink"}},"approvalMode":"automatic","requestBodyMode":"none","resultMode":"json_summary"},{"slug":"get-message","label":"Get Message","description":"Fetch a specific Microsoft Graph message using an explicit message ID.","method":"GET","path":"/v1.0/me/messages/{messageId}","inputs":{"parameters":[{"name":"messageId","in":"path","required":true,"schema":{"type":"string","minLength":1},"description":"Microsoft Graph message ID."}]},"approvalMode":"automatic","requestBodyMode":"none","resultMode":"json_summary"},{"slug":"delete-message","label":"Delete Message","description":"Delete a specific Microsoft Graph message using an explicit message ID.","method":"DELETE","path":"/v1.0/me/messages/{messageId}","inputs":{"parameters":[{"name":"messageId","in":"path","required":true,"schema":{"type":"string","minLength":1},"description":"Microsoft Graph message ID."}]},"approvalMode":"require_approval","requestBodyMode":"none","resultMode":"json_summary"},{"slug":"create-draft","label":"Create Draft","description":"Create a draft message for the signed-in Microsoft Graph user using a bounded JSON request body.","method":"POST","path":"/v1.0/me/messages","approvalMode":"require_approval","requestBodyMode":"json","resultMode":"json_summary"},{"slug":"reply-message","label":"Reply Message","description":"Reply to a Microsoft Graph message using an explicit message ID and a bounded JSON request body.","method":"POST","path":"/v1.0/me/messages/{messageId}/reply","inputs":{"parameters":[{"name":"messageId","in":"path","required":true,"schema":{"type":"string","minLength":1},"description":"Microsoft Graph message ID."}]},"approvalMode":"require_approval","requestBodyMode":"json","resultMode":"json_summary"},{"slug":"reply-all-message","label":"Reply All Message","description":"Reply all to a Microsoft Graph message using an explicit message ID and a bounded JSON request body.","method":"POST","path":"/v1.0/me/messages/{messageId}/replyAll","inputs":{"parameters":[{"name":"messageId","in":"path","required":true,"schema":{"type":"string","minLength":1},"description":"Microsoft Graph message ID."}]},"approvalMode":"require_approval","requestBodyMode":"json","resultMode":"json_summary"},{"slug":"forward-message","label":"Forward Message","description":"Forward a Microsoft Graph message using an explicit message ID and a bounded JSON request body.","method":"POST","path":"/v1.0/me/messages/{messageId}/forward","inputs":{"parameters":[{"name":"messageId","in":"path","required":true,"schema":{"type":"string","minLength":1},"description":"Microsoft Graph message ID."}]},"approvalMode":"require_approval","requestBodyMode":"json","resultMode":"json_summary"},{"slug":"move-message","label":"Move Message","description":"Move a Microsoft Graph message to another mail folder using an explicit message ID and a bounded JSON request body.","method":"POST","path":"/v1.0/me/messages/{messageId}/move","inputs":{"parameters":[{"name":"messageId","in":"path","required":true,"schema":{"type":"string","minLength":1},"description":"Microsoft Graph message ID."}]},"approvalMode":"require_approval","requestBodyMode":"json","resultMode":"json_summary"},{"slug":"copy-message","label":"Copy Message","description":"Copy a Microsoft Graph message to another mail folder using an explicit message ID and a bounded JSON request body.","method":"POST","path":"/v1.0/me/messages/{messageId}/copy","inputs":{"parameters":[{"name":"messageId","in":"path","required":true,"schema":{"type":"string","minLength":1},"description":"Microsoft Graph message ID."}]},"approvalMode":"require_approval","requestBodyMode":"json","resultMode":"json_summary"},{"slug":"send-mail","label":"Send Mail","description":"Send an email from the signed-in Microsoft Graph user using a bounded JSON request body.","method":"POST","path":"/v1.0/me/sendMail","approvalMode":"require_approval","requestBodyMode":"json","resultMode":"json_summary"}],"workflowTemplates":[{"slug":"mailbox-triage","title":"Mailbox Triage","summary":"Future workflow template for reading recent mail and drafting an operator-reviewed response flow."}],"helpText":"Import to Harbor, configure local auth, then use the starter Microsoft Graph Mail actions through the signed-in user's /me routes. Keep send-mail on approval unless your local policy explicitly allows operator-reviewed sends.","installNotes":"Dock shares only safe metadata. Hidden auth must be configured locally inside Harbor after import. These starter actions assume delegated Microsoft Graph access for the signed-in operator and use fixed /me routes only."}