Prototipo · Versión preliminar: todos los servidores del registro oficial, sincronizados cada 30 minutos. Inicia sesión con Google para escribir reseñas.
PopNx MCPServidores MCP para quienes usan IA · explicados con palabras sencillas

Microsoft 365 Admin

de okapi-caversión 0.6.3i★ 19iSe ejecuta en tu computadora
Nombre en el registroio.github.okapi-ca/ms-365-admin

Cómo instalar

Resumen

Descripción del creador (original en inglés)

Microsoft 365 administration via Graph API application permissions (read-only by default).

Qué puedes hacer con él

Todavía no escribimos un resumen sencillo para este. Abajo están los datos que leímos del registro.

  • Conexión: Se ejecuta en tu computadora
  • Transporte: stdio
  • Categoría: Otros
  • Debes completar: MS365_ADMIN_MCP_TENANT_ID, MS365_ADMIN_MCP_CLIENT_ID, MS365_ADMIN_MCP_CLIENT_SECRET

Instalación

Elige la app de IA que usas y copia la configuración.

Pasó 2/2 revisiones · Funciona en tu computadora

Primero: ¿qué IA usas?

Elige tu app y los pasos aparecen abajo.

Funciona con Claude, pero hay que preparar algo antes

Necesitas una clave de Microsoft 365 Admin (regístrate en el sitio del autor; puede tener costo) · Instala Node.js en tu computadora primero (una sola vez) · Solo en la app de Claude para computadora (Windows o Mac), no en la web ni en el móvil

  1. Instala Node.js

    Una sola vez; sirve para todos los servidores que necesitan Node.js

    Abrir la página de descarga de Node.js ↗

  2. Regístrate y crea una clave de Microsoft 365 Admin

    Abre el sitio del autor, crea una cuenta y una clave de API para el siguiente paso. Puede tener costo.

    Abrir el sitio de Microsoft 365 Admin ↗

  3. Abre el archivo de configuración de la app de Claude de escritorio

    SettingsDeveloperEdit Config

  4. Pega esta configuración y guarda el archivo

    {
      "mcpServers": {
        "ms-365-admin": {
          "command": "npx",
          "args": [
            "-y",
            "@okapi-ca/ms-365-admin-mcp-server"
          ],
          "env": {
            "MS365_ADMIN_MCP_TENANT_ID": "your-value",
            "MS365_ADMIN_MCP_CLIENT_ID": "your-value",
            "MS365_ADMIN_MCP_CLIENT_SECRET": "your-value",
            "MS365_ADMIN_MCP_KEYVAULT_URL": "your-value",
            "MS365_ADMIN_MCP_CLOUD_TYPE": "your-value",
            "MS365_ADMIN_MCP_MAX_TOP": "your-value",
            "READ_ONLY": "your-value",
            "ENABLED_TOOLS": "your-value"
          }
        }
      }
    }

    Pega la clave solo en el campo de la app; nunca en un chat ni se la envíes a nadie

  5. Cierra Claude y vuelve a abrirlo

  6. Pruébalo

    Usa Microsoft 365 Admin y dime qué puedes hacer por mí; luego muéstrame una cosa

    ✓ Si Claude dice que está usando Microsoft 365 Admin o muestra una herramienta de Microsoft 365 Admin en la respuesta, ya está conectado

Nombres de menú comprobados con la ayuda de Anthropic el 11 nov 2026 · tu pantalla puede variar un poco según la versión

ChatGPT todavía no puede conectar Microsoft 365 Admin

Microsoft 365 Admin se instala en tu computadora, pero ChatGPT solo conecta servidores que funcionan en la web

Lo que puedes hacer en su lugar

A · Usa una app que pueda conectar Microsoft 365 Admin

  • Necesitas una clave de Microsoft 365 Admin (regístrate en el sitio del autor; puede tener costo) · Instala Node.js en tu computadora primero (una sola vez) · Solo en la app de Claude para computadora (Windows o Mac), no en la web ni en el móvil
  • Necesitas una clave de Microsoft 365 Admin (regístrate en el sitio del autor; puede tener costo) · Instala Node.js en tu computadora primero (una sola vez)
  • Necesitas una clave de Microsoft 365 Admin (regístrate en el sitio del autor; puede tener costo) · Instala Node.js en tu computadora primero (una sola vez)
  • Necesitas una clave de Microsoft 365 Admin (regístrate en el sitio del autor; puede tener costo) · Instala Node.js en tu computadora primero (una sola vez)

