@Simpson007 so hubspot’s standard OAuth2 flow doesn’t use PKCE (Proof Key for Code Exchange) by default, and the authorization URL you’re using appears to be for HubSpot’s MCP (Marketing Contacts Platform) which has different requirements.
Hi
The error you’re seeing is due to HubSpot MCP OAuth flow limitations, not n8n.
Key points:
PKCE grant type is not fully supported by HubSpot MCP.
The authorization succeeds, but token exchange fails.
oauth alone is not a valid scope — HubSpot requires specific scopes like crm.objects.contacts.read.
Solutions: Use standard HubSpot OAuth (Authorization Code grant)
Auth URL: https://app.hubspot.com/oauth/authorize
Token URL: https://api.hubapi.com/oauth/v1/token
Define proper scopes
Redirect URI must match n8n exactly Use MCP via Private App / Bearer Token
Create a private app in HubSpot
Use HTTP Request node in n8n instead of OAuth
Bypasses PKCE limitations