{"passport":{"unfragile":{"@version":"1.0","version":"2026-05","artifact":{"id":"npm_npm-softeriams-365-mcp-server","slug":"npm-softeriams-365-mcp-server","name":"@softeria/ms-365-mcp-server","type":"mcp","url":"https://www.npmjs.com/package/@softeria/ms-365-mcp-server","page_url":"https://unfragile.ai/npm-softeriams-365-mcp-server","categories":["mcp-servers"],"tags":["microsoft","365","mcp","server"],"pricing":{"model":"open_source","free":true,"starting_price":null},"status":"active","verified":false},"capabilities":[{"id":"npm_npm-softeriams-365-mcp-server__cap_0","uri":"capability://tool.use.integration.microsoft.graph.api.resource.access.via.mcp.protocol","name":"microsoft graph api resource access via mcp protocol","description":"Exposes Microsoft 365 resources (users, groups, mail, calendar, files, teams) through the Model Context Protocol by implementing MCP server endpoints that translate client requests into authenticated Graph API calls. Uses OAuth 2.0 client credentials or delegated auth flows to obtain tokens, then marshals HTTP requests to Microsoft's REST endpoints and transforms JSON responses back through MCP's tool/resource interface.","intents":["I want my AI agent to read and write emails from an Office 365 mailbox","I need to query user directory and group membership data from Azure AD","I want to access files and folders stored in OneDrive or SharePoint","I need to retrieve calendar events and meeting details from Outlook"],"best_for":["Enterprise teams building AI agents that need M365 integration","Developers automating Office 365 workflows through LLM-powered interfaces","Organizations standardizing on MCP for multi-service AI orchestration"],"limitations":["Requires valid Microsoft 365 tenant and application registration in Azure AD","Rate limiting applies per Graph API quotas (typically 2000 requests per 20 seconds per app)","Token refresh logic must handle expiry; no built-in token caching strategy documented","Batch operations limited to Graph API's native batch endpoint constraints (20 requests per batch)"],"requires":["Node.js 16+","Microsoft 365 tenant with admin access to register application","Azure AD application with Graph API permissions (Mail.Read, Calendar.Read, Files.Read, etc.)","Client ID and secret or certificate for OAuth 2.0 authentication","MCP-compatible client (Claude Desktop, custom LLM agent framework)"],"input_types":["MCP tool calls with parameters (e.g., mailbox ID, filter queries, resource paths)","OAuth tokens (bearer tokens from Azure AD)","Graph API query parameters (OData filters, select clauses, pagination tokens)"],"output_types":["JSON-serialized Microsoft Graph resources (users, messages, events, files)","Structured metadata (timestamps, IDs, permissions, content previews)","Error responses with Graph API error codes and descriptions"],"categories":["tool-use-integration","enterprise-integration"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"npm_npm-softeriams-365-mcp-server__cap_1","uri":"capability://tool.use.integration.email.reading.and.composition.with.mailbox.context","name":"email reading and composition with mailbox context","description":"Implements MCP tools to list, read, and compose emails by wrapping Graph API's /me/messages, /me/mailFolders, and /me/sendMail endpoints. Supports filtering by folder, sender, date range, and subject via OData query parameters; retrieves message bodies in both plain text and HTML; handles attachments as metadata references. Composition creates draft messages with recipients, subject, body, and attachment references before sending.","intents":["I want to check my inbox and read recent emails from specific senders","I need to search emails by date range or keywords","I want to compose and send an email on behalf of the authenticated user","I need to retrieve email attachments or check for unread message counts"],"best_for":["AI agents handling email triage and response automation","Personal productivity assistants that need mailbox access","Workflow automation tools that compose notifications or reports via email"],"limitations":["Cannot access shared mailboxes without explicit delegation setup in Azure AD","Attachment handling is metadata-only; binary content not streamed through MCP","HTML email bodies may contain scripts/styles that require sanitization before display","Sent mail folder updates may have eventual consistency delays (typically <1 minute)"],"requires":["Mail.Read and Mail.Send Graph API permissions","User mailbox provisioned in Exchange Online","Valid OAuth token with delegated permissions (not app-only)"],"input_types":["Folder ID or well-known folder names (inbox, drafts, sentItems)","OData filter strings (e.g., \"from eq 'user@example.com'\")","Message composition parameters (recipients, subject, body, attachments)"],"output_types":["Message objects with ID, sender, subject, received date, preview text","Full message bodies (plain text or HTML)","Attachment metadata (filename, size, content type, attachment ID)"],"categories":["tool-use-integration","automation-workflow"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"npm_npm-softeriams-365-mcp-server__cap_2","uri":"capability://tool.use.integration.calendar.event.querying.and.meeting.management","name":"calendar event querying and meeting management","description":"Provides MCP tools to list, read, and create calendar events by calling Graph API's /me/calendarview, /me/events, and /me/events POST endpoints. Supports time-range queries via startDateTime/endDateTime parameters, retrieves event details (title, time, attendees, location, body), and creates new events with attendee lists and reminders. Handles recurring events and timezone conversions via IANA timezone identifiers.","intents":["I want to check my calendar for availability in a specific time window","I need to find meetings with specific attendees or in specific rooms","I want to create a new meeting and invite attendees","I need to check if a time slot is free before scheduling"],"best_for":["Meeting scheduling assistants and calendar automation","Availability-checking agents for resource allocation","Personal assistants that need to coordinate meetings across calendars"],"limitations":["Recurring event expansion requires explicit date range queries; no built-in recurrence rule parsing","Attendee availability (free/busy) requires separate /me/calendar/getSchedule endpoint call","Cannot directly modify meeting organizer's calendar if user is attendee (only organizer can modify)","Timezone handling depends on correct IANA timezone identifiers; ambiguous timezones may fail"],"requires":["Calendars.Read and Calendars.ReadWrite Graph API permissions","User mailbox with Exchange Online calendar provisioned","Valid OAuth token with delegated permissions"],"input_types":["Date/time range (startDateTime, endDateTime in ISO 8601 format)","OData filter parameters (e.g., attendee email, subject keywords)","Event creation payload (subject, start/end times, attendees, location, body)"],"output_types":["Event objects with ID, subject, start/end times, attendees, location, organizer","Event body/description text","Attendee response status (accepted, declined, tentative, no response)"],"categories":["tool-use-integration","automation-workflow"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"npm_npm-softeriams-365-mcp-server__cap_3","uri":"capability://tool.use.integration.onedrive.and.sharepoint.file.access.with.path.based.navigation","name":"onedrive and sharepoint file access with path-based navigation","description":"Implements MCP tools to list, read metadata, and retrieve file contents from OneDrive and SharePoint via Graph API's /me/drive, /drives/{driveId}/items, and /sites/{siteId}/drive endpoints. Supports hierarchical path navigation, file search by name/type, and retrieval of file metadata (size, modified date, sharing status). File contents are returned as base64-encoded data or text previews depending on file type.","intents":["I want to browse my OneDrive folder structure and find specific files","I need to read the contents of a document or spreadsheet","I want to search for files by name or modification date","I need to check file sharing permissions and access levels"],"best_for":["Document-aware AI agents that need to access user files","Knowledge management systems that index OneDrive/SharePoint content","Workflow automation that reads and processes Office documents"],"limitations":["Large files (>100MB) may timeout; streaming download not supported through MCP","Office document parsing (docx, xlsx, pptx) requires separate processing; Graph API returns raw binary","Shared files require explicit sharing link or delegated access; cannot access arbitrary user drives","Search functionality limited to filename and basic metadata; full-text search requires separate Microsoft Search API"],"requires":["Files.Read or Files.ReadWrite Graph API permissions","OneDrive or SharePoint site provisioned for user","Valid OAuth token with delegated permissions"],"input_types":["Drive ID or 'me' for user's default drive","Item ID or path-based navigation (e.g., '/Documents/Report.docx')","Search query parameters (name, file type, modified date range)"],"output_types":["File/folder metadata (ID, name, size, modified date, MIME type, webUrl)","File contents as base64-encoded data or text preview","Folder listing with child items and hierarchy information"],"categories":["tool-use-integration","data-processing-analysis"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"npm_npm-softeriams-365-mcp-server__cap_4","uri":"capability://tool.use.integration.user.and.group.directory.querying.with.azure.ad.integration","name":"user and group directory querying with azure ad integration","description":"Exposes MCP tools to query Azure AD users and groups via Graph API's /users, /groups, and /me/memberOf endpoints. Supports filtering by display name, email, job title, department, and group membership; retrieves user profiles (name, email, phone, office location, manager) and group details (members, owners, description). Implements pagination for large result sets using Graph API's skipToken mechanism.","intents":["I want to find a user by email or name in the organization directory","I need to check group membership and who manages a team","I want to retrieve organizational hierarchy (manager relationships)","I need to list all members of a specific group or team"],"best_for":["Organizational lookup and people-finding agents","Team collaboration tools that need directory integration","Access control and permission management workflows"],"limitations":["User.Read.All permission required for directory queries; may require admin consent","Manager relationships are one-level only; no built-in org chart traversal","Sensitive attributes (phone, office location) may be redacted based on privacy policies","Group membership queries have eventual consistency delays in large tenants (typically <5 minutes)"],"requires":["User.Read.All and Group.Read.All Graph API permissions","Azure AD tenant with users and groups provisioned","Valid OAuth token (app-only or delegated with admin consent)"],"input_types":["OData filter parameters (displayName, mail, jobTitle, department)","User or group ID","Pagination tokens (skipToken for large result sets)"],"output_types":["User objects with ID, displayName, mail, jobTitle, department, manager reference","Group objects with ID, displayName, description, members, owners","Membership relationships (user -> groups, group -> members)"],"categories":["tool-use-integration","data-processing-analysis"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"npm_npm-softeriams-365-mcp-server__cap_5","uri":"capability://tool.use.integration.teams.and.channel.message.access.with.conversation.threading","name":"teams and channel message access with conversation threading","description":"Implements MCP tools to list Teams, channels, and messages via Graph API's /teams, /teams/{teamId}/channels, and /teams/{teamId}/channels/{channelId}/messages endpoints. Supports message filtering by date range and sender, retrieves message threads with replies, and accesses channel metadata (description, topic, members). Messages include sender info, timestamps, and reply counts for conversation context.","intents":["I want to search Teams messages for specific keywords or from specific people","I need to read recent messages in a channel to understand context","I want to retrieve conversation threads and replies","I need to list all teams and channels the user has access to"],"best_for":["Team collaboration assistants that need message context","Knowledge extraction from Teams conversations","Notification and alert systems that monitor Teams channels"],"limitations":["Message search limited to channel messages; direct message (1:1 chat) access requires separate /chats endpoint","Full-text search across all messages requires Microsoft Search API; Graph API filtering is metadata-only","Threaded replies may require separate API calls per message to retrieve all replies","Message editing history not available; only current message content is returned"],"requires":["ChannelMessage.Read.All and Team.ReadBasic.All Graph API permissions","User member of Teams with channels","Valid OAuth token with delegated permissions"],"input_types":["Team ID and channel ID","Date range filters (from/to dates)","Sender email or display name for filtering"],"output_types":["Message objects with ID, sender, timestamp, body, reply count","Channel metadata (ID, displayName, description, topic)","Team metadata (ID, displayName, description, members count)"],"categories":["tool-use-integration","search-retrieval"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"npm_npm-softeriams-365-mcp-server__cap_6","uri":"capability://tool.use.integration.mcp.server.lifecycle.management.and.tool.registration","name":"mcp server lifecycle management and tool registration","description":"Implements the MCP server protocol by registering tools and resources with the MCP client, handling request/response serialization, and managing server initialization. Uses Node.js event emitters to handle incoming tool calls, validates request parameters against defined schemas, and returns structured responses. Manages OAuth token lifecycle (refresh, expiry handling) and connection state between MCP client and Graph API.","intents":["I want to set up an MCP server that exposes M365 capabilities to my LLM client","I need to ensure my MCP server properly handles authentication and token refresh","I want to define which M365 tools are available to my AI agent","I need to debug MCP communication between my client and the server"],"best_for":["Developers building MCP-compatible LLM agents","Teams deploying Claude Desktop with M365 integration","Organizations standardizing on MCP for multi-service orchestration"],"limitations":["No built-in persistence for server state; requires external database for audit logs or request history","Token refresh logic must be implemented per OAuth flow; no automatic token caching documented","MCP protocol version compatibility depends on client implementation; version negotiation not explicitly documented","Error handling and retry logic for Graph API failures must be implemented by server operator"],"requires":["Node.js 16+","MCP client library or compatible LLM framework (Claude Desktop, custom agent)","Valid Azure AD application registration with Graph API permissions","Network connectivity between MCP server and Graph API endpoints"],"input_types":["MCP protocol messages (tool calls with parameters)","OAuth tokens and refresh tokens","Server configuration (client ID, secret, tenant ID)"],"output_types":["MCP protocol responses (tool results, errors)","Structured tool definitions and schemas","Server status and health check responses"],"categories":["tool-use-integration","automation-workflow"],"confidence":0.5,"matches":0,"success_rate":0}],"trust":{"score":29,"verified":false,"data_access_risk":"high","permissions":["Node.js 16+","Microsoft 365 tenant with admin access to register application","Azure AD application with Graph API permissions (Mail.Read, Calendar.Read, Files.Read, etc.)","Client ID and secret or certificate for OAuth 2.0 authentication","MCP-compatible client (Claude Desktop, custom LLM agent framework)","Mail.Read and Mail.Send Graph API permissions","User mailbox provisioned in Exchange Online","Valid OAuth token with delegated permissions (not app-only)","Calendars.Read and Calendars.ReadWrite Graph API permissions","User mailbox with Exchange Online calendar provisioned"],"failure_modes":["Requires valid Microsoft 365 tenant and application registration in Azure AD","Rate limiting applies per Graph API quotas (typically 2000 requests per 20 seconds per app)","Token refresh logic must handle expiry; no built-in token caching strategy documented","Batch operations limited to Graph API's native batch endpoint constraints (20 requests per batch)","Cannot access shared mailboxes without explicit delegation setup in Azure AD","Attachment handling is metadata-only; binary content not streamed through MCP","HTML email bodies may contain scripts/styles that require sanitization before display","Sent mail folder updates may have eventual consistency delays (typically <1 minute)","Recurring event expansion requires explicit date range queries; no built-in recurrence rule parsing","Attendee availability (free/busy) requires separate /me/calendar/getSchedule endpoint call","builder identity is not verified yet","no observed match outcomes yet"],"rank_breakdown":{"adoption":0.05,"quality":0.39,"ecosystem":0.42,"match_graph":0.25,"freshness":0.52,"weights":{"adoption":0.25,"quality":0.25,"ecosystem":0.15,"match_graph":0.23,"freshness":0.12}},"observed_outcomes":{"matches":0,"success_rate":0,"avg_confidence":0,"top_intents":[],"last_matched_at":null},"maintenance":{"status":"active","updated_at":"2026-05-24T12:16:24.482Z","last_scraped_at":"2026-05-03T14:23:36.579Z","last_commit":null},"community":{"stars":null,"forks":null,"weekly_downloads":null,"model_downloads":null,"model_likes":null}},"distribution":{"claim_url":"https://unfragile.ai/submit?claim=npm-softeriams-365-mcp-server","compare_url":"https://unfragile.ai/compare?artifact=npm-softeriams-365-mcp-server"}},"signature":"XbMD9nuzGD8+zFNO/sGScosdpWeSFYcLyl4lr7NWH1k9kwwfUjRHxKWDSs9vvJLDC5JV3m38fc0F6QaNKezlDg==","signedAt":"2026-06-21T14:30:56.162Z","signedBy":"unfragile.ai","version":1},"_links":{"self":"https://unfragile.ai/api/v1/passport/npm-softeriams-365-mcp-server","artifact":"https://unfragile.ai/npm-softeriams-365-mcp-server","verify":"https://unfragile.ai/api/v1/verify?slug=npm-softeriams-365-mcp-server","publicKey":"https://unfragile.ai/api/v1/trust-passport-public-key","spec":"https://unfragile.ai/trust","schema":"https://unfragile.ai/schema.json","docs":"https://unfragile.ai/docs"}}