B · Otros en Otros que funcionan con ChatGPT

Elegidos entre los más usados de la misma categoría, solo los que se conectan con una dirección y sin clave

Funciona con Claude Code, pero hay que preparar algo antes

Necesitas una clave de Microsoft 365 Admin (regístrate en el sitio del autor; puede tener costo) · Instala Node.js en tu computadora primero (una sola vez)

  1. Instala Node.js

    Una sola vez; sirve para todos los servidores que necesitan Node.js

    Abrir la página de descarga de Node.js ↗

  2. Regístrate y crea una clave de Microsoft 365 Admin

    Abre el sitio del autor, crea una cuenta y una clave de API para el siguiente paso. Puede tener costo.

    Abrir el sitio de Microsoft 365 Admin ↗

  3. Abre la Terminal

    Mac: pulsa Command+Espacio y escribe Terminal · Windows: abre PowerShell

  4. Pega este comando y pulsa Enter

    claude mcp add ms-365-admin --env MS365_ADMIN_MCP_TENANT_ID=your-value --env MS365_ADMIN_MCP_CLIENT_ID=your-value --env MS365_ADMIN_MCP_CLIENT_SECRET=your-value --env MS365_ADMIN_MCP_KEYVAULT_URL=your-value --env MS365_ADMIN_MCP_CLOUD_TYPE=your-value --env MS365_ADMIN_MCP_MAX_TOP=your-value --env READ_ONLY=your-value --env ENABLED_TOOLS=your-value -- npx -y @okapi-ca/ms-365-admin-mcp-server

    Cambia “your-value” por tu clave antes de pulsar Enter

    Pega la clave solo en el campo de la app; nunca en un chat ni se la envíes a nadie

  5. Escribe /mcp en Claude Code

    Deberías ver Microsoft 365 Admin en la lista como conectado

  6. Pruébalo

    Usa Microsoft 365 Admin y dime qué puedes hacer por mí; luego muéstrame una cosa

    ✓ Si Claude Code dice que está usando Microsoft 365 Admin o muestra una herramienta de Microsoft 365 Admin en la respuesta, ya está conectado

Nombres de menú comprobados con la ayuda de Anthropic el 11 nov 2026 · tu pantalla puede variar un poco según la versión

Funciona con Cursor, pero hay que preparar algo antes

Necesitas una clave de Microsoft 365 Admin (regístrate en el sitio del autor; puede tener costo) · Instala Node.js en tu computadora primero (una sola vez)

  1. Instala Node.js

    Una sola vez; sirve para todos los servidores que necesitan Node.js

    Abrir la página de descarga de Node.js ↗

  2. Regístrate y crea una clave de Microsoft 365 Admin

    Abre el sitio del autor, crea una cuenta y una clave de API para el siguiente paso. Puede tener costo.

    Abrir el sitio de Microsoft 365 Admin ↗

  3. Pulsa este botón para abrir Cursor

    Abrir en Cursor

    Cursor te pedirá confirmar; pulsa Install

  4. Escribe tu clave

    En la configuración de Microsoft 365 Admin, MS365_ADMIN_MCP_TENANT_ID, MS365_ADMIN_MCP_CLIENT_ID, MS365_ADMIN_MCP_CLIENT_SECRET, MS365_ADMIN_MCP_KEYVAULT_URL, MS365_ADMIN_MCP_CLOUD_TYPE, MS365_ADMIN_MCP_MAX_TOP, READ_ONLY, ENABLED_TOOLS está vacío; añade tu clave y guarda

    Pega la clave solo en el campo de la app; nunca en un chat ni se la envíes a nadie

  5. Abre el chat de IA de Cursor en modo Agent

  6. Pruébalo

    Usa Microsoft 365 Admin y dime qué puedes hacer por mí; luego muéstrame una cosa

    ✓ Si Cursor dice que está usando Microsoft 365 Admin o muestra una herramienta de Microsoft 365 Admin en la respuesta, ya está conectado

Nombres de menú comprobados con la ayuda de Cursor el 11 nov 2026 · tu pantalla puede variar un poco según la versión

