ms365-mcp
ms365-mcp
Un servidor MCP de Microsoft 365 diseñado para modelos locales pequeños.
La mayoría de los servidores MCP están pensados para modelos de frontera con grandes ventanas de contexto, por lo que exponen todo lo que ofrece la API del proveedor y dejan que el modelo lo resuelva. El servidor de referencia de Microsoft 365 expone 326 herramientas generadas a partir de la especificación OpenAPI de Microsoft Graph.
Eso no funciona para un modelo de 8B con contexto de 8k, donde la lista completa de herramientas está en el prompt del sistema y el modelo empieza a elegir al azar a partir de unas veinticinco herramientas. Este servidor adopta el enfoque contrario:
Catorce herramientas escritas a mano, con un límite máximo de veinte. La lista de herramientas es un presupuesto, no una lista de características.
Descripciones escritas para un modelo pequeño, no rescatadas de metadatos de API.
Primero el borrador. Exactamente una herramienta puede transmitir a otra persona, toma un id de borrador en lugar de un destinatario, y está anotada como destructiva.
Cada herramienta declara su propio efecto mediante las anotaciones MCP
readOnlyHintydestructiveHint, de modo que un host puede clasificarla sin adivinar por el nombre de la herramienta.
Construido para el Edge Harness, y útil para cualquier cliente MCP.
Estado
Temprano. Aún no utilizable. El plan es de diez commits; consulta docs/PLAN.md para la secuencia completa y el razonamiento detrás de cada decisión.
Andamiaje, licencia, CI | hecho |
Protocolo MCP sobre stdio | hecho |
La superficie de catorce herramientas | declarada, los manejadores son stubs |
Inicio de sesión | no iniciado |
Microsoft Graph | no iniciado |
Related MCP server: google-nice-mcp
Viendo la superficie de herramientas
--list-tools no inicia nada y no necesita cuenta, por lo que responde "¿qué se le ofrecería a un host?" antes de que nada esté conectado:
.venv/bin/python -m ms365_mcp --list-toolsAñade --json para una versión legible por máquina.
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 (!)Los manejadores son stubs hoy: una llamada devuelve una frase diciendo que la herramienta está declarada pero no implementada. La superficie se fija deliberadamente antes de construir nada, porque los nombres de las herramientas, las descripciones y las clases de efecto son lo que un host clasifica y contra lo que se promptea a un modelo, y eso es caro de cambiar más adelante.
Usándolo desde el Edge Harness
El harness lanza este servidor como un subproceso sobre stdio, por lo que se ejecuta bajo su propio intérprete y no comparte dependencias con el host. Eso no es incidental: el harness tiene un paquete local llamado mcp/ y el SDK oficial en PyPI también se llama mcp, así que instalar este servidor en el virtualenv del harness sombrea el propio paquete del harness.
Su entrada de registro allí es ms365-own, y al pulsar Check en las opciones de ejecución de Agent Lab se listan todas las herramientas con su clase de efecto. Las catorce se clasifican como declared, lo que significa que el harness las tomó de las anotaciones de este servidor en lugar de adivinar por los nombres de las herramientas, y la entrada no necesita anulaciones.
En el modo de borrador predeterminado del harness, send_draft se retiene y las otras trece están disponibles, por lo que una ejecución no puede llegar a una persona.
Seguridad
Este repositorio es público y no contiene ninguna credencial de ningún tipo.
La autenticación utiliza el flujo de código de dispositivo de Microsoft. La caché de tokens resultante se escribe en el directorio de configuración del sistema operativo con permisos solo para el propietario, nunca en este repositorio ni en su árbol de trabajo. .gitignore cubre los nombres de archivo de tokens y caché de todos modos, y un hook de pre-commit escanea los cambios preparados en busca de cadenas con forma de credencial, por lo que comprometer una requiere un esfuerzo deliberado en lugar de un desliz.
Una línea que termina en # pragma: allowlist secret es omitida por el hook. Eso existe para que las pruebas de este repositorio puedan contener credenciales falsas, y deja un marcador que un revisor puede ver en el diff, lo cual --no-verify no hace. Úsalo solo para datos que sean demostrablemente falsos.
Desarrollo
python3 -m venv .venv
.venv/bin/pip install -e ".[dev]"
.venv/bin/pytest -qHabilita el hook de escaneo de secretos una vez por clon:
git config core.hooksPath .githooksLicencia
MIT. Ver 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