HubSpot hosts a remote server at mcp.hubspot.com, exposing CRM records, activities, conversations, campaigns, and marketing email directly from a HubSpot portal. This guide covers the Arcade-side setup for connecting it as a remote MCP server, plus the HubSpot settings that most commonly trip people up.
This guide is about connecting to HubSpot’s own remote server, not
the Arcade HubSpot toolkits. Arcade already covers most of this surface
across two toolkit tiers: the HubSpot
toolkit for core CRM objects, and
starter toolkits like hubspotconversationsapi and hubspotmarketingapi
for conversations, campaigns, and marketing email.
Reach for this remote server instead when you want:
One connection instead of wiring up the toolkit plus as many as eight starter toolkits
Access scoped to whatever the authorizing HubSpot can already do in the portal, not fixed toolkit scopes
The HubSpot-side steps below are sourced directly from HubSpot’s own
documentation
for this server, which is unusually thorough. The Arcade-side field mapping
has not yet been walked through end-to-end against a live HubSpot portal.
Confirm before treating this as authoritative.
Outcomes
Connect a HubSpot Remote server to Arcade and use its in gateways and SDKs.
You will Learn
Which HubSpot Auth App settings matter for Arcade specifically, and why
Configure the remote server’s OAuth 2.0 settings in Arcade
Diagnose the most common setup mistakes from their error messages
A HubSpot with access to the Developer Platform (available on every hub and tier, no separate license required)
Set up HubSpot
Follow HubSpot’s guide to create an MCP auth app : in your HubSpot , go to Development → Auth Apps → Create MCP auth app, and enter an app name, optional description, and a placeholder Redirect URL (you’ll update this once Arcade generates its own; see Add the redirect URI to your MCP auth app below). HubSpot supports multiple redirect URLs on one app, and the first one listed becomes the default, so adding Arcade’s later won’t disturb any existing entry.
A few things about this integration are structurally different from Salesforce, ServiceNow, or Dynamics 365, and worth knowing before you configure Arcade:
There’s no scope picker. Unlike the other providers in this section, you don’t explicitly select OAuth scopes when creating the auth app. Available scopes are determined automatically by whatever tools the currently exposes, and whatever the authorizing user grants during installation. If HubSpot adds to the MCP server later, previously authorized need to reinstall the app to pick up the new scopes. If a capability that should exist suddenly seems missing, a stale authorization is worth checking before assuming a bug.
Sensitive Data accounts lose activity and conversation access through specifically. If the HubSpot portal has Sensitive Data protection turned on, calls, emails, meetings, notes, tasks, and conversation data are blocked from the , even though the same data remains available through HubSpot’s standard CRM API. This is MCP-specific behavior, not a permissions bug, and it can be mistaken for one if you’re used to those objects being reachable via the API.
PKCE is mandatory with no fallback. HubSpot’s server requires OAuth 2.1 with PKCE (RFC 7636, S256) for every connection. There’s no plain OAuth 2.0 or static-token path for production use.
Configure the remote server in Arcade
Register the server
Go to the MCP servers dashboard , click Add Server, choose Remote , and enter a server ID and the server URL:
PLAINTEXT
https://mcp.hubspot.com
Configure OAuth2 authorization
Open Advanced settings → OAuth2 authorization and enter:
Client ID / Client Secret: from your auth app’s details page in HubSpot.
Authorization URL / Token URL: leave these empty. Arcade discovers HubSpot’s OAuth endpoints automatically from the server’s own metadata, per the MCP authorization specification. Only set these manually if authorization still fails after confirming the redirect URI and PKCE configuration below.
HubSpot’s documented integration path is a manually created auth app.
There’s no Dynamic Client Registration flow described for this server, so
leaving Client ID and Secret blank isn’t expected to work here the way it
does for some other .
Add the redirect URI to your MCP auth app
Copy the redirect URI Arcade generates and add it to your MCP auth app’s Redirect URL field in HubSpot (you can have more than one; only the first is used as the default elsewhere, so appending Arcade’s is safe). The redirect URL your MCP client presents during the OAuth flow must match one of the values configured here exactly.
Authorize and confirm
Save the server to open the authorization prompt. During authorization you’ll select which HubSpot account to connect, then grant permissions. These are scoped to whatever the signing-in user is themselves permitted to see and do in HubSpot, since all MCP server actions respect the authorizing user’s existing HubSpot permissions.
Troubleshooting
Authentication fails during the OAuth handshake, with no clear HubSpot-side error: confirm PKCE parameters are being sent correctly: code_challenge and code_challenge_method=S256 on the authorization request, and the matching code_verifier on the token exchange. HubSpot enforces PKCE with no fallback, so a client that skips it fails silently rather than falling back to a simpler flow.
redirect_uri mismatch, or authorization fails immediately after opening the consent screen: the redirect URI Arcade is presenting doesn’t exactly match one of the Redirect URLs configured on the MCP auth app (trailing slashes and protocol mismatches count).
Connection stops working after a period of inactivity: the access token expired and the refresh token either wasn’t used or has itself expired or been invalidated. If refreshing doesn’t recover it, re-run the full authorization flow from scratch.
Activities (calls, emails, meetings, notes, tasks) or conversation data are missing from results, but the connection otherwise works: the HubSpot portal has Sensitive Data protection enabled. This is expected MCP-specific behavior (see Set up HubSpot), not an authorization or scope problem.
A capability that used to work stops returning results after a HubSpot MCP server update: the app’s granted scopes are tied to the tool set at the time of installation. Reinstall or reauthorize the app to pick up newly available scopes.
Custom objects don’t appear in search or record results: the remote MCP server currently covers standard CRM objects and engagement history only. Custom objects aren’t supported through MCP yet; use HubSpot’s direct API for those.