Funciona con VS Code, pero hay que preparar algo antes

Necesitas una clave de Microsoft 365 Admin (regístrate en el sitio del autor; puede tener costo) · Instala Node.js en tu computadora primero (una sola vez)

  1. Instala Node.js

    Una sola vez; sirve para todos los servidores que necesitan Node.js

    Abrir la página de descarga de Node.js ↗

  2. Regístrate y crea una clave de Microsoft 365 Admin

    Abre el sitio del autor, crea una cuenta y una clave de API para el siguiente paso. Puede tener costo.

    Abrir el sitio de Microsoft 365 Admin ↗

  3. Pulsa este botón para abrir VS Code

    Abrir en VS Code

    VS Code te pedirá confirmar; pulsa Install

  4. Escribe tu clave

    En la configuración de Microsoft 365 Admin, MS365_ADMIN_MCP_TENANT_ID, MS365_ADMIN_MCP_CLIENT_ID, MS365_ADMIN_MCP_CLIENT_SECRET, MS365_ADMIN_MCP_KEYVAULT_URL, MS365_ADMIN_MCP_CLOUD_TYPE, MS365_ADMIN_MCP_MAX_TOP, READ_ONLY, ENABLED_TOOLS está vacío; añade tu clave y guarda

    Pega la clave solo en el campo de la app; nunca en un chat ni se la envíes a nadie

  5. Abre el chat de IA de VS Code en modo Agent

  6. Pruébalo

    Usa Microsoft 365 Admin y dime qué puedes hacer por mí; luego muéstrame una cosa

    ✓ Si VS Code dice que está usando Microsoft 365 Admin o muestra una herramienta de Microsoft 365 Admin en la respuesta, ya está conectado

Nombres de menú comprobados con la ayuda de VS Code el 11 nov 2026 · tu pantalla puede variar un poco según la versión

Otras apps que usan MCP, como Windsurf, Zed o Gemini CLI, añaden servidores de forma distinta. Míralo en la lista de apps

Ver todas las apps que usan MCP →

La configuración JSON está en “Para desarrolladores”, abajo

¿Te atascaste? Pregunta a quien usa Microsoft 365 Admin💬 Conversación →
Para desarrolladores: comandos de Terminal y configuración JSON

Instalado en tu computadora

Claude Code

claude mcp add ms-365-admin --env MS365_ADMIN_MCP_TENANT_ID=your-value --env MS365_ADMIN_MCP_CLIENT_ID=your-value --env MS365_ADMIN_MCP_CLIENT_SECRET=your-value --env MS365_ADMIN_MCP_KEYVAULT_URL=your-value --env MS365_ADMIN_MCP_CLOUD_TYPE=your-value --env MS365_ADMIN_MCP_MAX_TOP=your-value --env READ_ONLY=your-value --env ENABLED_TOOLS=your-value -- npx -y @okapi-ca/ms-365-admin-mcp-server

Claude Desktop (claude_desktop_config.json)

{
  "mcpServers": {
    "ms-365-admin": {
      "command": "npx",
      "args": [
        "-y",
        "@okapi-ca/ms-365-admin-mcp-server"
      ],
      "env": {
        "MS365_ADMIN_MCP_TENANT_ID": "your-value",
        "MS365_ADMIN_MCP_CLIENT_ID": "your-value",
        "MS365_ADMIN_MCP_CLIENT_SECRET": "your-value",
        "MS365_ADMIN_MCP_KEYVAULT_URL": "your-value",
        "MS365_ADMIN_MCP_CLOUD_TYPE": "your-value",
        "MS365_ADMIN_MCP_MAX_TOP": "your-value",
        "READ_ONLY": "your-value",
        "ENABLED_TOOLS": "your-value"
      }
    }
  }
}

Cursor (~/.cursor/mcp.json)

{
  "mcpServers": {
    "ms-365-admin": {
      "command": "npx",
      "args": [
        "-y",
        "@okapi-ca/ms-365-admin-mcp-server"
      ],
      "env": {
        "MS365_ADMIN_MCP_TENANT_ID": "your-value",
        "MS365_ADMIN_MCP_CLIENT_ID": "your-value",
        "MS365_ADMIN_MCP_CLIENT_SECRET": "your-value",
        "MS365_ADMIN_MCP_KEYVAULT_URL": "your-value",
        "MS365_ADMIN_MCP_CLOUD_TYPE": "your-value",
        "MS365_ADMIN_MCP_MAX_TOP": "your-value",
        "READ_ONLY": "your-value",
        "ENABLED_TOOLS": "your-value"
      }
    }
  }
}

