# SharePoint setup for PopMCP

You register an app in the Microsoft Entra admin center, copy its Application (client) ID and a client secret Value into PopMCP, then sign in with your work or school Microsoft account and approve access to SharePoint. In most organizations an administrator approves it once.

- Auth: OAuth authorization
- Setup time: 10 min
- API base URL: https://graph.microsoft.com/v1.0
- Credentials screen: https://entra.microsoft.com/#view/Microsoft_AAD_RegisteredApps/ApplicationsListBlade
- Provider docs: https://learn.microsoft.com/en-us/entra/identity-platform/quickstart-register-app

## Approval required before this works

Microsoft reviews nothing: an app you register in the Microsoft Entra admin center can sign in straight away. Your organization is the gate. SharePoint needs Sites.Read.All or Sites.ReadWrite.All, and since 2025 Microsoft's default consent settings make an administrator approve those once.

- Typical wait: None if you are an administrator or your organization lets people approve these permissions. Otherwise, until a Microsoft 365 administrator approves the app once.
- Cost: Free. Registering an app and the calls PopMCP makes as you cost nothing. It needs a work or school account on Microsoft 365 with a license that includes SharePoint; personal Microsoft accounts have no SharePoint.
- Blocked until approved: Everything until it is approved: Microsoft stops the sign-in with Need admin approval. Nothing narrower reaches SharePoint sites, so there is no smaller set to start with.
- Works meanwhile: Register the app, add PopMCP's Redirect URI and the permissions, create the client secret, and send the app's API permissions page to your administrator. Everything is ready to connect the moment it is approved.

## Before you begin

- A work or school account on Microsoft 365 with a license that includes SharePoint. Personal Microsoft accounts have no SharePoint.
- A Microsoft Entra tenant you can register apps in: your organization's (members can register apps unless an admin turned that off, and the Application Developer role always can).
- PopMCP's Redirect URI from the connect form: https://app.popmcp.com/api/providers/microsoft/callback
- In most organizations, an administrator who can approve the app once: a Global Administrator, Privileged Role Administrator or Cloud Application Administrator. SharePoint needs Sites.Read.All or Sites.ReadWrite.All, and since 2025 Microsoft's default consent settings stop people approving those for themselves.

## Get your credentials

### 1. Open App registrations

Go to entra.microsoft.com and sign in. If you belong to several tenants, use the Settings icon in the top bar to switch to the one that should own the app. Open Entra ID > App registrations and select New registration.

Screen: https://entra.microsoft.com/#view/Microsoft_AAD_RegisteredApps/ApplicationsListBlade

### 2. Register the app

Enter a Name people will recognize, such as `PopMCP`: Microsoft shows it when asking for access. Under Supported account types pick Any Entra ID Tenant, then select Register. Single tenant only works too for your organization's own accounts, but then the app's Directory (tenant) ID goes into PopMCP as well.

Screen: https://entra.microsoft.com/#view/Microsoft_AAD_RegisteredApps/ApplicationsListBlade

### 3. Add PopMCP's Redirect URI

On the new app, open Authentication under Manage. On the Redirect URI configuration tab select Add Redirect URI, choose the Web tile, enter `https://app.popmcp.com/api/providers/microsoft/callback` exactly as PopMCP shows it, and select Configure.

### 4. Create a client secret

Open Certificates & secrets, stay on Client secrets and select New client secret. Enter a description such as `PopMCP`, choose when it expires (24 months at most; Microsoft recommends less than 12) and select Add. Copy the Value column straight away: Microsoft never shows it again. The Secret ID beside it is not the secret.

### 5. Copy the Application (client) ID

Open Overview and copy the Application (client) ID. You only need the Directory (tenant) ID if you chose Single tenant only.

### 6. Add the permissions and approve them

Open API permissions and select Add a permission, then Microsoft Graph, then Delegated permissions. Tick `Sites.ReadWrite.All`, `Sites.Manage.All`, `User.Read` and `offline_access`, then select Add permissions. If you are an administrator, select Grant admin consent for your organization. If you are not, send this page to one: it is the step that lets people in your organization connect.

### 7. Paste both into PopMCP and sign in

