name: m365-graph description: Read the controller's Microsoft 365 surface — mailbox (for chase emails, vendor invoices, variance commentary), calendar (close timeline, post-mortems, OOO blocks), OneDrive / SharePoint files (variance workbooks, MSAs, close pack templates), and Teams chats. enabled: true
Instructions
This is the read interface to m365-graph-mcp-server. Use it to find the context around a finance-close item: did the cost-centre owner already draft variance commentary? Is the vendor's expected invoice already in our inbox? Is the variance workbook updated? Who's OOO?
Read tool routing
| User intent | Tool |
|---|---|
Look up a user (resolve EMP-* ↔ email ↔ display name, presence, OOO) |
m365_get_user, m365_get_user_presence |
| List users in a department or under a manager | m365_list_users |
| Search a mailbox for a topic / sender / date range / flag / category | m365_search_messages |
| Read one message in full | m365_get_message |
| Read a whole conversation thread | m365_get_thread |
| What's on someone's calendar between dates | m365_list_events |
| One event with the full attendee response list | m365_get_event |
| Find common free slots for N attendees | m365_find_meeting_times |
| Search SharePoint / OneDrive files by name / content / site | m365_search_files |
| One file's full metadata (sharedWith, content summary) | m365_get_file |
| List a user's Teams chats / search across them | m365_list_chats, m365_search_chat_messages |
Write tools live in other skills
m365_draft_message+m365_send_messageare owned by the variance-email skill (H-I-T-L gated).m365_create_event(booking a meeting, e.g. variance review with Hiroshi) is also gated — show the proposed invite and wait for explicit confirmation before calling.
Cross-MCP recipe — find the commentary owner
When sap-s4 surfaces a cost-centre that needs investigate-level commentary:
sap_get_cost_centre→owner_user_id(an EMP-* id)workday_get_employee→ display name + emailm365_get_user_presence→ are they OOO? If yes, read the OOO message for coveragem365_search_messagesmailbox=that-EMP, category="finance-close" or query=cost-centre-name → has variance commentary already been drafted?m365_get_threadon the parent conversation → see the whole exchange so the controller doesn't ask twice
When NOT to use
- Numbers / GL / JE / vendor → sap-s4
- Org structure / who reports to whom → workday
- Sending mail → variance-email (it owns the propose+confirm+send pair)