VS Code (mcp.json)

{
  "servers": {
    "ms-365-admin": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "@okapi-ca/ms-365-admin-mcp-server"
      ],
      "env": {
        "MS365_ADMIN_MCP_TENANT_ID": "your-value",
        "MS365_ADMIN_MCP_CLIENT_ID": "your-value",
        "MS365_ADMIN_MCP_CLIENT_SECRET": "your-value",
        "MS365_ADMIN_MCP_KEYVAULT_URL": "your-value",
        "MS365_ADMIN_MCP_CLOUD_TYPE": "your-value",
        "MS365_ADMIN_MCP_MAX_TOP": "your-value",
        "READ_ONLY": "your-value",
        "ENABLED_TOOLS": "your-value"
      }
    }
  }
}

Valores que debes completar

  • MS365_ADMIN_MCP_TENANT_ID obligatorio env
    Azure AD tenant ID (specific GUID, not 'common').
  • MS365_ADMIN_MCP_CLIENT_ID obligatorio env
    App registration client ID with the required application permissions.
  • MS365_ADMIN_MCP_CLIENT_SECRET secreto obligatorio env
    App registration client secret. Prefer Azure Key Vault via MS365_ADMIN_MCP_KEYVAULT_URL for production.
  • MS365_ADMIN_MCP_KEYVAULT_URL env
    Optional Azure Key Vault URL. When set, secrets are pulled from the vault and override the env-var values above.
  • MS365_ADMIN_MCP_CLOUD_TYPE env
    Cloud environment: 'global' (default) or 'china' (21Vianet).
  • MS365_ADMIN_MCP_MAX_TOP env
    Cap on the $top query parameter to limit result size.
  • READ_ONLY env
    Set to 'true' or '1' to force read-only mode (default behavior; mutations require --allow-writes).
  • ENABLED_TOOLS env
    Regex to filter the catalog of available tools.

Esta configuración se genera a partir de la ficha del creador en el registro. Si el README dice otra cosa, sigue el README.

De un vistazo

Descargas por semanai
84/sem
Licenciai
Sin licencia indicada
Conexión
Se ejecuta en tu computadora
Última versióni
0.6.3
Categoríai
Otros
Publicado en el registroi
22 may 2026
Último cambio de códigoi
10 nov 2026
Creador
okapi-ca
Paquetes
npm: @okapi-ca/ms-365-admin-mcp-server
Sitio web
github.com
Estado en el registro
Activo

Qué apps pueden usarlo

Según cómo se conecta este servidor y la documentación de cada app, comprobado el 10 nov 2026.

Se ejecutan en tu computadora en

ClaudeGooseLM StudioMsty StudioCherry StudioCursorVS Code + GitHub CopilotVisual StudioWindsurf (Devin Desktop)ZedKiroClineContinueJetBrains AI AssistantClaude CodeCodex CLIGemini CLIOpenCodenodecodeWarpLibreChatRaycast

Todas las apps, con ventajas y desventajas →

Qué puede hacer

Se ejecuta en tu computadora; la lista de herramientas aparece en tu app de IA después de instalarlo.

Revisiones básicasi

Revisamos información que cualquiera puede ver; no hemos leído el código. Las revisiones que no aplican no se cuentan. · Revisado el 11 nov 2026

  • ✓ Superada

    El creador coincide con el repo

    El nombre en el registro se verificó con la cuenta de GitHub okapi-ca, dueña del repo

  • ✓ Superada

    Sigue en mantenimiento

    Último cambio de código: ayer

  • … Aún sin revisar

    Tiene licencia

    Todavía no hemos leído este repo en GitHub

  • – No aplica

    El endpoint responde

    Este se ejecuta en tu computadora; no hay endpoint en internet

  • – No aplica

    Inicio de sesión con OAuth

    Se ejecuta en tu computadora y usa ajustes locales en su lugar

  • … Aún sin revisar

    Sin instrucciones ocultas en las descripciones de herramientas

    Se ejecuta en tu computadora; solo podemos leer listas de herramientas de endpoints en internet

