Skip to main content
Glama

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 readOnlyHint y destructiveHint, 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-tools

Añ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 -q

Habilita el hook de escaneo de secretos una vez por clon:

git config core.hooksPath .githooks

Licencia

MIT. Ver LICENSE.

A
license - permissive license
Not graded
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

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

  • A
    license
    Not graded
    quality
    A
    maintenance
    A 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
  • A
    license
    Not graded
    quality
    D
    maintenance
    Lightweight MCP server that enables AI agents to manage Microsoft Outlook email, calendar, and files using PKCE authentication with only a Client ID.
    MIT

View all related MCP servers

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.

View all MCP Connectors

Latest Blog Posts

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