{"$schema":"https://wellknown.network/schemas/agent-record-v1.json","schemaVersion":"1","id":"ag_sh9xp6mjnxhy","handle":"office365-blade-mcp","url":"https://wellknown.network/agents/office365-blade-mcp","links":{"self":"https://wellknown.network/agents/office365-blade-mcp/record.json","html":"https://wellknown.network/agents/office365-blade-mcp","markdown":"https://wellknown.network/agents/office365-blade-mcp/record.md","api":"https://wellknown.network/api/v1/agents/office365-blade-mcp","status":"https://wellknown.network/api/v1/agents/office365-blade-mcp/status","claim":"https://wellknown.network/agents/office365-blade-mcp/claim","claimApi":"https://wellknown.network/api/v1/claims","claimDescriptor":"https://wellknown.network/agents/office365-blade-mcp/claim.json","badge":"https://wellknown.network/agents/office365-blade-mcp/badge.svg","openapi":"https://wellknown.network/openapi.json","history":"https://wellknown.network/api/v1/agents/office365-blade-mcp/history","tools":"https://wellknown.network/api/v1/agents/office365-blade-mcp/tools"},"ard":{"identifier":"urn:air::server:office365-blade-mcp","type":"application/mcp-server-card+json"},"kind":"mcp_server","declared":{"name":"office365-blade-mcp","summary":"Microsoft 365 MCP Server — email, calendar, and tasks via Microsoft Graph API","description":"# office365-blade-mcp\n\nA token-efficient Microsoft 365 MCP server for email, calendar, and tasks -- all through one connection.\n\nBuilt on the [Model Context Protocol](https://modelcontextprotocol.io/) and Microsoft Graph API. Ships 38 tools with pipe-delimited output, field selection, null omission, write-gating, and dual auth. Designed to give LLMs maximum signal per token.\n\n---\n\n## Why This Over Microsoft's Official Graph MCP Servers?\n\n| | **office365-blade-mcp** | Microsoft reference servers |\n|---|---|---|\n| **Scope** | Email + Calendar + Tasks in ONE server | Split across separate repos |\n| **Output** | Pipe-delimited, field-selected, nulls omitted | Raw JSON blobs (10-50x more tokens) |\n| **Auth** | Dual: device code (interactive) + client credentials (headless/CI) | Single flow per server |\n| **Safety** | Write-gated by default, delete confirmation, credential scrubbing | Varies |\n| **Sync** | Delta tokens for incremental email sync | Full re-fetch |\n| **Convenience** | `cal_today`, `cal_week`, `task_today`, `task_inbox` | Build your own queries |\n| **Batch** | `email_bulk` (up to 50 ops), `cal_batch` (multi-calendar) | Individual calls |\n\nThe output format alone justifies the switch. A 20-email search result that costs ~8K tokens from raw Graph JSON costs ~800 tokens here.\n\n---\n\n## Features\n\n- **38 tools** across email, calendar, To Do, and Planner\n- **Token-efficient output** -- pipe-delimited tables with `$select` optimization and null omission\n- **Write-gated by default** -- read-only until you explicitly enable writes\n- **Dual authentication** -- device code flow for interactive use, client credentials for daemons and CI\n- **Incremental sync** -- delta tokens for email change tracking without re-fetching\n- **Batch operations** -- bulk email actions (up to 50), multi-calendar event fetch\n- **Purpose-built views** -- `cal_today`, `cal_week`, `task_today`, `task_inbox` for common queries\n- **FastMCP 2.0** -- stdio and HTTP transports\n\n---\n\n## Quick Start\n\n…","publisher":{"name":"Piers","url":null},"homepage":null,"repository":null,"version":"0.2.0","license":"MIT","protocols":["mcp"],"tags":["calendar","email","graph-api","mcp","microsoft","office365","tasks"],"pricing":null,"endpoints":[{"url":"pypi:office365-blade-mcp","type":"package_pypi","auth":null,"probeable":false}],"skills":null,"tools":null,"extra":null,"attribution":{"kind":"pypi","name":"pypi","license":"pypi","summary":"pypi","version":"pypi","description":"pypi","publisherName":"pypi"}},"derived":{"capabilities":[{"slug":"productivity.email","name":"Email","confidence":1,"provenance":"declared"},{"slug":"productivity.calendar","name":"Calendar & Scheduling","confidence":1,"provenance":"declared"},{"slug":"productivity.tasks","name":"Tasks & To-do","confidence":1,"provenance":"declared"},{"slug":"knowledge.knowledge-graph","name":"Knowledge Graphs","confidence":0.997,"provenance":"derived"},{"slug":"security.identity","name":"Identity & Access","confidence":0.825,"provenance":"derived"}],"categories":["knowledge","productivity","security"],"language":"en"},"observed":{"status":"unknown","statusReason":"Distributed as a package to run locally; no network endpoint to check.","lastOkAt":null,"lastProbedAt":null,"statusComputedAt":null,"reliability30d":null,"latestObservations":[],"tools":null,"package":{"name":"office365-blade-mcp","registry":"pypi","observedAt":"2026-10-28T18:28:19.804Z","publishedAt":"2026-04-28T04:29:01.244552Z","latestVersion":"0.2.0"},"toolSurface":null,"endpointFacts":[]},"verification":{"claimed":false,"claimedAt":null,"proofs":[]},"provenance":{"sources":[{"source":"pypi","key":"office365-blade-mcp","url":"https://pypi.org/project/office365-blade-mcp/","firstSeenAt":"2026-09-10T08:26:10.088Z","fetchedAt":"2026-10-28T18:26:49.827Z","normalizedAt":"2026-10-28T18:26:49.827Z"}]},"firstSeenAt":"2026-09-10T08:26:10.088Z","updatedAt":"2026-10-28T18:28:19.804Z"}