Conversación

Pregunta, comparte un consejo o avisa de que no funciona. Ordenado por lo que la gente marcó como útil.

Aún no hay publicaciones. Sé la primera persona en preguntar o compartir.

Lo publicado aquí lo escriben usuarios, no el equipo de PopNx.

Inicia sesión con Google para publicar

Reseñas de usuarios

Aún no hay reseñas

Inicia sesión con Google para escribir una reseña

Comparado con otros en Otrosi

  • Más estrellas que el 97% de los otros 19130 servidores de esta categoría
  • Publicado en el registro más recientemente que el 8% de los otros 19130 servidores de esta categoría
  • Revisiones básicas iguales o mejores que el 100% de los otros 19130 servidores de esta categoría

Comparado con todos los servidores activos de esta categoría en el registro. Las estrellas solo cuentan cuando quien lo publica es dueño del repo.

Preguntas frecuentes

¿Es seguro Microsoft 365 Admin?

Superó 2 de 2 revisiones básicas aplicables. No hemos leído el código. Antes de agregar una clave o un token, revisa qué acceso pide el servidor y usa una clave que tenga solo los permisos que necesitas.

¿Qué claves o códigos necesita?

Debes completar: MS365_ADMIN_MCP_TENANT_ID, MS365_ADMIN_MCP_CLIENT_ID, MS365_ADMIN_MCP_CLIENT_SECRET

¿Se ejecuta en mi computadora o en la nube?

Se ejecuta en tu computadora. Tu app de IA lo inicia cuando hace falta, y los datos no pasan por los servidores del creador (a menos que el propio servidor llame a un servicio en línea).

¿Sigue en mantenimiento?

El repo de GitHub cambió por última vez ayer, y la última versión (0.6.3) llegó al registro hace 6 meses.

¿Qué apps pueden usarlo?

Las apps compatibles con MCP, como Claude Desktop, Claude Code, Cursor y VS Code. También necesitas Node.js en tu computadora.

¿Qué puedo usar en su lugar?

En la misma categoría: World Monitor, Claude Flow, Tldraw

Alternativas

Servidores de la misma categoría hechos por otros creadores, ordenados por estrellas.

Cómo leer una tarjeta:↓ Descargas por semanai★ Estrellas de GitHubiTres pilares: reseñas · revisiones · usoiActualizado = fecha en que se publicó la última versión en el registroi

World Monitor

Real-time global intelligence on conflict, markets, energy, trade, shipping and cyber. 102 tools.

de koala73Muy usado★ 90,5 milActualizado hace 6 días

Se ejecuta en la nube✓ worldmonitor.app

Claude Flow

AI orchestration with hive-mind swarms, neural networks, and 87 MCP tools for enterprise dev.

de ruvnetMuy usado↓ 13,5 mil/sem★ 81,4 milActualizado hace 14 meses

Se ejecuta en tu computadora

Tldraw

Draw and visually collaborate with your agents on tldraw's canvas.

de tldrawMuy usado★ 51,4 milActualizado hace 8 meses

Se ejecuta en la nube

README del creador

Abrir el README

Copiado tal cual del repo del creador. PopNx MCP no lo ha revisado ni lo respalda. Se quitaron HTML, imágenes y scripts. Los enlaces llevan fuera de este sitio.

ms-365-admin-mcp-server

A Model Context Protocol (MCP) server for Microsoft 365 administration via Graph API application permissions (client credentials).

Built on the architecture and endpoint-driven design pioneered by Softeria/ms-365-mcp-server, and complementary to it: Softeria's server uses delegated permissions for end-user productivity scenarios, while this one uses application permissions for admin operations — security monitoring, identity audits, incident response, and service health. See Acknowledgments below.

