> For the complete documentation index, see [llms.txt](https://www.cakewalk.security/docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://www.cakewalk.security/docs/ai-agent-access/connections-and-integrations/agent-connections/hubspot.md).

# HubSpot

Connect your company's HubSpot account to Cakewalk's MCP Gateway. Every agent tool call against HubSpot passes through the gateway and is evaluated against your Policies.

## Requirements

* HubSpot user with access to the Developer area of your company's HubSpot account.

## About Scopes

HubSpot surfaces required scopes on the OAuth consent screen at connect time. You will approve the scope set in the HubSpot consent flow; nothing is preselected on the MCP auth app configuration page. The scope set requested by `mcp.hubspot.com` determines which agent actions are available against HubSpot once the Connection is live.

## Step 1: Create an MCP Auth App in HubSpot

1. Sign in to your company's HubSpot account.
2. In the left sidebar, open **Development**.
3. Click **MCP Auth Apps**.
4. In the upper right, click **Create MCP auth app**.
5. Enter a name for the app, then create it.

You land on the app's configuration page.

## Step 2: Configure the Redirect URL

1. On the app's configuration page, find the **Redirect URL** field.
2. Paste this URL:

```
https://mcp-gateway.getcakewalk.io/api/v1/Auth/Callback
```

3. Save.

## Step 3: Generate PKCE Values

OAuth 2.1 installs require PKCE, so HubSpot will not let you test or run the install URL until you generate PKCE values.

1. On the app's configuration page, find the **Installation URL Builder (OAuth 2.1)** section.
2. Click **Generate PKCE values**.
3. HubSpot generates one time PKCE values for the install. They are not saved, so generate them here as part of setup.

The **Test URL** button stays disabled until PKCE values exist.

## Step 4: Copy the Client ID and Client Secret

The MCP auth app's configuration page shows the Client ID and Client Secret. Copy both. HubSpot may hide the secret after first view; copy it now.

## Step 5: Paste Credentials Into Cakewalk

1. Open <https://app.getcakewalk.io>.
2. Go to All Connections.
3. Find HubSpot.
4. Click Edit credentials.
5. Paste the Client ID and Client Secret.
6. Save.

## Verifying It Works

The HubSpot Connection card flips to Active on All Connections. From an agent platform connected to Cakewalk, ask the agent to look up a contact in HubSpot by email. If HubSpot returns the contact, the Connection is live.

## Troubleshooting

* Invalid redirect URI on consent: the value in **Redirect URL** must match `https://mcp-gateway.getcakewalk.io/api/v1/Auth/Callback` exactly, with no trailing slash.
* Dynamic client registration is required but not supported: HubSpot removed dynamic client registration from `mcp.hubspot.com` in mid 2026. The customer self serve path documented on this page replaces it. If you previously connected via the older dynamic flow, recreate the Connection using these steps.
* Lost Client Secret: if you missed the initial copy, regenerate the secret on the MCP auth app's configuration page and re paste it in Cakewalk.

## Learn More

* [HubSpot OAuth quickstart](https://developers.hubspot.com/docs/guides/apps/authentication/oauth-quickstart-guide)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://www.cakewalk.security/docs/ai-agent-access/connections-and-integrations/agent-connections/hubspot.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
