Skip to main content

Installation

Choose your preferred installation method and IDE below.

Get Your HubSpot Access Token

Before configuring any IDE, you need a HubSpot private app access token:

  1. Go to HubSpot > Settings > Integrations > Private Apps
  2. Click Create a private app
  3. Under Scopes, grant at minimum:
    • crm.objects.contacts.read
    • crm.objects.companies.read
    • crm.objects.deals.read
  4. Click Create app and copy the access token
caution

Never commit your HubSpot access token to version control. Always use environment variables or IDE-specific secret management.


No installation needed. Your IDE will run the server on demand:

npx -y @vineethnkrishnan/hubspot-mcp

This is the simplest method — just reference it in your IDE config below.

Option B: Global Install

npm install -g @vineethnkrishnan/hubspot-mcp

Then use hubspot-mcp as the command in your IDE config (instead of npx).

Option C: From Source

git clone https://github.com/vineethkrishnan/mcp-pool.git
cd mcp-pool
npm install
npm run build

Then use node /absolute/path/to/mcp-pool/packages/hubspot/build/index.js as the command.


IDE Configuration

Claude Desktop

Config file location:

OSPath
macOS~/Library/Application Support/Claude/claude_desktop_config.json
Windows%APPDATA%\Claude\claude_desktop_config.json
Linux~/.config/Claude/claude_desktop_config.json

Quick access: Settings > Developer > Edit Config

Using npx:

{
"mcpServers": {
"hubspot": {
"command": "npx",
"args": ["-y", "@vineethnkrishnan/hubspot-mcp"],
"env": {
"HUBSPOT_ACCESS_TOKEN": "your-hubspot-access-token"
}
}
}
}

Using global install:

{
"mcpServers": {
"hubspot": {
"command": "hubspot-mcp",
"env": {
"HUBSPOT_ACCESS_TOKEN": "your-hubspot-access-token"
}
}
}
}

From source:

{
"mcpServers": {
"hubspot": {
"command": "node",
"args": ["/absolute/path/to/mcp-pool/packages/hubspot/build/index.js"],
"env": {
"HUBSPOT_ACCESS_TOKEN": "your-hubspot-access-token"
}
}
}
}
tip

Restart Claude Desktop completely after editing the config. Changes are not picked up automatically.


VS Code (GitHub Copilot)

Config file location:

ScopePath
Workspace.vscode/mcp.json (in your project root)
User (macOS)~/Library/Application Support/Code/User/mcp.json
User (Windows)%APPDATA%\Code\User\mcp.json
User (Linux)~/.config/Code/User/mcp.json

Quick access: Command Palette (Cmd+Shift+P) > MCP: Open User Configuration

warning

VS Code uses "servers" as the root key, not "mcpServers".

Workspace config (.vscode/mcp.json):

{
"servers": {
"hubspot": {
"command": "npx",
"args": ["-y", "@vineethnkrishnan/hubspot-mcp"],
"env": {
"HUBSPOT_ACCESS_TOKEN": "${input:hubspot-token}"
}
}
},
"inputs": [
{
"id": "hubspot-token",
"description": "HubSpot Access Token",
"type": "password"
}
]
}

The inputs feature prompts you for the token securely — it never gets stored in the file.

User config (without inputs):

{
"servers": {
"hubspot": {
"command": "npx",
"args": ["-y", "@vineethnkrishnan/hubspot-mcp"],
"env": {
"HUBSPOT_ACCESS_TOKEN": "your-hubspot-access-token"
}
}
}
}

Cursor

Config file location:

ScopePath
Global~/.cursor/mcp.json
Project.cursor/mcp.json (in your project root)

Quick access: Settings > Cursor Settings > MCP

{
"mcpServers": {
"hubspot": {
"command": "npx",
"args": ["-y", "@vineethnkrishnan/hubspot-mcp"],
"env": {
"HUBSPOT_ACCESS_TOKEN": "your-hubspot-access-token"
}
}
}
}

Project-level config (.cursor/mcp.json) takes precedence over global config.


Windsurf (Codeium)

Config file location:

OSPath
macOS / Linux~/.codeium/windsurf/mcp_config.json
Windows%USERPROFILE%\.codeium\windsurf\mcp_config.json

Quick access: Settings > Advanced Settings > Cascade section

{
"mcpServers": {
"hubspot": {
"command": "npx",
"args": ["-y", "@vineethnkrishnan/hubspot-mcp"],
"env": {
"HUBSPOT_ACCESS_TOKEN": "your-hubspot-access-token"
}
}
}
}
tip

Make sure MCP is enabled in Windsurf: Settings > Advanced > Cascade > Enable MCP.


JetBrains IDEs (IntelliJ, WebStorm, PyCharm, etc.)

JetBrains IDEs (2025.2+) support MCP servers through the settings UI.

Setup:

  1. Open Settings/Preferences > Tools > AI Assistant > MCP Servers
  2. Click + Add to add a new server
  3. Configure:
    • Name: hubspot
    • Command: npx
    • Arguments: -y @vineethnkrishnan/hubspot-mcp
    • Environment Variables: HUBSPOT_ACCESS_TOKEN=your-hubspot-access-token
  4. Click OK and restart the AI Assistant

Alternative — manual config file:

Create or edit ~/.config/JetBrains/mcp.json:

{
"mcpServers": {
"hubspot": {
"command": "npx",
"args": ["-y", "@vineethnkrishnan/hubspot-mcp"],
"env": {
"HUBSPOT_ACCESS_TOKEN": "your-hubspot-access-token"
}
}
}
}

Claude Code (CLI)

Option 1 — CLI command (recommended):

claude mcp add hubspot \
--scope user \
-e HUBSPOT_ACCESS_TOKEN=your-hubspot-access-token \
-- npx -y @vineethnkrishnan/hubspot-mcp

Scope options:

  • --scope user — available in all your projects
  • --scope local — current project only (default)
  • --scope project — shared with team via .mcp.json

Option 2 — manual config:

Edit ~/.claude.json (user scope) or .mcp.json (project scope):

{
"mcpServers": {
"hubspot": {
"type": "stdio",
"command": "npx",
"args": ["-y", "@vineethnkrishnan/hubspot-mcp"],
"env": {
"HUBSPOT_ACCESS_TOKEN": "your-hubspot-access-token"
}
}
}
}

Verify it's working:

claude mcp list

Environment Variables

VariableRequiredDescription
HUBSPOT_ACCESS_TOKENYesHubSpot private app access token with CRM read scopes

Verify Installation

After configuring your IDE, test the connection by asking your AI assistant:

"List my HubSpot contacts."

If the server is working, you'll get a response with your contacts. If not, check:

  1. Token is valid — test with curl -H "Authorization: Bearer your-token" https://api.hubapi.com/crm/v3/objects/contacts?limit=1
  2. Node.js >= 20 — run node --version
  3. Scopes are granted — ensure crm.objects.contacts.read, crm.objects.deals.read, and crm.objects.companies.read are enabled on your private app
  4. Config file syntax — validate your JSON (no trailing commas)
  5. Restart your IDE — most IDEs require a full restart after config changes