Giving Claude M365 Access via Power Automate and a FastMCP Server

A developer on r/ClaudeAI shared a practical architecture for giving Claude access to Microsoft 365 without tenant admin privileges. The setup uses Power Automate flows as the execution layer, triggered via webhooks, with a small FastMCP server acting as the bridge.
What It Does
Claude can now perform these M365 actions through MCP tools:
- Read inbox and send emails
- Check calendar
- Save notes to OneDrive under specific folders
- Create Planner tasks
- Append rows to Excel spreadsheets
- Fill Word templates
Architecture
The chain is straightforward:
Claude -> MCP tool call -> FastMCP server -> Power Automate webhook -> M365 connector
Each M365 operation is a separate Power Automate flow with an HTTP trigger. The flows run under the user's account, using already-approved permissions. The FastMCP server (about 200 lines of Python + a JSON config file) routes tool calls to the correct webhook URL.
Setup Overview
- Create Power Automate flows for each action (send email, read calendar, etc.) with an HTTP trigger
- Copy the signed webhook URL from each flow
- Deploy a FastMCP server (fastmcp on PyPI) on a cheap VPS
- Define tools like
m365_send_email,m365_calendar_read,onedrive_create_filethat POST JSON to the webhooks - Point Claude Desktop's MCP config at the server
Practical Lessons
The developer notes that agent tool access doesn't require perfect official API integrations — existing enterprise tools like Power Automate can serve as a pragmatic backend. A funny bug: two MCP tools pointing at the same webhook (due to a forgotten URL update in the config) caused Claude to call the 'right' tool but Power Automate performed the wrong action.
📖 Read the full source: r/ClaudeAI
👀 See Also

Solving Gemini CLI write_file Not Found in OpenClaw: Two Fixes Required
OpenClaw agents using google-gemini-cli can't write files (write_file / default_api_write_file missing) due to wrong tools.profile and missing --approval-mode auto_edit flag in the subprocess. Fix: set profile to full and inject the flag via cliBackends config.

Documentation for Writing MCP Tools in C# .NET Framework for Claude Desktop/Code
Complete documentation and C# coding examples for creating custom MCP tools using .NET Framework 4.8, enabling Claude Desktop/Code to automate interactions with external processes, software, APIs, and IoT devices.

Custom 4x RTX PRO 6000 Server vs Dell GB300: Decision for 30 Fine-Tuned Pipelines
A deep dive into two on-prem architectures for running ~30 fine-tuned production pipelines: a custom 4U server with 4-8x RTX PRO 6000 Blackwell (96GB each) vs NVIDIA GB300 Grace Blackwell appliance with 252GB HBM3e + 496GB unified memory.

72-Step Claude Setup Checklist: From Default to Power User
A detailed medium article outlines a 72-step checklist for configuring Claude, moving from default settings to advanced power-user features. Shared on HN with 10 points and 1 comment.