In PopMCP put the ID in Application (client) ID and the secret's Value in Client secret Value (the Directory (tenant) ID under More options only for a Single tenant only app). Under More options you can also tick Term store, Site administration or Organization settings; each needs an administrator. Select Sign in with Microsoft, pick your work or school account and select Accept. If Microsoft says Need admin approval, an administrator has to do the previous step first.

## Fields PopMCP asks for

- Application (client) ID (clientId) [required]: Only for your own app. In the Microsoft Entra admin center (entra.microsoft.com) open Entra ID, App registrations, New registration, pick Any Entra ID Tenant under Supported account types and select Register, then copy the Application (client) ID from Overview.
- Client secret Value (clientSecret) [required]: In the app registration open Certificates & secrets, Client secrets, New client secret, then Add, and copy the Value column right away (it is shown once). Stored encrypted and used only on our server.
- Directory (tenant) ID (tenant): Only for an app registered as Single tenant only. Copy it from the app's Overview page.
- Extra access (extraAccess): 

## Callback URL to register

https://app.popmcp.com/api/providers/microsoft/callback

## Scopes requested

- User.Read
- Sites.ReadWrite.All
- Sites.Manage.All
- offline_access
- openid
- profile
- email

## Verify

PopMCP shows SharePoint as Connected under the account's address, and sharepoint_search_sites lists the sites you can open.

## Troubleshooting

### "The app's redirect URI does not match"

Cause: Microsoft answered AADSTS50011: PopMCP's callback is not registered as a Web redirect URI on the app, or differs by a character.

Fix: Open **Authentication**, select **Add Redirect URI**, choose **Web**, enter `https://app.popmcp.com/api/providers/microsoft/callback` and select **Configure**, then connect again.

### "Microsoft did not accept the app's client secret"

Cause: The **Secret ID** was pasted instead of the secret's **Value** (AADSTS7000215), or the Value was cut short when copying.

Fix: Under **Certificates & secrets** create a new client secret, copy its **Value** right away and paste it into PopMCP.

### "The app's client secret has expired"

Cause: Client secrets last at most 24 months (AADSTS7000222).

Fix: Create a new client secret under **Certificates & secrets** and reconnect SharePoint with its Value.

### "This app does not accept the kind of Microsoft account you signed in with"

Cause: You signed in with a personal Microsoft account. SharePoint needs a work or school one.

Fix: Sign in with your Microsoft 365 work or school account, and register the app with **Any Entra ID Tenant**.

### "Your app is registered for one organization only"

Cause: A Single tenant only app was used without its tenant (AADSTS50194).

Fix: Copy the **Directory (tenant) ID** from the app's **Overview**, enter it under **More options** in PopMCP and connect again.

### "Need admin approval" on Microsoft's page, or "Your organization needs an administrator to approve this app"

Cause: Since 2025 Microsoft's default consent settings stop people approving an app that asks for Sites.Read.All or Sites.ReadWrite.All (AADSTS65001 or AADSTS90094). Nothing narrower reaches SharePoint sites.

Fix: An admin opens the app in the Microsoft Entra admin center, **API permissions**, and selects **Grant admin consent** for the organization. Then connect again.

### "This organization has no SharePoint Online that this account can reach"

Cause: The account has no license that includes SharePoint, or the organization does not use SharePoint Online.

Fix: Ask your Microsoft 365 admin for a license that includes SharePoint, then connect again.

### "This needs TermStore.Read.All (Term store), which this connection was not given"

Cause: The term store, site administration and organization settings are optional and were not ticked when connecting.

Fix: Reconnect SharePoint with the box the message names ticked under **More options**, and have an administrator approve it.

### 403 on a site or list even though the connection is fine

Cause: The connection acts as you: your own rights in SharePoint are the limit, whatever the connection allows.

Fix: Ask the site's owner for access. Open the same link in a browser to check.

### A filter or a new row says a column name is wrong

Cause: Rows use a column's internal name, which can differ from what the page shows: Due Date is often DueDate or field_3.

Fix: sharepoint_describe_list gives every column's internal name.

### 429 with a Retry-After header

Cause: SharePoint allows about 3,000 requests per 5 minutes per person, and each app has a share of its organization's limit.

Fix: Wait the time Microsoft gives and try again. sharepoint_search and the fields option do in one call what would otherwise take many.

---

Source: https://www.docs.popmcp.com/docs/integrations/sharepoint/