{"passport":{"unfragile":{"@version":"1.0","version":"2026-05","artifact":{"id":"npm_npm-microsoftworkiq","slug":"npm-microsoftworkiq","name":"@microsoft/workiq","type":"mcp","url":"https://www.npmjs.com/package/@microsoft/workiq","page_url":"https://unfragile.ai/npm-microsoftworkiq","categories":["mcp-servers","code-editors"],"tags":["copilot","m365","mcp","mcp-server","ai","agents","workiq"],"pricing":{"model":"open_source","free":true,"starting_price":null},"status":"active","verified":false},"capabilities":[{"id":"npm_npm-microsoftworkiq__cap_0","uri":"capability://tool.use.integration.microsoft.365.resource.access.via.mcp.protocol","name":"microsoft 365 resource access via mcp protocol","description":"Exposes Microsoft 365 services (Teams, SharePoint, OneDrive, Outlook, etc.) as MCP tools that Claude and other LLM clients can invoke through standardized tool-calling interfaces. Implements the Model Context Protocol specification to translate M365 REST API calls into LLM-compatible function schemas with automatic authentication handling via Microsoft Graph API credentials.","intents":["I want my AI agent to read and compose emails from Outlook without building custom OAuth flows","I need Claude to search across Teams messages and SharePoint documents as part of a workflow","I want to automate document creation in OneDrive triggered by LLM reasoning","I need my Copilot extension to access M365 data without exposing API keys to the client"],"best_for":["Enterprise teams building Copilot plugins for Microsoft 365","Developers integrating Claude with M365 tenants","Organizations standardizing on MCP for AI agent infrastructure"],"limitations":["Requires Microsoft Graph API permissions configured at tenant level — cannot work with personal Microsoft accounts without admin consent","MCP protocol adds request/response serialization overhead (~50-100ms per call) compared to direct SDK usage","Limited to M365 services exposed via Microsoft Graph — some legacy Exchange/SharePoint features may not be available","No built-in caching layer — each LLM invocation triggers a fresh API call to Microsoft Graph"],"requires":["Node.js 16+ (MCP server runtime)","Microsoft 365 tenant with admin access to register app permissions","Azure AD app registration with Microsoft Graph API permissions (Mail.Read, Sites.Read.All, etc.)","MCP client implementation (Claude Desktop, custom LLM wrapper, or compatible agent framework)","Valid OAuth 2.0 credentials (client ID, client secret, or managed identity)"],"input_types":["MCP tool call requests (JSON-RPC 2.0 format)","Query strings for search operations","Document/message identifiers (UUIDs, email addresses)","Structured parameters for create/update operations"],"output_types":["JSON-structured M365 resource objects (emails, documents, calendar events)","Search result sets with metadata","Operation confirmation responses","Error responses with Microsoft Graph error codes"],"categories":["tool-use-integration","automation-workflow"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"npm_npm-microsoftworkiq__cap_1","uri":"capability://safety.moderation.tenant.aware.microsoft.graph.api.authentication.and.authorization","name":"tenant-aware microsoft graph api authentication and authorization","description":"Manages OAuth 2.0 token lifecycle and Microsoft Graph API permission scopes at the tenant level, automatically handling token refresh, scope validation, and delegated vs. application permissions. Implements Azure AD authentication patterns to ensure that LLM-invoked M365 operations respect the authenticated user's permissions and organizational policies without exposing credentials to the LLM client.","intents":["I need the AI agent to respect my organization's data access policies when reading emails and documents","I want to ensure the Copilot plugin can only access resources the logged-in user has permission to see","I need to audit which M365 resources the AI agent accessed on behalf of users","I want to revoke AI agent access to M365 without changing user passwords"],"best_for":["Enterprise security teams implementing AI governance in M365","Compliance-focused organizations (healthcare, finance) requiring audit trails","Multi-tenant SaaS platforms offering Copilot as a feature"],"limitations":["Token refresh adds latency on first request after token expiration (~500ms for OAuth round-trip)","Scope negotiation happens at app registration time — cannot dynamically request new permissions at runtime","Delegated permission model requires user context — cannot perform background operations without a user identity","No built-in support for service-to-service (app-only) authentication in current version — requires custom implementation"],"requires":["Azure AD tenant with application registration capability","Microsoft Graph API scopes pre-configured in app manifest (Mail.Read, Sites.Read.All, etc.)","OAuth 2.0 client credentials (client ID, client secret) or managed identity","User authentication context (bearer token or refresh token)"],"input_types":["Azure AD access tokens","Refresh tokens","User principal names (UPNs) or object IDs","Requested Microsoft Graph API scopes"],"output_types":["Valid OAuth 2.0 bearer tokens","Token metadata (expiration, scopes, issued-at)","Authorization success/failure responses","Permission validation results"],"categories":["safety-moderation","tool-use-integration"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"npm_npm-microsoftworkiq__cap_2","uri":"capability://search.retrieval.llm.driven.teams.message.search.and.retrieval","name":"llm-driven teams message search and retrieval","description":"Enables Claude and other LLMs to query Teams conversations using natural language or structured filters, returning message threads with metadata (sender, timestamp, channel context). Translates LLM search intents into Microsoft Graph API queries against the Teams service, handling pagination and result ranking to surface relevant conversations within token budgets.","intents":["I want Claude to find all messages from the past week mentioning a specific project or decision","I need the AI to retrieve context from a Teams channel conversation to answer a user's question","I want to search Teams for messages matching a pattern (e.g., all action items assigned to a person)","I need the agent to pull conversation history to provide context for a follow-up discussion"],"best_for":["Teams-heavy organizations using Copilot for knowledge discovery","Support teams automating ticket resolution by searching conversation history","Project managers building AI assistants that synthesize team discussions"],"limitations":["Search results limited to messages the authenticated user has permission to access — cannot retrieve private channels unless user is a member","Full-text search latency can exceed 2-3 seconds for large tenants with millions of messages","Message content is returned as plain text — no support for rich formatting, attachments, or embedded media","Search does not index message reactions, replies, or threading metadata — only message body and sender"],"requires":["Microsoft Graph API Mail.Read or Chat.Read permissions","Teams service enabled in M365 tenant","User authentication with access to target Teams channels","MCP client capable of handling paginated responses"],"input_types":["Natural language search queries","Structured filters (date range, sender, channel name)","Pagination tokens","Result limit parameters"],"output_types":["Message objects with sender, timestamp, channel context","Thread metadata (reply count, participants)","Relevance scores or ranking indicators","Pagination cursors for result sets"],"categories":["search-retrieval","memory-knowledge"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"npm_npm-microsoftworkiq__cap_3","uri":"capability://search.retrieval.sharepoint.document.discovery.and.retrieval.via.llm.queries","name":"sharepoint document discovery and retrieval via llm queries","description":"Allows Claude and other LLMs to search SharePoint sites and document libraries using natural language, returning file metadata, content previews, and download URLs. Implements Microsoft Graph Sites API queries with support for filtering by site, library, document type, and metadata properties, enabling AI agents to locate and surface relevant documents without manual navigation.","intents":["I want the AI to find the latest version of a policy document across all SharePoint sites","I need Claude to search for documents matching a description (e.g., 'Q4 budget spreadsheets')","I want the agent to retrieve document metadata and preview content to answer user questions","I need to locate documents by author, modification date, or custom metadata properties"],"best_for":["Organizations with large SharePoint deployments seeking AI-powered document discovery","Knowledge management teams automating document retrieval for Copilot","Compliance teams building AI assistants for policy and procedure lookup"],"limitations":["Search does not index document content — only metadata (title, author, modified date, custom properties)","Large document libraries (>100k files) may experience slow search performance due to Graph API throttling","No support for full-text search within document bodies — requires separate indexing (e.g., Azure Search) for content-level queries","Document preview generation requires additional API calls and may not be available for all file types (PDFs, images supported; Office formats require conversion)"],"requires":["Microsoft Graph API Sites.Read.All permission","SharePoint Online enabled in M365 tenant","User authentication with access to target SharePoint sites","Site URLs or site IDs pre-configured in MCP server"],"input_types":["Natural language search queries","Structured filters (site name, library name, file type, date range)","Metadata property filters","Pagination parameters"],"output_types":["Document metadata objects (name, author, modified date, size)","Document preview content (text extraction or HTML rendering)","Download URLs (with expiration)","Site and library context"],"categories":["search-retrieval","memory-knowledge"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"npm_npm-microsoftworkiq__cap_4","uri":"capability://automation.workflow.outlook.email.composition.and.sending.via.llm.instructions","name":"outlook email composition and sending via llm instructions","description":"Enables Claude and other LLMs to draft, format, and send emails on behalf of authenticated users through MCP tool calls. Implements email composition with support for recipients, subject, body formatting, attachments, and scheduling, translating LLM-generated email content into Microsoft Graph Mail API calls while respecting user permissions and organizational email policies.","intents":["I want the AI to draft and send a follow-up email based on a conversation summary","I need Claude to compose an email with specific formatting and send it to a distribution list","I want the agent to schedule an email to be sent at a specific time","I need the AI to attach documents from OneDrive or SharePoint to an outgoing email"],"best_for":["Executive assistants automating email drafting and sending","Customer support teams using AI to compose templated responses","Sales teams automating follow-up email sequences"],"limitations":["Email sending is synchronous — no built-in retry logic if Graph API fails mid-send","Attachment support requires file IDs or URLs — cannot directly embed binary content in MCP request","No support for email templates or conditional formatting — LLM must generate complete email body","Scheduled send has a maximum delay of 1440 minutes (24 hours) per Microsoft Graph limitations","No support for S/MIME encryption or digital signatures — emails sent as plain SMTP"],"requires":["Microsoft Graph API Mail.Send permission","Outlook mailbox enabled for authenticated user","User authentication context (delegated permission required)","Valid recipient email addresses"],"input_types":["Email recipient addresses (to, cc, bcc)","Email subject line","Email body (plain text or HTML)","Attachment file IDs or URLs","Send time (for scheduled send)"],"output_types":["Email message ID (confirmation of send)","Send status (success or error)","Scheduled send confirmation with send time"],"categories":["automation-workflow","tool-use-integration"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"npm_npm-microsoftworkiq__cap_5","uri":"capability://memory.knowledge.onedrive.file.operations.and.content.retrieval.for.llm.context","name":"onedrive file operations and content retrieval for llm context","description":"Enables Claude and other LLMs to list, read, and retrieve files from OneDrive using MCP tool calls, supporting file metadata queries, content preview generation, and file download URLs. Implements Microsoft Graph Drive API operations with support for folder navigation, file filtering, and content extraction to provide LLMs with access to user files for analysis and context.","intents":["I want Claude to read a file from my OneDrive and summarize its contents","I need the AI to list files in a specific OneDrive folder and help me organize them","I want the agent to extract data from a spreadsheet or document stored in OneDrive","I need to provide the AI with file context without manually uploading or copying content"],"best_for":["Knowledge workers automating document analysis and summarization","Teams using AI to organize and catalog OneDrive files","Developers building AI-powered file management assistants"],"limitations":["File content retrieval requires format conversion (e.g., Office documents to text) — not all file types are supported for preview","Large files (>100MB) may timeout or exceed token limits when fully loaded into LLM context","No support for real-time file synchronization — LLM sees point-in-time snapshots","Folder navigation is limited to 1000 items per request — large folders require pagination","No support for file versioning or version history retrieval"],"requires":["Microsoft Graph API Files.Read permission","OneDrive enabled for authenticated user","User authentication context (delegated permission)","File IDs or folder paths"],"input_types":["File IDs or paths","Folder paths for listing","File type filters","Pagination parameters"],"output_types":["File metadata (name, size, modified date, owner)","File content (text extraction or preview)","Download URLs (with expiration)","Folder structure and file listings"],"categories":["memory-knowledge","data-processing-analysis"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"npm_npm-microsoftworkiq__cap_6","uri":"capability://automation.workflow.calendar.event.creation.and.scheduling.via.llm.instructions","name":"calendar event creation and scheduling via llm instructions","description":"Enables Claude and other LLMs to create, read, and modify calendar events in Outlook using MCP tool calls. Implements calendar operations with support for event details (title, time, attendees, location), recurring patterns, and attendee management, translating LLM-generated scheduling requests into Microsoft Graph Calendar API calls while handling timezone conversion and conflict detection.","intents":["I want the AI to schedule a meeting based on a conversation and invite specific attendees","I need Claude to create a recurring calendar event with specific attendees and location","I want the agent to check calendar availability and suggest meeting times","I need the AI to update or cancel a meeting and notify attendees"],"best_for":["Executive assistants automating meeting scheduling","Teams using AI to coordinate calendar management","Developers building AI scheduling assistants"],"limitations":["No built-in availability checking — LLM must query calendar separately to find free slots","Timezone handling requires explicit timezone specification — no automatic detection from attendee location","Attendee response tracking is not real-time — requires separate calendar queries to check RSVP status","No support for meeting room resource booking — attendees must be individual users","Recurring event modification is limited — cannot modify individual instances without creating exceptions"],"requires":["Microsoft Graph API Calendars.ReadWrite permission","Outlook calendar enabled for authenticated user","User authentication context (delegated permission)","Valid attendee email addresses"],"input_types":["Event title and description","Start and end times (with timezone)","Attendee email addresses","Location or meeting room","Recurrence pattern (daily, weekly, monthly)","Event ID (for updates or deletions)"],"output_types":["Event ID (confirmation of creation)","Event details (with attendee list and RSVP status)","Calendar availability information","Modification confirmation"],"categories":["automation-workflow","tool-use-integration"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"npm_npm-microsoftworkiq__cap_7","uri":"capability://tool.use.integration.mcp.protocol.server.implementation.with.schema.based.tool.registration","name":"mcp protocol server implementation with schema-based tool registration","description":"Implements the Model Context Protocol (MCP) server specification, exposing M365 capabilities as standardized LLM tools with JSON Schema definitions. Handles MCP request/response serialization, tool discovery, parameter validation, and error handling, enabling any MCP-compatible LLM client (Claude, custom agents) to invoke M365 operations through a unified interface without client-specific integration code.","intents":["I want to connect Claude to M365 without building custom API wrappers","I need a standardized way to expose M365 capabilities to multiple LLM clients","I want to validate tool parameters and provide helpful error messages to the LLM","I need to implement tool discovery so the LLM knows what M365 operations are available"],"best_for":["Organizations standardizing on MCP for AI agent infrastructure","Developers building multi-LLM applications that need M365 integration","Teams deploying Copilot plugins with consistent tool interfaces"],"limitations":["MCP protocol adds serialization overhead (~50-100ms per request) compared to direct SDK calls","Tool schema validation happens on server side — LLM may still generate invalid parameters that fail validation","No built-in caching of tool schemas — each client connection requires tool discovery","Error handling is limited to MCP error codes — detailed M365 error context may be lost in translation"],"requires":["Node.js 16+ runtime","MCP client implementation (Claude Desktop, custom wrapper, or agent framework)","JSON Schema knowledge for tool parameter definitions"],"input_types":["MCP tool call requests (JSON-RPC 2.0 format)","Tool discovery requests","Tool parameter objects matching JSON Schema definitions"],"output_types":["MCP tool call responses (JSON-RPC 2.0 format)","Tool schema definitions (JSON Schema)","Error responses with MCP error codes"],"categories":["tool-use-integration","automation-workflow"],"confidence":0.5,"matches":0,"success_rate":0}],"trust":{"score":30,"verified":false,"data_access_risk":"high","permissions":["Node.js 16+ (MCP server runtime)","Microsoft 365 tenant with admin access to register app permissions","Azure AD app registration with Microsoft Graph API permissions (Mail.Read, Sites.Read.All, etc.)","MCP client implementation (Claude Desktop, custom LLM wrapper, or compatible agent framework)","Valid OAuth 2.0 credentials (client ID, client secret, or managed identity)","Azure AD tenant with application registration capability","Microsoft Graph API scopes pre-configured in app manifest (Mail.Read, Sites.Read.All, etc.)","OAuth 2.0 client credentials (client ID, client secret) or managed identity","User authentication context (bearer token or refresh token)","Microsoft Graph API Mail.Read or Chat.Read permissions"],"failure_modes":["Requires Microsoft Graph API permissions configured at tenant level — cannot work with personal Microsoft accounts without admin consent","MCP protocol adds request/response serialization overhead (~50-100ms per call) compared to direct SDK usage","Limited to M365 services exposed via Microsoft Graph — some legacy Exchange/SharePoint features may not be available","No built-in caching layer — each LLM invocation triggers a fresh API call to Microsoft Graph","Token refresh adds latency on first request after token expiration (~500ms for OAuth round-trip)","Scope negotiation happens at app registration time — cannot dynamically request new permissions at runtime","Delegated permission model requires user context — cannot perform background operations without a user identity","No built-in support for service-to-service (app-only) authentication in current version — requires custom implementation","Search results limited to messages the authenticated user has permission to access — cannot retrieve private channels unless user is a member","Full-text search latency can exceed 2-3 seconds for large tenants with millions of messages","builder identity is not verified yet","no observed match outcomes yet"],"rank_breakdown":{"adoption":0.05,"quality":0.26,"ecosystem":0.6000000000000001,"match_graph":0.25,"freshness":0.6,"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:23.904Z","last_scraped_at":"2026-05-03T14:23:37.301Z","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-microsoftworkiq","compare_url":"https://unfragile.ai/compare?artifact=npm-microsoftworkiq"}},"signature":"EjW88nRIm2+PcGu6feYQnGUZvHh5ghU0L62O1ppemhS1YUbFGMowESvZL3EyXtf1thiqRPjj30OAXdUJBcGOBg==","signedAt":"2026-06-21T04:59:21.793Z","signedBy":"unfragile.ai","version":1},"_links":{"self":"https://unfragile.ai/api/v1/passport/npm-microsoftworkiq","artifact":"https://unfragile.ai/npm-microsoftworkiq","verify":"https://unfragile.ai/api/v1/verify?slug=npm-microsoftworkiq","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"}}