Receber por email
← Voltar para o catálogo

microsoft-graph-connection

Use this skill when connecting the Microsoft Graph MCP Server for Enterprise to the Wyre MCP Gateway — registering the BYOC multi-tenant Entra app, supplying tenantId/clientId/clientSecret, and (the part everyone misses) granting per-tenant admin consent for the MCP.* delegated permissions out of band. Also covers the preview status and the 100 calls/min/user rate limit.

31estrelas
Atualizado há 4 meses

Ver no GitHub ↗ Licença: Apache-2.0

Como adicionar

/plugin marketplace add wyre-technology/msp-claude-plugins

O comando exato pode variar conforme o repositório. Confira o README no GitHub.

Para o autor da skill

Cole no README do seu repo

Mostra que sua skill está catalogada na Skillteca, gera backlink e tráfego rastreável.

[![Skillteca](https://www.skillteca.com.br/api/badge/microsoft-graph-connection/svg)](https://www.skillteca.com.br/skills/microsoft-graph-connection)

Skills relacionadas

Ver todas de Documentos →

Alerta por categoria

Receba novas skills de Documentos toda segunda

1 email curto, só com as skills novas de Documentos. 4 minutos de leitura, sem spam, cancela com 1 clique.

Você confirma o email no primeiro envio. Sem spam. Cancela com 1 clique.

Ler descrição completa

Connecting the Microsoft Graph MCP Server for Enterprise

The Microsoft Graph MCP Server for Enterprise is a Microsoft-hosted MCP server (public preview) at https://mcp.svc.cloud.microsoft/enterprise. It is reached through the Wyre MCP Gateway as the microsoft-graph vendor. Getting it working is a three-part job: register an Entra app, connect it through the gateway, and — the step that breaks most onboardings — grant per-tenant admin consent out of band.

Read this whole skill before connecting. The admin-consent requirement is non-obvious and the failure mode (a connection that authenticates fine but returns nothing) looks like a different bug.

How the connection works

  • The gateway exposes a microsoft-graph vendor that proxies to https://mcp.svc.cloud.microsoft/enterprise.
  • Auth is BYOC (bring-your-own-credentials): each MSP registers its own multi-tenant Entra app — a confidential client — and supplies tenantId, clientId, and clientSecret in the gateway connection UI.
  • The Entra authority used is organizations (the multi-tenant work/school endpoint).
  • The token minted is a delegated token scoped to api://e8c77dc2-69b3-43f4-bc51-3213c9d915b4/.default — the resource identifier of the Graph Enterprise MCP service.
  • Because the token is delegated, every call runs as the signed-in user. The data the server returns is the intersection of what the user is allowed to see (their Entra roles) and what scopes the app was granted.

Step 1 — Register the BYOC Entra application

In the customer-facing/partner tenant you control, register a multi-tenant app:

  1. Entra admin center → Identity → Applications → App registrations → New registration.
  2. Supported account types: Accounts in any organizational directory (multitenant). This is required — the authority is organizations, and you need the app to be consentable in each customer tenant.
  3. Platform: add a Web platform with a redirect URI. Use the redirect URI the Wyre gateway shows in the microsoft-graph connection UI (the gateway's OAuth callback). A Web platform is required because this is a confidential client doing an authorization-code flow.
  4. Certificates & secrets → New client secret. Record the secret value (not the secret ID) immediately — it is shown only once. Set a calendar reminder before it expires; an expired secret produces invalid_client on reconnect.
  5. Note the Application (client) ID and your Directory (tenant) ID from the app's Overview page.
  6. API permissions: add the delegated MCP.* permissions the Graph Enterprise MCP server requires (the permission set is shown when you add the Graph Enterprise MCP / api://e8c77dc2-... API as a permission target). These are delegated permissions, not application permissions.

Step 2 — Connect through the Wyre gateway

  1. In the gateway connection UI, choose the microsoft-graph vendor.
  2. Supply the three BYOC values from Step 1: tenantId, clientId, clientSecret.
  3. Complete the OAuth sign-in. The gateway runs the authorization-code flow against the organizations authority and stores the resulting delegated token.

At this point the connection exists — but it will still return no data until Step 3 is done for each customer tenant.

Step 3 — Grant per-tenant admin consent (the step everyone misses)

This is the single most common reason a Graph MCP connection "works" but returns nothing.

The MCP.* delegated permissions are admin-restricted. The OAuth connect flow in Step 2 authenticates the user and mints a token, but it does not by itself grant the tenant-wide consent those permissions need. A Global Administrator in each customer tenant must grant admin consent out of band — once per customer tenant, before the connection can read that tenant's directory.

Have the customer's Global Admin open the admin-consent URL and approve:

https://login.microsoftonline.com/{customer-tenant-id}/adminconsent?client_id={your-client-id}
  • {customer-tenant-id} — the customer's Entra tenant ID (or their primary domain).
  • {your-client-id} — the Application (client) ID of the BYOC app from Step 1.

After the admin approves, the app gets a service principal in the customer tenant with the MCP.* delegated permissions consented tenant-wide. Calls for that tenant will now return data.

If you skip this: microsoft_graph_get and microsoft_graph_suggest_queries calls will fail or return empty for that tenant even though the gateway connection shows healthy and the token mints fine. Symptom is consent/permission errors (AADSTS65001 or similar) or a successful auth that yields no directory data.

Repeat Step 3 for every customer tenant you want to query. Steps 1 and 2 are one-time per MSP; Step 3 is per customer tenant.

Operational limits

  • Preview. This is a Microsoft public-preview service. The tool surface, the RAG example catalog, and the available scopes may change before GA. Don't build hard automation dependencies on exact behavior yet.
  • Read-only. The server only issues GET requests to Microsoft Graph. There is no write path — by design.
  • Rate limit: 100 calls/min/user, enforced by the MCP server, on top of standard Microsoft Graph service throttling. The RAG suggest_queries → get workflow is deliberately call-efficient; lean on it rather than fanning out many speculative get calls.
  • Licensing: the MCP server itself adds no license cost, but the caller still needs the right Entra licenses for the data they touch. Example: querying Privileged Identity Management (PIM) data requires Microsoft Entra ID P2 on the tenant and the caller.

Quick troubleshooting

| Symptom | Likely cause | |---------|--------------| | Connection authenticates but every query returns empty/permission error | Per-tenant admin consent (Step 3) not granted for that customer tenant | | invalid_client on connect or reconnect | Client secret expired or the secret ID was pasted instead of the secret value | | Redirect URI mismatch error during sign-in | The Web platform redirect URI in the app registration doesn't match the gateway's callback URL | | Works for one tenant, not another | Admin consent granted for the first tenant only — run Step 3 again per tenant | | PIM / privileged-role data missing | Tenant or caller lacks Microsoft Entra ID P2 |

Compartilhar X LinkedIn