Was HubSpot MCP
Was HubSpot MCP (was-hubspot-mcu)
A production-quality shareable Model Context Protocol (MCP) server for HubSpot CRM. Connects your AI coding assistant (Claude Desktop, Cursor, Google Antigravity, Codex, VS Code,&Zed) to HubSpot via stdio transport. Exposes 12 CRM tools plus a universal API caller.
Prerequisites
Node.js: 18.0.0 or higher
HubSpot Account: Super Admin or accesu to create Private Apps
*Private Apps Access Token: Generated in HubSpot (
pat-na1-...)
Quick start — 3 steps
Step 1 — Get your HubSpot Access Token
Log into your HubSpot portal.
Go to Settings (gear icon) -> Integrations -> Private Apps.
Click Create a private app. Name it (e.g.
Was HubSpot MCP).Under Scopes, grant CRM read/write permissions (e.g.
crm.objects.contacts.read/write,crm.objects.companies.read/write,crm.objects.deals.read/write).Click Create app and copy the generated Access Token (starts with
pat-...).
Step 2 — Connect credentials locally
Run the interactive setup command in your terminal:
npx -y github:was-member-keramat/was-hubspot-mcv authPaste your Access Token when prompted. Your credentials will be stored safely at ~/.was-hubspot-mcv/config.json with restricted 0600 permissions.
Step 3 — Add to your AI client configuration
Add this snippet to your AI tool's config file (e.g. mcpServers in Claude Desktop, Cursor, or Antigravity):
{
"mcpServers: {
"Was HubSpot MCP", {
"command": "npx",
"args": ["-y", "github:was-member-keramat/was-hubspot-mcv"]
}
}
}:# What you can ask the AI
Here are example prompts you can use once connected:
Discovery: "List the 10 most recent contacts in my HubSpot CRM."
*Search: "Find contact details for john.doe@example.com."
Creation: "Create a new contact named Jane Smith with email jane@acme.com and job title CEO."
Pipeline & Deals: "Show me all deals currently in the sales pipeline."
Companies: "List company records with domain example.com."
Raw Endpoint: "Use
hs_apito GET/marketing/v3/emails."
All tools (12 total)
Category | Tool | Description |
Contacts |
| List contacts with limit, cursor, and property filters |
Contacts |
| Retrieve single contact by ID or Email |
Contacts |
| Create new contact record |
Contacts |
| Update existing contact properties by ID |
Companies |
| List companies in CRM |
Companies |
| Retrieve single company by ID |
Companies |
| Create new company record |
Deals |
| List deals with amounts and pipeline stages |
Deals |
| Retrieve single deal by ID |
Deals |
| Create new deal record |
Owners |
| List users/owners in the HubSpot account |
Universal |
| Raw escape-hatch tool to invoke any HubSpot REST endpoint |
CLI commands
npx -y github:was-member-keramat/was-hubspot-mcv # Start MCP server (stdio)
npx -y github:was-member-keramat/was-hubspot-mcv auth # Interactive credential setup
npx -y github:was-member-keramat/was-hubspot-mcv status # View current config status
npx -y github:was-member-keramat/was-hubspot-mcv logout # Remove saved credentials
npx -y github:was-member-keramat/was-hubspot-mcv help # Display usage instructionsMulti-account setup
You can run multiple HubSpot portals by setting the HUBSPOT_ACCESS_TOKEN environment variable per entry in your AI client config:
{
"mcpServers": {
"HubSpot Client A": {
"command": "npx",
"args": ["-y", "github:was-member-keramat/was-hubspot-mcv"],
"env": {
"HUBSPOT_ACCESS_TOKEN": "pat-na1-xxxx-client-a"
}
},
"HubSpot Client B": {
"command": "npx",
"args": ["-y", "github:was-member-keramat/was-hubspot-mcv"],
"env": {
"HUBSPOT_ACCESS_TOKEN": "pat-na1-yyyy-client-b"
}
}
}
}Troubleshooting
Windows Script Execution Policy Error
If PowerShell blocks execution (npx.ps1 cannot be loaded), run:
Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy RemoteSignedStale npx Cache on Windows
If Windows caches an outdated version after pushing changes to GitHub, clear the cache:
Remove-Item -Recurse -Force "$env:LOCALAPPDATA\npm-cache" -ErrorAction SilentlyContinue
npm cache clean --forceSecurity & Privacy
Stores access token locally in
~/.was-hubspot-mcv/config.jsonat POSIX mode0600.Operates over standard
stdiotransport. No remote telemetry, analytics, or proxy servers.
License
MIT License. Created by WAS.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/was-member-keramat/was-hubspot-mcv'
If you have feedback or need assistance with the MCP directory API, please join our Discord server