← Back to search

@jaingxyz/personal-outlook-mcp

GitHub Actions Scanned 19d ago

Model Context Protocol server for a personal Outlook (consumer Microsoft account) inbox and calendar, via Microsoft Graph. Stdio transport, MSAL device-code auth, OS-keyring token cache.

npm
A
91.3 / 100

Versions

No versions found.

PermissionsTool SafetyAuthAnnotationsCode QualityStabilitySpecVuln HistoryAuthorTransparencyCommunity

Tools 20

personal_email_list_folders
annotations: verified low

List the user's mail folders (Inbox, Sent Items, custom folders, etc.) with id, display name, and unread/total counts.

idempotentHint true destructiveHint false
personal_email_list_recent
annotations: verified low

List the most recent messages in a folder, newest first. Defaults to inbox. Returns up to `limit` (max 100) plus a `nextCursor`; pass it back as `cursor` to page through more.

idempotentHint true destructiveHint false
personal_email_search
annotations: verified low

Search messages across the mailbox by free-text query. Supports Graph KQL operators (from:, subject:, hasAttachment:true, etc.). Results are ranked by relevance, not date. Returns up to `limit` (max 100) plus a `nextCursor`; pass it back as `cursor` to page through more.

idempotentHint true destructiveHint false
personal_email_read
annotations: verified low

Fetch a single message by id, including its body. Use the 'id' field returned by list_recent or search.

idempotentHint true destructiveHint false
personal_email_mark_read
annotations: verified low

Mark a message as read or unread. Pass isRead=false to mark unread.

idempotentHint true destructiveHint false
personal_email_move
annotations: verified low

Move a message to another folder (by id or well-known name). The message gets a new id in the destination folder.

destructiveHint false
personal_email_delete
annotations: verified low

Delete a message. By default soft-deletes (moves to Deleted Items). Pass hardDelete=true to permanently delete — not recoverable.

destructiveHint true
personal_email_send
annotations: verified low

Send a new email immediately. A copy is saved to Sent Items. Use create_draft instead if you want to review in Outlook before sending.

destructiveHint true
personal_email_reply
annotations: verified low

Reply to an existing message. Sends immediately. Pass replyAll=true to reply to all recipients of the original.

destructiveHint true
personal_email_create_draft
annotations: verified low

Create a draft email in the Drafts folder without sending. Returns a draftId you can pass to personal_email_send_draft.

destructiveHint true
personal_email_send_draft
annotations: verified low

Send a previously created draft by id.

destructiveHint true
personal_email_list_attachments
annotations: verified low

List attachments on a message, with id, name, contentType, and size in bytes.

destructiveHint true
personal_email_download_attachment
annotations: verified low

Download a file attachment to disk. Defaults to ~/Downloads/personal-outlook-mcp/. Returns the absolute path. Item and reference attachments are not supported.

destructiveHint true
personal_calendar_list_calendars
annotations: verified low

List the user's calendars (primary, birthdays, holidays, custom). Returns id, name, isDefault, canEdit.

destructiveHint true
personal_calendar_list_events
annotations: verified low

List events in a date range using calendarView (recurring series are expanded into individual occurrences). Provide ISO datetimes for start and end. Defaults to the primary calendar.

destructiveHint true
personal_calendar_read_event
annotations: verified low

Read full details of a single event including body and recurrence pattern.

destructiveHint true
personal_calendar_create_event
annotations: verified low

Create a new event. Times use {dateTime, timeZone} where dateTime is local-form (no offset) and timeZone is an IANA name. If attendees are provided, Graph sends invites automatically.

destructiveHint true
personal_calendar_update_event
annotations: verified low

Update an event's subject, time, location, body, or attendees. Errors if eventId refers to a single occurrence/exception of a recurring series — edit the series master or cancel+recreate instead.

destructiveHint true
personal_calendar_cancel_event
annotations: verified low

Cancel an event. Default mode sends a cancellation notice to attendees (use this for meetings). hardDelete=true skips the notice and just deletes — appropriate for events with no attendees.

destructiveHint true
personal_calendar_respond_to_invite
annotations: verified low

