Here's a conversation I had with my AI assistant last Tuesday morning:
Me: Read my inbox. What needs me today?
AI: You have 43 unread emails. 3 need a reply. 2 contain action items. The rest are notifications and CC'd threads.
Me: Draft a reply to Sarah. Tell her to restart the service, I'll push a fix today.
AI: Done. Here's the draft. Want me to send it?
Me: Send it. What should I work on today based on those emails?
AI: 1. Fix the staging bug Sarah reported. 2. Address Mike's review comments. 3. Confirm the client license renewal by Friday.
I didn't open Outlook. I didn't Alt-Tab. I didn't copy-paste a single thing. My inbox was processed, my replies were sent, and my day was planned — all before 9:15.
This isn't a mockup. This is my actual morning now. And the thing that makes it work took an afternoon to build.
The Dumbest Moment That Started This
I was three hours into debugging a race condition. Deep focus. The kind where you're holding six things in your head and one interruption resets all of them.
A Slack message popped up: "Sent you the stack trace on email."
So I did what every developer does twelve times a day. Minimized the IDE. Opened Outlook. Scrolled past newsletters, build alerts, a meeting reschedule, three CC'd threads I didn't care about. Found the email. Selected the stack trace. Copied it. Switched back to the IDE. Pasted it.
And then sat there for four minutes trying to remember what I was doing before.
My AI assistant was right there in the editor the entire time. It can search through 10,000 files in my codebase. It can refactor an entire module. But it couldn't read one email sitting in the application running right next to it.
That felt dumb. So I fixed it.
The Three-Line Secret
Outlook on Windows has a built-in interface called COM. PowerShell speaks it natively. The entire connection:
$outlook = New-Object -ComObject Outlook.Application
$ns = $outlook.GetNamespace("MAPI")
$inbox = $ns.GetDefaultFolder(6)
No API keys. No sign-ups. No cloud portal. Outlook is already running on your desktop — this just lets another program talk to it.
To make my AI understand this, I used MCP — Model Context Protocol. It's a standard for giving AI assistants new abilities. You define a function like "read inbox," and the AI can call it whenever it needs to.
The bridge between the two is a small Node.js server:
Me (in IDE) → AI → MCP Server → PowerShell → Outlook
const { McpServer } = require("@modelcontextprotocol/sdk/server/mcp.js");
const { StdioServerTransport } = require("@modelcontextprotocol/sdk/server/stdio.js");
const mcpServer = new McpServer({ name: "outlook-com", version: "1.0.0" });
async function main() {
const transport = new StdioServerTransport();
await mcpServer.connect(transport);
}
main().catch(() => process.exit(1));
Ten lines. One npm package. One config file to tell the IDE where to find it:
{
"mcpServers": {
"outlook": {
"command": "node",
"args": ["mcp-servers/outlook-com-mcp/server.js"]
}
}
}
Restart the IDE. That's the whole setup.
What I Actually Do With It Every Day
Morning scan. "Read my last 20 emails. What needs a reply, what's FYI, what can I skip?"
Reply (3): Sarah — staging bug. Mike — PR questions. Client — license renewal.
FYI (5): Build alerts, sprint update, meeting reschedule.
Skip (12): Newsletters, CC'd threads, automated noise.
Three emails that need me. Not forty-three.
Replies. I tell the AI what to say. It reads the full email for context, drafts the reply. I tweak a line, say "send it." No window switching. No losing my train of thought.
Todo list. "Based on what you just read, what should I work on today?" Done. My day is planned from my inbox.
Friday cleanup. This one I found by accident. "Search for all automated notifications from the last 7 days. Group by sender." — 14 from Jira, 9 from CI/CD, 6 newsletters I never read. I unsubscribed from four on the spot. Now I do this every Friday. Two minutes. Mailbox stays clean.
Build This Today
Windows + Outlook + Node.js. That's the whole requirements list.
mkdir mcp-servers/outlook-com-mcp && cd mcp-servers/outlook-com-mcpnpm init -y && npm install @modelcontextprotocol/sdk- Write
server.js— skeleton above + a function that runs PowerShell scripts - Write your
.ps1scripts — each starts with the same three-line Outlook connection - Add the config file, restart
Fifteen minutes. One dependency. Your AI reads, searches, sends, and replies to email.
Start with email. Once it works, you'll realize the same pattern connects anything on your machine — calendar, contacts, Excel. Same bridge. Same config. Same afternoon.
If you build something with this, tell me in the comments. I'll be reading them from my IDE.
Top comments (0)