Microsoft 365 MCP OAuth fails: duplicated 'prompt' parameter

Resolved 💬 3 comments Opened Apr 3, 2026 by tbrambor Closed Apr 7, 2026

Bug

The Microsoft 365 MCP server (microsoft365.mcp.claude.com/mcp) generates an OAuth authorization URL with a duplicated prompt query parameter, which Microsoft Azure AD rejects.

Steps to reproduce

  1. Enable the Microsoft 365 MCP server (e.g. via the knowledge-work-plugins brand-voice plugin)
  2. Call the mcp__microsoft-365__authenticate tool
  3. Open the generated URL in a browser

Expected behavior

The OAuth login page loads and allows the user to sign in.

Actual behavior

Microsoft returns:

AADSTS9000411: The request is not properly formatted. The parameter 'prompt' is duplicated.

Root cause

The generated authorization URL contains two prompt parameters:

https://login.microsoftonline.com/common/oauth2/v2.0/authorize?prompt=select_account&...&prompt=consent

Azure AD rejects requests with duplicated parameters.

Workaround attempted

Manually editing the URL to remove one prompt parameter gets past the initial error, but then fails with AADSTS900971: No reply address provided because the localhost callback server has timed out by the time the user completes the manual flow.

Environment

  • Claude Code CLI (macOS, Darwin 25.3.0)
  • Model: claude-opus-4-6
  • MCP server URL: https://microsoft365.mcp.claude.com/mcp
  • Plugin source: knowledge-work-plugins

View original on GitHub ↗

This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