Respond to a meeting invite as accept, tentativelyAccept, or decline. Optionally include a comment and choose whether to send a response email to the organizer.

destructiveHint true

Permissions 3

network medium
Server uses network capabilities via: fetch()
shell high
Server uses shell capabilities via: child_process, spawn()
env_vars low
Server uses env_vars capabilities via: process.env

Scan Findings 51

info
Tool 'personal_calendar_cancel_event' annotations are consistent annotation_checker · 80%
info
Tool 'personal_calendar_respond_to_invite' annotations are consistent annotation_checker · 80%
info
Sandbox failed to start for behavioral verification behavioral_verifier · 100%
info
Tool 'personal_email_list_folders' annotations are consistent annotation_checker · 80%
info
Tool 'personal_email_list_recent' annotations are consistent annotation_checker · 80%
info
Tool 'personal_email_search' annotations are consistent annotation_checker · 80%
info
Tool 'personal_email_read' annotations are consistent annotation_checker · 80%
info
Tool 'personal_email_mark_read' annotations are consistent annotation_checker · 80%
info
Tool 'personal_email_move' annotations are consistent annotation_checker · 80%
info
Tool 'personal_email_delete' annotations are consistent annotation_checker · 80%
info
Tool 'personal_email_send' annotations are consistent annotation_checker · 80%
info
Tool 'personal_email_reply' annotations are consistent annotation_checker · 80%
info
Tool 'personal_email_create_draft' annotations are consistent annotation_checker · 80%
info
Tool 'personal_email_send_draft' annotations are consistent annotation_checker · 80%
info
Tool 'personal_email_list_attachments' annotations are consistent annotation_checker · 80%
info
Tool 'personal_email_download_attachment' annotations are consistent annotation_checker · 80%
info
Tool 'personal_calendar_list_calendars' annotations are consistent annotation_checker · 80%
info
Tool 'personal_calendar_list_events' annotations are consistent annotation_checker · 80%
info
Tool 'personal_calendar_read_event' annotations are consistent annotation_checker · 80%
info
Tool 'personal_calendar_create_event' annotations are consistent annotation_checker · 80%
info
Tool 'personal_calendar_update_event' annotations are consistent annotation_checker · 80%
medium
Buffer.from base64 in jaingxyz-personal-outlook-mcp-bd9a519/src/tools/attachments.ts:82 entropy_analyzer · 75%
info
package.json metadata manifest_parser · 100%
info
Tool: personal_email_list_folders manifest_parser · 85%
info
Tool: personal_email_list_recent manifest_parser · 85%
info
Tool: personal_email_search manifest_parser · 85%
info
Tool: personal_email_read manifest_parser · 85%
info
Tool: personal_email_mark_read manifest_parser · 85%
info
Tool: personal_email_move manifest_parser · 85%
info
Tool: personal_email_delete manifest_parser · 85%
info
Tool: personal_email_send manifest_parser · 85%
info
Tool: personal_email_reply manifest_parser · 85%
info
Tool: personal_email_create_draft manifest_parser · 85%
info
Tool: personal_email_send_draft manifest_parser · 85%
info
Tool: personal_email_list_attachments manifest_parser · 85%
info
Tool: personal_email_download_attachment manifest_parser · 85%
info
Tool: personal_calendar_list_calendars manifest_parser · 85%
info
Tool: personal_calendar_list_events manifest_parser · 85%
info
Tool: personal_calendar_read_event manifest_parser · 85%
info
Tool: personal_calendar_create_event manifest_parser · 85%
info
Tool: personal_calendar_update_event manifest_parser · 85%
info
Tool: personal_calendar_cancel_event manifest_parser · 85%
info
Tool: personal_calendar_respond_to_invite manifest_parser · 85%
info
Transport: stdio manifest_parser · 90%
info
Required env vars (2) manifest_parser · 80%
info
Sandbox failed to start for output poisoning scan output_poisoning · 100%
medium
Permission: network access detected permission_analyzer · 70%
high
Permission: shell access detected permission_analyzer · 95%
low
Permission: env_vars access detected permission_analyzer · 90%
info
SBOM generated: 310 components sbom_generator · 100%
medium
No build provenance detected (SLSA L0) slsa_assessor · 90%