Agent restructure

This commit is contained in:
m3tm3re
2026-02-03 20:04:26 +01:00
parent 1f320f1c95
commit 7e4a44eed6
47 changed files with 1 additions and 10709 deletions

View File

@@ -1,172 +0,0 @@
---
name: outlook
description: "Outlook Graph API email integration via MCP. Use when: (1) Reading or sending emails, (2) Managing inbox folders and organization, (3) Working with calendar events, (4) Managing contacts, (5) Searching mail content, (6) Managing email rules and filters. Triggers: 'email', 'Outlook', 'inbox', 'calendar', 'contacts', 'folder', 'mail', 'message'."
compatibility: opencode
---
# Outlook Graph API Integration
Integration with Microsoft Outlook via Graph API through MCP. Provides comprehensive access to email, calendar, contacts, and folder management.
## Core Operations
### Mail Access
**List messages**: `list_messages(folder_id=None, top=25, skip=0)` - Returns messages from a folder. Use `folder_id` to target specific folders (defaults to Inbox).
**Get message**: `get_message(message_id)` - Full message details including body, headers, and attachments.
**Get message content**: `get_message_content(message_id)` - Retrieve message body (HTML/Text).
**List attachments**: `list_attachments(message_id)` - All attachments for a message.
**Get attachment**: `get_attachment(message_id, attachment_id)` - Download attachment content.
### Mail CRUD
**Create draft**: `create_draft(subject, body, to_recipients, cc_recipients=None, bcc_recipients=None, importance=None, is_html=True)` - Create email draft.
**Send email**: `send_email(subject, body, to_recipients, cc_recipients=None, bcc_recipients=None, importance=None, is_html=True)` - Send email directly.
**Send draft**: `send_draft(message_id)` - Send an existing draft.
**Reply to email**: `reply_to_message(message_id, body, is_html=True)` - Reply to sender.
**Reply all**: `reply_all_message(message_id, body, is_html=True)` - Reply to sender and all recipients.
**Forward email**: `forward_message(message_id, to_recipients, body=None, is_html=True)` - Forward message to new recipients.
**Update message**: `update_message(message_id, subject=None, body=None, importance=None, is_read=None)` - Update message properties.
**Delete message**: `delete_message(message_id)` - Move to deleted items.
**Delete permanently**: `delete_message_permanently(message_id)` - Permanently remove message.
### Folder Management
**List folders**: `list_folders()` - All accessible folders including custom ones.
**Get folder**: `get_folder(folder_id)` - Folder details and metadata.
**Create folder**: `create_folder(name, parent_folder_id=None)` - Create new folder.
**Update folder**: `update_folder(folder_id, name=None)` - Rename folder.
**Delete folder**: `delete_folder(folder_id)` - Remove folder and all contents.
**Move messages**: `move_messages(message_ids, destination_folder_id)` - Move messages between folders.
**Copy messages**: `copy_messages(message_ids, destination_folder_id)` - Copy messages to another folder.
### Calendar Events
**List events**: `list_events(calendar_id=None, top=25, skip=0)` - Events from calendar (defaults to primary calendar).
**Get event**: `get_event(event_id)` - Full event details including attendees and location.
**Create event**: `create_event(subject, start_time, end_time, body=None, location=None, attendees=None, is_all_day=False)` - Create calendar event.
**Update event**: `update_event(event_id, subject=None, start_time=None, end_time=None, body=None, location=None, attendees=None)` - Modify event.
**Delete event**: `delete_event(event_id)` - Remove event.
**Accept event**: `accept_event(event_id, response_comment=None, send_response=True)` - Accept meeting invitation.
**Decline event**: `decline_event(event_id, response_comment=None, send_response=True)` - Decline meeting invitation.
**Tentatively accept**: `tentatively_accept_event(event_id, response_comment=None, send_response=True)` - Tentatively accept invitation.
**List calendars**: `list_calendars()` - All user calendars.
### Contacts
**List contacts**: `list_contacts(folder_id=None, top=25, skip=0)` - Contacts from folder (defaults to default contacts folder).
**Get contact**: `get_contact(contact_id)` - Full contact details.
**Create contact**: `create_contact(given_name, surname, email_addresses, phone_numbers=None, business_address=None)` - Create new contact.
**Update contact**: `update_contact(contact_id, given_name=None, surname=None, email_addresses=None, phone_numbers=None, business_address=None)` - Modify contact.
**Delete contact**: `delete_contact(contact_id)` - Remove contact.
**List contact folders**: `list_contact_folders()` - All contact folders.
**Create contact folder**: `create_contact_folder(name)` - Create new contact folder.
### Search
**Search mail**: `search_mail(query, folder_id=None, top=25)` - Search emails by content across folders.
**Search contacts**: `search_contacts(query)` - Search contacts by name, email, or other properties.
**Search events**: `search_events(query)` - Search calendar events by subject or location.
## Common Workflows
### Send an email
1. Compose email: `send_email("Subject", "Body content", ["recipient@example.com"])`
2. For complex emails with attachments, use `create_draft()` first, then `send_draft()`
### Organize inbox
1. List folders: `list_folders()` to see available folders
2. Create new folder: `create_folder("Project Alpha")`
3. Move messages: `move_messages(["msg-id-1", "msg-id-2"], "new-folder-id")`
### Process meeting invitation
1. Check invitation: `get_message(message_id)` to view details
2. Accept: `accept_event(event_id, response_comment="I'll attend")`
3. Or decline: `decline_event(event_id, response_comment="Cannot make it")`
### Search for old emails
1. Use `search_mail("project deadline", top=50)` for broad search
2. Use `list_messages(folder_id="sent-items")` to check sent folder
3. Combine with filters: `search_mail("report", folder_id="archive")`
### Create recurring meeting
1. Use `create_event()` with appropriate `start_time` and `end_time`
2. Set up multiple events or use calendar-specific recurrence features
### Manage project correspondence
1. Create project folder: `create_folder("Q4 Project")`
2. Search for related emails: `search_mail("Q4 Project")`
3. Move relevant emails: `move_messages(message_ids, "project-folder-id")`
4. Track contacts: `create_contact("John", "Doe", ["john@partner.com"])`
## IDs and Discovery
Outlook Graph API uses resource IDs. When operations require IDs:
1. **Messages**: Start with `list_messages()` to get message IDs
2. **Folders**: Use `list_folders()` to discover folder IDs
3. **Events**: Use `list_events()` to get event IDs
4. **Contacts**: Use `list_contacts()` to get contact IDs
Most IDs are returned in list operations and can be used directly in CRUD operations.
## Important Notes
**Email body format**: The `is_html` parameter controls whether email body is HTML (default) or plain text. HTML provides rich formatting but plain text is more universal.
**Recipients format**: Email addresses should be provided as arrays of strings: `["user1@example.com", "user2@example.com"]`.
**Date/time format**: All datetime values should be in ISO 8601 format (e.g., `2024-12-25T14:30:00`).
**Batch operations**: Some operations like `move_messages()` and `copy_messages()` accept arrays of IDs for batch processing.
**Pagination**: List operations support `top` (max results) and `skip` (offset) parameters for handling large datasets.
**Folder IDs**: Common folder IDs include:
- Inbox (default for most operations)
- Sent Items
- Drafts
- Deleted Items
- Archive
Use `list_folders()` to get exact IDs and discover custom folders.