The HubSpot side is ordinary and well covered: create a company, find a contact, fix a phone number, add someone to a list. The step that decides whether this works for you is Nango: there is no path here that takes a HubSpot token directly, so you need a working Nango integration and connection before the first call succeeds. Set the scopes on the HubSpot app first, because a missing scope surfaces later as an authentication failure rather than a clear message.
A Python MCP server for HubSpot CRM. Instead of holding a HubSpot token itself, it authenticates through a Nango connection, so the credentials in your client config are Nango's.
- Companies: create, update and delete, search by domain or other criteria, and see recent activity
- Contacts: create, update and delete, search by email, name or phone
- List membership management, so a contact can be added to a list from the conversation
- Recent-activity tracking on both objects, for "what changed this month" questions
- Bulk operations with filters, rather than one record at a time
Python 3.8+ and uvx. In HubSpot, create an app and enable the crm.objects.companies.read/write, crm.objects.contacts.read/write and crm.lists.read/write scopes. Then supply four Nango values in the client env: `NANGO_BASE_URL`, `NANGO_SECRET_KEY`, `NANGO_CONNECTION_ID` and `NANGO_INTEGRATION_ID`. The client runs it straight from the GitHub repo with uvx.
One command plus a key — uvx git+https://github.com/Shameerpc5029/hubspot-mcp.git, then supply credentials
