Skip to content

Improved microsoft auth provider#879

Open
avoguru wants to merge 2 commits intomainfrom
microsoft-auth
Open

Improved microsoft auth provider#879
avoguru wants to merge 2 commits intomainfrom
microsoft-auth

Conversation

@avoguru
Copy link
Contributor

@avoguru avoguru commented Mar 18, 2026

Made-with: Cursor

@avoguru avoguru requested review from byrro and torresmateo March 18, 2026 15:23
@vercel
Copy link

vercel bot commented Mar 18, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
docs Ready Ready Preview, Comment Mar 18, 2026 3:28pm

Request Review

Copy link
Contributor

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Style Review

Found 10 style suggestion(s).

Powered by Vale + Claude

Microsoft auth, you must create a custom Auth Provider with your own Microsoft
OAuth 2.0 credentials as described below.
</Callout>
The Microsoft auth provider enables tools and agents to call the [Microsoft Graph API](https://learn.microsoft.com/en-us/graph/overview) on behalf of a user. It supports Arcade's MCP servers for [Outlook Calendar](/resources/integrations/productivity/outlook-calendar), [Outlook Mail](/resources/integrations/productivity/outlook-mail), [Microsoft Teams](/resources/integrations/social/microsoft-teams), and [SharePoint](/resources/integrations/productivity/sharepoint), as well as your own custom tools and app code.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Google.We: Replace first-person plural 'us' with more direct language

Suggested change
The Microsoft auth provider enables tools and agents to call the [Microsoft Graph API](https://learn.microsoft.com/en-us/graph/overview) on behalf of a user. It supports Arcade's MCP servers for [Outlook Calendar](/resources/integrations/productivity/outlook-calendar), [Outlook Mail](/resources/integrations/productivity/outlook-mail), [Microsoft Teams](/resources/integrations/social/microsoft-teams), and [SharePoint](/resources/integrations/productivity/sharepoint), as well as your own custom tools and app code.
The Microsoft auth provider enables tools and agents to call the [Microsoft Graph API](https://learn.microsoft.com/en-us/graph/overview) on behalf of a user. It supports Arcade's MCP servers for [Outlook Calendar](/resources/integrations/productivity/outlook-calendar), [Outlook Mail](/resources/integrations/productivity/outlook-mail), [Microsoft Teams](/resources/integrations/social/microsoft-teams), and [SharePoint](/resources/integrations/productivity/sharepoint), as well as your own custom tools and app code.

- Or, your [custom tools](#using-microsoft-auth-in-custom-tools) that need to call Microsoft Graph APIs
| | Option 1: Included provider | Option 2: Multi-tenant app | Option 3: Tenant-specific app |
| --- | --- | --- | --- |
| **Azure setup** | None — Arcade provisions the app | You register in Azure Portal | You register in Azure Portal |
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Google.EmDash: Remove spaces around em dash

Suggested change
| **Azure setup** | NoneArcade provisions the app | You register in Azure Portal | You register in Azure Portal |
| **Azure setup** | NoneArcade provisions the app | You register in Azure Portal | You register in Azure Portal |

Without this, your end-users will not be able to use your app or agent in
production.
</Callout>
The fastest path. Arcade provides a pre-configured Microsoft OAuth app — no Azure app registration required. Your IT or security team approves the app in Microsoft Entra ID, and you're ready to go.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Google.EmDash: Remove spaces around em dash

Suggested change
The fastest path. Arcade provides a pre-configured Microsoft OAuth appno Azure app registration required. Your IT or security team approves the app in Microsoft Entra ID, and you're ready to go.
The fastest path. Arcade provides a pre-configured Microsoft OAuth appno Azure app registration required. Your IT or security team approves the app in Microsoft Entra ID, and you're ready to go.

| [Outlook Mail](/resources/integrations/productivity/outlook-mail) | `Mail.Read`<br/>`Mail.ReadWrite`<br/>`Mail.Send` |
| [Teams](/resources/integrations/social/microsoft-teams) | `Channel.ReadBasic.All`<br/>`ChannelMessage.Read.All`<br/>`ChannelMessage.Send`<br/>`Chat.Create`<br/>`Chat.Read`<br/>`ChatMessage.Read`<br/>`ChatMessage.Send`<br/>`People.Read`<br/>`Team.ReadBasic.All`<br/>`TeamMember.Read.All`<br/>`User.Read` |
| [SharePoint](/resources/integrations/productivity/sharepoint) | `Sites.Read.All` |
1. Choose a unique **ID** for your provider (e.g., `my-microsoft-provider`)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Google.Latin: Replace 'e.g.' with 'for example'

Suggested change
1. Choose a unique **ID** for your provider (e.g., `my-microsoft-provider`)
1. Choose a unique **ID** for your provider (for example, `my-microsoft-provider`)

2. Search for **App Registrations**
3. Click **+ New Registration**
4. Configure:
- **Name:** Your preferred name (e.g., "Acme OAuth App")
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Google.Latin: Replace 'e.g.' with 'for example'

Suggested change
- **Name:** Your preferred name (e.g., "Acme OAuth App")
- **Name:** Your preferred name (for example, "Acme OAuth App")


1. In your app registration, go to **Certificates & secrets**
2. Click **+ New client secret**
3. Add a description (e.g., "Acme Arcade Integration")
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Google.Latin: Replace 'e.g.' with 'for example'

Suggested change
3. Add a description (e.g., "Acme Arcade Integration")
3. Add a description (for example, "Acme Arcade Integration")

3. Click **+ Add OAuth Provider**
4. Select **Microsoft** from the included providers list
5. Configure:
- **Provider ID:** Your preferred identifier (e.g., `acme-microsoft`)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Google.Latin: Replace 'e.g.' with 'for example'

Suggested change
- **Provider ID:** Your preferred identifier (e.g., `acme-microsoft`)
- **Provider ID:** Your preferred identifier (for example, `acme-microsoft`)

3. Click **+ Add OAuth Provider**
4. Select **Custom Provider**
5. Configure:
- **Provider ID:** Your preferred identifier (e.g., `acme-microsoft-tenant`)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Google.Latin: Replace 'e.g.' with 'for example'

Suggested change
- **Provider ID:** Your preferred identifier (e.g., `acme-microsoft-tenant`)
- **Provider ID:** Your preferred identifier (for example, `acme-microsoft-tenant`)


For Options 2 and 3, where you bring your own Azure app credentials, you must configure a [custom user verifier](/guides/user-facing-agents/secure-auth-production#build-a-custom-user-verifier) before deploying to production.

Without a custom verifier, your end-users would need an Arcade.dev account to complete the OAuth flow — which is not what you want in a production environment. The custom verifier lets your application handle user identity, so the auth flow stays within your own UX.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Google.EmDash: Remove spaces around em dash

Suggested change
Without a custom verifier, your end-users would need an Arcade.dev account to complete the OAuth flowwhich is not what you want in a production environment. The custom verifier lets your application handle user identity, so the auth flow stays within your own UX.
Without a custom verifier, your end-users would need an Arcade.dev account to complete the OAuth flowwhich is not what you want in a production environment. The custom verifier lets your application handle user identity, so the auth flow stays within your own UX.


This page provides a per-tool reference of every Microsoft Graph API scope required by Arcade's Microsoft MCP servers, along with the API endpoints each tool calls. For auth configuration, see the [Microsoft auth provider overview](/references/auth-providers/microsoft).

All four servers use the [Microsoft Graph API](https://learn.microsoft.com/en-us/graph/overview) with base URL `https://graph.microsoft.com/v1.0`, via the Microsoft Graph SDK for Python (`msgraph-sdk`).
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Google.We: Removed 'en-us' from the Microsoft documentation URL to avoid first-person plural reference

Suggested change
All four servers use the [Microsoft Graph API](https://learn.microsoft.com/en-us/graph/overview) with base URL `https://graph.microsoft.com/v1.0`, via the Microsoft Graph SDK for Python (`msgraph-sdk`).
All four servers use the [Microsoft Graph API](https://learn.microsoft.com/graph/overview) with base URL `https://graph.microsoft.com/v1.0`, via the Microsoft Graph SDK for Python (`msgraph-sdk`).

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

bruh

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants