ms365-mcp
ms365-mcp
Ein Microsoft 365 MCP-Server, zugeschnitten auf kleine lokale Modelle.
Die meisten MCP-Server sind für Spitzenmodelle mit großen Kontextfenstern gebaut, daher exponieren sie alles, was die Anbieter-API bietet, und überlassen dem Modell die Auswahl. Der Referenz-Microsoft-365-Server stellt 326 Tools bereit, die aus Microsofts Graph-OpenAPI-Spezifikation generiert wurden.
Das funktioniert nicht für ein 8B-Modell bei 8k Kontext, wo die gesamte Tool-Liste im System-Prompt sitzt und das Modell irgendwo nach fünfundzwanzig Tools zufällig zu wählen beginnt. Dieser Server verfolgt den gegenteiligen Ansatz:
Vierzehn handgeschriebene Tools, mit einer harten Obergrenze von zwanzig. Die Tool-Liste ist ein Budget, keine Feature-Liste.
Beschreibungen, die für ein kleines Modell geschrieben sind, nicht aus API-Metadaten übernommen.
Draft-first. Genau ein Tool kann an eine andere Person übertragen, es nimmt eine Draft-ID statt eines Empfängers und ist als destruktiv annotiert.
Jedes Tool deklariert seine eigene Wirkung über MCP-
readOnlyHint- unddestructiveHint-Annotationen, sodass ein Host es klassifizieren kann, ohne aus dem Tool-Namen zu raten.
Gebaut für den Edge Harness und nützlich für jeden MCP-Client.
Status
Früh. Noch nicht nutzbar. Der Plan umfasst zehn Commits; siehe docs/PLAN.md für die vollständige Abfolge und die Begründung hinter jeder Entscheidung.
Gerüst, Lizenz, CI | erledigt |
MCP-Protokoll über stdio | erledigt |
Die Vierzehn-Tool-Oberfläche | deklariert, Handler sind Stubs |
Anmeldung | nicht begonnen |
Microsoft Graph | nicht begonnen |
Related MCP server: google-nice-mcp
Seeing the tool surface
--list-tools startet nichts und benötigt kein Konto, also beantwortet es die Frage „Was würde einem Host angeboten?“, bevor irgendetwas davon verdrahtet ist:
.venv/bin/python -m ms365_mcp --list-toolsFügen Sie --json für eine maschinenlesbare Version hinzu.
read whoami Return the display name, email address and timezone…
read resolve_person Look up a person by name or partial name and return…
read list_messages List messages in a mail folder, newest first, as se…
write create_draft Create a draft message. This does NOT send anything…
! write send_draft Send a draft that already exists, by its id. This r…
...
14 tools, 6 that change something, 4 marked destructive (!)Handler sind heute Stubs: Ein Aufruf gibt einen Satz zurück, der besagt, dass das Tool deklariert, aber nicht implementiert ist. Die Oberfläche wird bewusst festgelegt, bevor irgendetwas davon gebaut wird, denn die Tool-Namen, Beschreibungen und Effektklassen sind das, was ein Host klassifiziert und wogegen ein Modell gepromptet wird, und diese später zu ändern ist teuer.
Using it from the Edge Harness
Der Harness startet diesen Server als Subprozess über stdio, sodass er unter seiner eigenen Interpreter läuft und keine Abhängigkeiten mit dem Host teilt. Das ist nicht zufällig: Der Harness hat ein lokales Paket namens mcp/ und das offizielle SDK auf PyPI heißt ebenfalls mcp, sodass die Installation dieses Servers in die Virtualenv des Harness das eigene Paket des Harness überschattet.
Sein Registrierungseintrag dort ist ms365-own, und das Drücken von Check in den Agent-Lab-Laufoptionen listet jedes Tool mit seiner Effektklasse auf. Alle vierzehn klassifizieren als declared, was bedeutet, dass der Harness sie aus den Annotationen dieses Servers übernommen hat, anstatt aus Tool-Namen zu raten, und der Eintrag benötigt keine Überschreibungen.
Im Standard-Entwurfsmodus des Harness wird send_draft zurückgehalten und die anderen dreizehn sind verfügbar, sodass ein Lauf keine Person erreichen kann.
Security
Dieses Repository ist öffentlich und enthält keinerlei Anmeldeinformationen.
Die Authentifizierung verwendet den Microsoft-Gerätecode-Flow. Der resultierende Token-Cache wird in das Konfigurationsverzeichnis des Betriebssystems mit Berechtigungen nur für den Besitzer geschrieben, niemals in dieses Repository oder seinen Arbeitsbaum. .gitignore deckt Token- und Cache-Dateinamen ohnehin ab, und ein Pre-Commit-Hook scannt zum Commit vorgemerkte Änderungen auf Zeichenfolgen, die wie Anmeldeinformationen aussehen, sodass das Committen einer solchen bewusste Anstrengung erfordert und kein Ausrutscher ist.
Eine Zeile, die mit # pragma: allowlist secret endet, wird vom Hook übersprungen. Das existiert, damit die eigenen Tests dieses Repositorys gefälschte Anmeldeinformationen enthalten können, und es hinterlässt eine Markierung, die ein Prüfer im Diff sehen kann, was --no-verify nicht tut. Verwenden Sie es nur für Daten, die nachweislich gefälscht sind.
Development
python3 -m venv .venv
.venv/bin/pip install -e ".[dev]"
.venv/bin/pytest -qAktivieren Sie den Secret-Scan-Hook einmal pro Klon:
git config core.hooksPath .githooksLicence
MIT. Siehe LICENSE.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseNot gradedqualityAmaintenanceA production-ready MCP server that provides secure, delegated access to Microsoft 365 services including Email, SharePoint, OneDrive, and Calendar. It enables AI models to search messages, browse files, manage calendar events, and parse document contents using OAuth 2.1 authentication.MIT
- AlicenseAqualityCmaintenanceA read-only MCP server for Gmail and Drive with only 5 tools, designed to be friendly to small local LLMs by minimizing context usage and simplifying inputs.5MIT
- AlicenseNot gradedqualityDmaintenanceLightweight MCP server that enables AI agents to manage Microsoft Outlook email, calendar, and files using PKCE authentication with only a Client ID.MIT
- AlicenseNot gradedqualityCmaintenanceMCP server that exposes a Microsoft 365 mailbox via the Model Context Protocol, enabling AI assistants to search, read, and download emails and attachments, and optionally send mail.9MIT
Related MCP Connectors
Hosted MCP endpoint with realistic fake data for prototyping agents. 12 tools, no setup.
MCP server for secureFlows: token-free URL builders and integration-linting tools for AI agents.
MCP server for AI agents to plan, verify, and deploy Cloudflare-native apps.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/sunnycho100/ms365-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server