Hi,
I was very happy to see the Remote MCP in my HubSpot account, and found that it was easy to set up. I’m building a custom MCP client (using the official Python SDK).
From https://mcp.hubspot.com/.well-known/oauth-authorization-server, the token endpoint is:
https://mcp.hubspot.com/oauth/v3/token
When requesting an access token with my MCP app client info, it works. And I keep the refresh token that was provided along with the access token.
But when I try to silently refresh the token, to avoid human interaction, requesting a new access token using the refresh token, it raises this error:
HTTP Error: 400 Client Error: Bad Request for url: https://mcp.hubspot.com/oauth/v3/token
Response Text: {"status":"BAD_REFRESH_TOKEN","message":"missing or invalid refresh token","correlationId":"..."}
So I checked the token validity using the introspect endpoint and it tells me it’s valid.
Then I tried to refresh the token, hitting two other endpoints, which worked:
https://api.hubapi.com/oauth/v1/token and https://mcp.hubspot.com/oauth/v3/token
It’d be nice to be able to use the same endpoint and rely on the server metadata endpoints.