Built on an existing server
The project extends the open-source ryaker/outlook-mcp server. The additions here are the CLI front end, the shared tool registry, attachment handling, the jest test suite, and npm packaging.
An npm CLI and stdio MCP server for Outlook mail and calendar over Microsoft Graph: one OAuth login, one tool registry shared by humans and agents.
Managing Outlook from a terminal or an agent usually means an OAuth dance on every run and output written only for humans. The tool needed one login, reusable tokens, and output an agent can parse, with the same behaviour whether a person or an assistant is calling it.
01
The terminal CLI and the stdio MCP server both call the same frozen tool registry, so a command and the matching agent tool cannot drift apart.
02
The first call opens a delegated-permission OAuth flow in the browser and saves the tokens locally. Every later call reuses them and refreshes them when they expire.
03
Mail (including attachments), calendar, folders, and inbox rules, each a handler behind the shared registry.
04
Every request goes through one Graph client, and a test-mode switch swaps in mock data so the suite runs without an account.
05
The CLI renders themed tables for people and switches to machine-readable output with --json or --ai.
The project extends the open-source ryaker/outlook-mcp server. The additions here are the CLI front end, the shared tool registry, attachment handling, the jest test suite, and npm packaging.
Publishing runs the test suite and a dry-run pack first, so a broken build or a missing file never reaches npm.
Node.js · MCP SDK · Microsoft Graph · OAuth 2.0 · jest · npm