{"_id":"@deus-ai/outlook-mcp","name":"@deus-ai/outlook-mcp","dist-tags":{"latest":"1.0.0"},"versions":{"1.0.0":{"name":"@deus-ai/outlook-mcp","version":"1.0.0","description":"Outlook (Microsoft 365) MCP server — standalone Microsoft Graph mail integration for any MCP client","type":"module","main":"dist/index.js","bin":{"deus-ai-outlook-mcp":"dist/index.js"},"scripts":{"build":"tsc","start":"node dist/index.js","test":"vitest run"},"dependencies":{"@azure/msal-node":"^2.16.2","@deus-ai/channel-core":"^1.1.0","@microsoft/microsoft-graph-client":"^3.0.7","@modelcontextprotocol/sdk":"^1.12.1","pino":"^10.3.1","zod":"^4.3.6"},"devDependencies":{"@types/node":"^22.10.7","typescript":"^6.0.2","vitest":"^4.1.2"},"engines":{"node":">=20"},"publishConfig":{"access":"public"},"license":"MIT","_id":"@deus-ai/outlook-mcp@1.0.0","gitHead":"d76d3dd64d7a39c5c52a4063d4995b00fb235f67","types":"./dist/index.d.ts","_nodeVersion":"20.20.2","_npmVersion":"10.8.2","dist":{"integrity":"sha512-OPY1cseMtPrwaJZVY7MWjJmcPIm1wTw40gOxgzsEssTFe0beymPTw9GkmhnYSXSwwwSE6QRsUXAPojLpx5KaDg==","shasum":"10765449c8cf4c2f7bba231a56178502096b9b11","tarball":"https://registry.npmjs.org/@deus-ai/outlook-mcp/-/outlook-mcp-1.0.0.tgz","fileCount":15,"unpackedSize":78176,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDMwqxuRQHqvIJyQkmsAMlYVMDjO2q8/LGLpIjQecSnwwIgH16nSkGKt3Jm/Hdt621sZ0rVxhYUMh5OZ0wC7fFAElk="}]},"_npmUser":{"name":"sliamh11","email":"sliamh11@gmail.com"},"directories":{},"maintainers":[{"name":"sliamh11","email":"sliamh11@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/outlook-mcp_1.0.0_1782579514079_0.5035705838851345"},"_hasShrinkwrap":false}},"time":{"created":"2026-06-27T16:58:33.918Z","1.0.0":"2026-06-27T16:58:34.200Z","modified":"2026-06-27T16:58:34.453Z"},"maintainers":[{"name":"sliamh11","email":"sliamh11@gmail.com"}],"description":"Outlook (Microsoft 365) MCP server — standalone Microsoft Graph mail integration for any MCP client","license":"MIT","readme":"# @deus-ai/outlook-mcp\n\nStandalone Outlook (Microsoft 365) MCP server. Connects to a mailbox over the\nMicrosoft Graph API and exposes it as an MCP channel: it polls the Inbox for\nunread mail, forwards each conversation to the MCP client as an incoming message,\nand sends replies in-thread.\n\nIt implements the `ChannelProvider` contract from `@deus-ai/channel-core` and is\nthe Outlook analog of `@deus-ai/gmail-mcp`.\n\n## Configuration (env vars)\n\n| Var | Default | Meaning |\n|-----|---------|---------|\n| `OUTLOOK_CREDENTIALS_DIR` | `~/.outlook-mcp/` | Holds `app-credentials.json` + `token.json` |\n| `OUTLOOK_POLL_INTERVAL_MS` | `60000` | Inbox poll interval |\n| `LOG_LEVEL` | `info` | pino log level (stderr) |\n\n`app-credentials.json` holds your Azure AD app registration:\n\n```json\n{ \"clientId\": \"<application-client-id>\", \"tenantId\": \"<directory-tenant-id>\" }\n```\n\nAuth is delegated, device-code only (a user signs in once); the public-client app\nregistration must have **Allow public client flows** enabled. The confidential\n(clientSecret / app-only) flow is not supported.\n\n## One-time sign-in\n\n```bash\nnpm install && npm run build\nnode dist/index.js auth   # device-code flow — open the URL, enter the code\n```\n\nThis seeds `token.json` (with a refresh token) so the server acquires access\ntokens silently afterwards.\n\n## Run\n\n```bash\nnode dist/index.js   # stdio MCP server; auto-connects if credentials exist\n```\n\n## JID format\n\nEach conversation maps to `outlook:<conversationId>`.\n\n## Known limitation\n\nA reply can only be sent to a conversation the server has already seen in a poll\ncycle (the reply target message id is cached on inbound). A reply to a thread\nreceived before the process started is logged and skipped.\n","readmeFilename":"README.md","_rev":"1-deab9e9120fd766c7a96b8728cf664e5"}