Features

  • 674 tools covering security, audit, identity, app credentials, guest users, Exchange, Intune (devices, apps, MAM, reports, Settings catalog & Endpoint security (BitLocker, Antivirus, Firewall, ASR), encryption report, Windows Update profiles, BitLocker and LAPS rotation, macOS Platform Scripts, macOS custom attribute scripts, assignment filters, Remediations, Windows PowerShell scripts, custom compliance scripts), governance (PIM, access reviews, entitlement, lifecycle), compliance, threat intelligence, advanced hunting, Defender for Identity (sensors, candidates, migration, identity accounts, audit policy), Microsoft 365 Copilot admin (usage reports, interaction history audit, AI users, meeting insights, agent registrations, policy settings), custom security attributes, LAPS, policies, reports, incident response, eDiscovery v3 (cases, custodians, noncustodial data sources, review sets, queries, exports, operations), Purview DSPM (protection scopes), event-based retention triggers, Teams online meeting attendance reports (app-only with Application Access Policy), deleted chats restore (admin recovery flow), Teams chat investigation reads (Chat.Read.All for triage; eDiscovery v3 for court-admissible production), Cloud PC, call records, Universal Print, information protection, SharePoint admin, and records management
  • Application permissions (client credentials) — no user interaction required
  • Read-only by default — write operations require explicit --allow-writes
  • Risk classification on write tools (low/medium/high/critical)
  • Presets to filter tools by domain (security, audit, identity, etc.)
  • Two transports: stdio (default) and HTTP (StreamableHTTP)
  • Multi-cloud: Microsoft global and China (21Vianet)
  • Key Vault support for secrets management

Documentation

DocumentPurpose
docs/USE_CASES.md18 typical admin scenarios with sample prompts and tool lists
docs/playbooks/End-to-end security incident response playbooks
agent-skills/Drop-in skills for LLM agents (Claude Code et al.) with safety patterns
docs/APP_REGISTRATION.mdStep-by-step Azure AD app registration and permission consent
docs/HTTP_DEPLOYMENT.mdHTTP transport, JWT validation, Docker, Azure Container Apps
docs/AZURE_DEPLOYMENT_SECURITY.mdThreat model, required controls, and checklist for Azure production deploys
docs/TROUBLESHOOTING.mdCommon errors and how to diagnose them
docs/ARCHITECTURE.mdInternal architecture and code generation pipeline
docs/RISK_MODEL.mdRisk classification rubric for write tools
CONTRIBUTING.mdHow to contribute new tools, presets, and fixes
SECURITY.mdVulnerability reporting and operator hardening checklist
CHANGELOG.mdRelease history

Prerequisites

  • Node.js >= 18
  • An Azure AD app registration with application permissions (not delegated)
  • A specific tenant ID (not "common")

Installation

npm (recommended)
npm install -g @okapi-ca/ms-365-admin-mcp-server

ms-365-admin-mcp-server --help

Docker
docker pull ghcr.io/okapi-ca/ms-365-admin-mcp-server:latest

docker run --rm -i \ -e MS365_ADMIN_MCP_CLIENT_ID=... \ -e MS365_ADMIN_MCP_CLIENT_SECRET=... \ -e MS365_ADMIN_MCP_TENANT_ID=... \ ghcr.io/okapi-ca/ms-365-admin-mcp-server:latest

From source
git clone https://github.com/okapi-ca/ms-365-admin-mcp-server.git

cd ms-365-admin-mcp-server npm install npm run generate npm run build

Configuration

Environment variables
VariableRequiredDescription
MS365_ADMIN_MCP_CLIENT_IDYesApp registration client ID
MS365_ADMIN_MCP_CLIENT_SECRETYesApp registration client secret
MS365_ADMIN_MCP_TENANT_IDYesAzure AD tenant ID (must be specific)
MS365_ADMIN_MCP_CLOUD_TYPENoglobal (default) or china
MS365_ADMIN_MCP_KEYVAULT_URLNoAzure Key Vault URL (overrides env vars)
MS365_ADMIN_MCP_MAX_TOPNoCap $top query param to limit result size
READ_ONLYNotrue/1 to force read-only (default behavior)
ENABLED_TOOLSNoRegex to filter available tools
MCP client configuration (Claude Desktop, etc.)
{

"mcpServers": { "ms365-admin": { "command": "node", "args": ["/path/to/ms-365-admin-mcp-server/dist/index.js"], "env": { "MS365_ADMIN_MCP_CLIENT_ID": "your-client-id", "MS365_ADMIN_MCP_CLIENT_SECRET": "your-client-secret", "MS365_ADMIN_MCP_TENANT_ID": "your-tenant-id" } } } }

