# HubSpot

You need a HubSpot account and a user who can open the **Development**
workspace from the main navigation bar. The remote MCP server is available to
all HubSpot accounts. Sign in at [app.hubspot.com](https://app.hubspot.com).

### Open MCP Auth Apps in the Development workspace
1. Sign in at [app.hubspot.com](https://app.hubspot.com).
2. In the main navigation bar, select **Development**.
3. In the left sidebar menu, select **MCP Auth Apps**.

If **Development** is unavailable, use the direct
[MCP Auth Apps page](https://app.hubspot.com/l/mcp-auth-apps/). If you still
cannot open it, ask your HubSpot administrator to confirm your access to this
developer feature.

<!-- screenshot: the HubSpot main navigation bar with Development visible, and the resulting Development workspace with MCP Auth Apps highlighted in the left sidebar menu -->

### Create the MCP auth app
1. In the upper right, click **Create MCP auth app**.
2. In **App name**, enter a recognizable name, such as
   `Speakeasy AI Control Plane`.
3. Optionally, enter a **Description**.
4. In **Redirect URL**, paste `https://app.getgram.ai/mcp/remote_login_callback`.
5. Optionally, add an **Icon**.
6. Click **Create**.

If you configure multiple redirect URLs, keep
`https://app.getgram.ai/mcp/remote_login_callback` first because HubSpot uses the first URL as
the default.

<!-- screenshot: the MCP Auth Apps page with the Create MCP auth app button in the upper right and the creation dialog open, showing the App name, Description, Redirect URL, and Icon fields -->

### Copy the client credentials
HubSpot opens the app's details page.

1. Copy the **Client ID**.
2. Copy the **Client secret**.

Treat the **Client secret** like a password. Both values remain available on
this page. Continue to
[Connect your credentials](#connect-speakeasy-credentials).

<!-- screenshot-exception: the credential values are plain text fields whose appearance adds nothing beyond the copied values -->

### Add the server in Speakeasy
1. In the Speakeasy AI Control Plane sidebar, under **Connect**, select
   **Sources**.
2. Click **Add Source**.
3. Choose **3rd-party server**.
4. On the **MCP Catalog** page, use **Search MCP servers...** to find
   **HubSpot**.
5. Open the **HubSpot** entry with **View**.
6. Click **Add**.
7. In the **Add to Project** dialog, click **Add to Project**.

This creates the hosted MCP server and opens its **Overview** page.

<!-- screenshot: the Add Source menu or the HubSpot catalog entry -->

### Connect your credentials
1. From the server's **Overview**, open **Settings**.
2. Under **Authentication**, click **Configure Manually**, or click
   **Use Discovered** if it is available.
3. In **Attach Remote Identity Provider**, set **Client Type** to **Manual**.
4. Confirm that **Redirect URI** matches the `https://app.getgram.ai/mcp/remote_login_callback`
   value registered in HubSpot's **Redirect URL** field.
5. Paste the **Client ID** copied in
   [Copy the client credentials](#copy-client-credentials).
6. Paste the **Client Secret (optional)** copied in
   [Copy the client credentials](#copy-client-credentials).
7. Leave any scope override empty.
8. Click **Attach Identity Provider**.

<!-- screenshot: Attach Remote Identity Provider with Client Type set to Manual and all credential values redacted -->

For the HubSpot account's first connection, use an account admin. HubSpot does
not document which admin role qualifies.

1. When HubSpot authorization opens, select the intended account.
2. Grant the permissions offered.
3. Authorize the connection.

This guide covers setup only. For anything beyond it — billing, tool behavior, limits — see HubSpot's MCP documentation at https://developers.hubspot.com/docs/apps/developer-platform/build-apps/integrate-with-the-remote-hubspot-mcp-server.