VS Code (1.102+)

VS Code consumes the same MCP protocol but uses a different config layout — servers instead of mcpServers, an explicit type field, and inputs for secret prompts. A ready-to-copy sample lives at .vscode/mcp.json.example; copy it to .vscode/mcp.json and VS Code will prompt for the tenant / client / secret on first start, then store them in its secret store (the real mcp.json is gitignored so resolved secrets never reach the repo).

Minimal stdio setup:

{

"inputs": [ { "type": "promptString", "id": "ms365-tenant-id", "description": "Tenant ID" }, { "type": "promptString", "id": "ms365-client-id", "description": "Client ID" }, { "type": "promptString", "id": "ms365-client-secret", "description": "Client secret", "password": true, }, ], "servers": { "ms365-admin": { "type": "stdio", "command": "ms-365-admin-mcp-server", "args": ["--preset", "security,audit,identity,health"], "env": { "MS365_ADMIN_MCP_TENANT_ID": "${input:ms365-tenant-id}", "MS365_ADMIN_MCP_CLIENT_ID": "${input:ms365-client-id}", "MS365_ADMIN_MCP_CLIENT_SECRET": "${input:ms365-client-secret}", }, }, }, }

For remote HTTP deployments, use "type": "http" with a url field (VS Code 1.103+ handles OAuth 2.0 Dynamic Client Registration natively) or fall back to the mcp-remote bridge when the native browser flow is unavailable — see the example file for both shapes.

Tools surface in Agent mode (GitHub Copilot Chat). VS Code asks for per-tool approval; the --preset flag above keeps the catalog manageable. Use Cmd/Ctrl+Shift+P → MCP: List Servers → Show Output to see logs.

Catalog size limit on Claude.ai surfaces

Claude.ai, Claude Desktop and cloud sessions serve each connector's tools under a fixed budget of 1 MiB of input schema (compact JSON; tool names and descriptions are not counted). Tools are admitted in alphabetical order and a tool that no longer fits is dropped silently. Claude Code CLI is not affected. The limit is not documented publicly.

In a cloud session linked to a Mac, the claude-device bridge relays every local MCP server under one connector (lcl- - ), so all local servers share that budget, and this server's tools sort after most of them.

Request bodies are therefore advertised shallow (src/advertised-schema.ts): the entity's own fields with their descriptions, nested objects as free-form objects, and no Read-only. fields. Graph validates the body; the server forwards it as sent. With writes enabled the catalog advertises about 595 KB of input schema, and test/advertised-schema.test.ts fails the build above 768 KiB.

If tools still go missing in a cloud session, shrink what this server advertises (read-only mode, --preset, --enabled-tools), disable unused local servers, or register this server as its own connector so it gets a budget of its own.

Remote HTTP server: device_code authentication (RFC 8628)

If the server runs in HTTP / OAuth mode on a remote host (e.g. Azure Container Apps) and the client connects via mcp-remote, the standard flow requires a browser to reach localhost:14543/oauth/callback. When that isn't possible — macOS Platform SSO hijacks the WebKit flow, Claude Code runs in a headless Docker container, the user is on a remote SSH dev env — use the ms-365-admin-mcp-auth bootstrap to pre-seed mcp-remote's token cache instead.

npx -p @okapi-ca/ms-365-admin-mcp-server@latest ms-365-admin-mcp-auth \

--server https://your-mcp-host.azurecontainerapps.io/mcp

The helper prints a URL and a user code; you sign in on any device you trust (phone, another laptop) and the tokens are written to ~/.mcp-auth/mcp-remote- /. Claude Desktop / Claude Code then launches mcp-remote normally and finds the cached tokens without ever opening a browser.

See docs/TROUBLESHOOTING.md for Docker / remote-dev patterns and exit code reference.

Usage

CLI options
--read-only              Read-only mode (default)

--allow-writes Enable write operations --enabled-tools Filter tools by regex pattern --preset Use preset categories (comma-separated) --partition Tool partition served on /mcp/ in HTTP mode (default: domains) --list-presets List available presets and exit --list-tools List available tools and exit --list-permissions List required Graph API permissions and exit --verify-login

Solo se muestra el principio; lee el resto en el repo