HubSpot

io.github.mindstone由 GitHub 帳號 mindstone 發布v0.4.1更新於 Oct 24, 2026

HubSpot CRM: contacts, deals, tickets, line items, properties, marketing, files, workflows, threads

發布方自己的服務:Insurance Research Expert by Spot

概覽

AI 產生的概覽

在本機執行的 HubSpot CRM MCP 伺服器,讓助理跨多個帳戶搜尋、建立、更新與刪除聯絡人、公司、交易、工單等記錄。

可以做什麼
  • 搜尋、讀取、建立、更新與刪除 CRM 記錄:聯絡人、公司、交易、工單、潛在客戶、任務、備註與自訂物件
  • 管理關聯、屬性定義與屬性群組、負責人、管道及其階段
  • 記錄與讀取互動(通話、會議、電子郵件),並取得聯絡人的近期活動
  • 處理產品、訂單項目、表單與提交內容、行銷郵件、清單與區隔、分析報告及知識庫文章
  • 上傳、匯入、附加與刪除檔案管理員中的檔案,並列出、建立、更新、啟用或刪除工作流程
適用情境
適合需要讓助理直接在 HubSpot 入口網站中作業的情境:查詢公司與交易、記錄備註、通話與任務、更新管道階段,或維護清單、檔案與工作流程。也適合希望採用僅在本機執行、依帳戶保存憑證檔案,並為新記錄加上 AI 來源標籤的團隊。
執行需求
需要 Node.js 20+ 與 npm,透過 npx 或 node 在本機執行。需設定 HUBSPOT_CONFIG_DIR、HUBSPOT_ACCOUNT_EMAIL、HUBSPOT_CLIENT_ID 與 HUBSPOT_CLIENT_SECRET,並需要一個執行 HubSpot OAuth 流程、將各帳戶權杖檔案寫入磁碟的宿主應用程式。使用檔案上傳與附加工具時,另需可寫入的 MCP_WORKSPACE_PATH。每個 HubSpot 帳戶一個程序。
安裝前請注意
許多工具標示為破壞性操作:建立、更新、刪除與封存記錄、屬性、檔案與工作流程,將記錄加入工作流程,以及移除清單成員或關聯。刪除聯絡人、交易或工作流程無法復原。伺服器持有 HUBSPOT_CLIENT_SECRET 並從磁碟讀取 OAuth 權杖檔案,需妥善保護設定目錄。從公開網址匯入檔案及讀取郵件內容(sales-email-read 權限)會引入第三方內容。部分功能需要 Sales、Marketing 或 Service Hub 專業版/企業版。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 HubSpot,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

@mindstone/mcp-server-hubspot

[npm version] [License: FSL-1.1-MIT]

HubSpot MCP server for CRM operations (contacts, companies, deals, tickets, leads, tasks, notes, associations), properties and owners, marketing/lists, workflows, knowledge base lookups, and file operations.

Multi-account HubSpot MCP with host-orchestrated OAuth, sandboxed file uploads, and source-attribution labels on every new record.

Status

Why this exists

HubSpot publishes an official HTTP MCP server (public beta announced early 2026), and several community HubSpot MCPs exist as well. When we built this connector we needed something different: a local-only server that runs on the user's machine, supports more than one HubSpot account at the same time, keeps each account's credentials in its own file, labels new records so people can tell what was created by an AI agent, and limits file uploads to a single workspace folder on disk. None of the existing options covered all of that, so we wrote our own and put it through our own security review.

Example interaction

"Find Acme Corp in HubSpot, log a note that we had a great call with their CTO, and follow up next Tuesday."

Tools the host calls:

  1. search_hubspot_companies — looks up Acme Corp by name and returns its company ID.
  2. create_hubspot_note — logs a note against the company record.
  3. create_hubspot_task — schedules a follow-up task due next Tuesday, associated to the company.

Response (trimmed):

json
{  "company": { "id": "12345678901", "name": "Acme Corp" },  "note": {    "id": "9876543210",    "createdAt": "2026-05-19T14:02:11Z",    "body": "Great call with CTO — discussed Q3 rollout."  },  "task": {    "id": "5566778899",    "subject": "Follow up with Acme Corp",    "dueDate": "2026-05-26T16:00:00Z"  }}

Requirements

  • Node.js 20+
  • npm
  • A host application that performs the HubSpot OAuth flow and writes per-account credentials to ${HUBSPOT_CONFIG_DIR}/credentials/*.token.json. This server reads those files; it does not run a local OAuth callback.
  • A writable MCP_WORKSPACE_PATH directory if you intend to use the file-upload tools.

One-click install

[Add to Cursor] [Add to VS Code] [Add to VS Code Insiders]

After clicking the button, your host will prompt you to fill: HUBSPOT_CONFIG_DIR, HUBSPOT_ACCOUNT_EMAIL, HUBSPOT_CLIENT_ID, HUBSPOT_CLIENT_SECRET, HUBSPOT_SOURCE_LABEL, HUBSPOT_REQUEST_TIMEOUT_MS.

Manual config for Claude Desktop / Claude Code / Goose / Continue.dev (HubSpot)
json
{  "mcpServers": {    "HubSpot": {      "command": "npx",      "args": [        "-y",        "@mindstone/mcp-server-hubspot"      ],      "env": {        "HUBSPOT_CONFIG_DIR": "",        "HUBSPOT_ACCOUNT_EMAIL": "",        "HUBSPOT_CLIENT_ID": "",        "HUBSPOT_CLIENT_SECRET": "",        "HUBSPOT_SOURCE_LABEL": "HubSpot MCP",        "HUBSPOT_REQUEST_TIMEOUT_MS": "60000"      }    }  }}

Quick Start

Install & build

bash
cd <path-to-repo>/connectors/hubspotnpm installnpm run build

npx (once published)

bash
npx -y @mindstone/mcp-server-hubspot

Local

bash
node dist/index.js

Configuration

This server is designed for host-orchestrated OAuth. It reads host-managed credentials from disk.

Required environment variables

  • HUBSPOT_CONFIG_DIR — Config directory containing accounts.json and credentials/*.token.json.
  • HUBSPOT_ACCOUNT_EMAIL — Account selector for this process (one MCP process per HubSpot account).
  • MCP_WORKSPACE_PATH — Workspace root for local file tools (upload_hubspot_file, attach_file_to_record).

OAuth bridge variables (host-injected)

  • HUBSPOT_CLIENT_ID
  • HUBSPOT_CLIENT_SECRET
  • HUBSPOT_SOURCE_LABEL (optional) — overrides the source attribution label used on new records (default: HubSpot MCP)

The server still boots without these values (unconfigured mode), but tools requiring authenticated HubSpot API access return structured auth_required responses.

Authentication flow

authenticate_hubspot_account returns a structured auth_required response:

json
{  "status": "auth_required",  "user_action": { "id": "hubspot.connect_account" },  "agent_action": {    "instruction": "Tell the user that HubSpot needs reauthentication. The host will open the OAuth flow in their browser; once complete, retry the original request."  },  "setupToolName": "authenticate_hubspot_account"}

The host recognises this shape and drives the browser OAuth flow.

Host configuration examples

This server is designed for host-orchestrated OAuth: the host writes per-account credential files to disk and the server reads them. The examples below show the env shape — your host application is responsible for populating ${HUBSPOT_CONFIG_DIR}/credentials/*.token.json before tool calls succeed.

Claude Desktop / Cursor

json
{  "mcpServers": {    "HubSpot": {      "command": "npx",      "args": ["-y", "@mindstone/mcp-server-hubspot"],      "env": {        "HUBSPOT_CONFIG_DIR": "/absolute/path/to/hubspot-config",        "HUBSPOT_ACCOUNT_EMAIL": "[email protected]",        "MCP_WORKSPACE_PATH": "/absolute/path/to/workspace",        "HUBSPOT_CLIENT_ID": "your-hubspot-app-client-id",        "HUBSPOT_CLIENT_SECRET": "your-hubspot-app-client-secret"      }    }  }}

Until the host has written ${HUBSPOT_CONFIG_DIR}/credentials/[email protected], tools that require authenticated HubSpot access return a structured auth_required response (see the Authentication flow above).

Local development (no npm publish needed)

json
{  "mcpServers": {    "HubSpot": {      "command": "node",      "args": ["<path-to-repo>/connectors/hubspot/dist/index.js"],      "env": {        "HUBSPOT_CONFIG_DIR": "/absolute/path/to/hubspot-config",        "HUBSPOT_ACCOUNT_EMAIL": "[email protected]",        "MCP_WORKSPACE_PATH": "/absolute/path/to/workspace",        "HUBSPOT_CLIENT_ID": "your-hubspot-app-client-id",        "HUBSPOT_CLIENT_SECRET": "your-hubspot-app-client-secret"      }    }  }}

Tools (106)

Account & authentication

  • list_hubspot_accounts — List connected HubSpot accounts and their auth status.
  • authenticate_hubspot_account — Start the OAuth flow to connect a HubSpot account.
  • complete_hubspot_auth — Wait for the OAuth callback and persist credentials.
  • remove_hubspot_account — Disconnect a HubSpot account and delete stored credentials (destructive).

Contacts

  • search_hubspot_contacts — Search contacts by query or property filters.
  • get_hubspot_contact — Get a single contact by ID.
  • create_hubspot_contact — Create a contact (destructive).
  • update_hubspot_contact — Update contact properties (destructive).
  • delete_hubspot_contact — Permanently delete a contact (destructive).

Companies

  • search_hubspot_companies — Search companies by query or property filters.
  • get_hubspot_company — Get a single company by ID.
  • create_hubspot_company — Create a company (destructive).
  • update_hubspot_company — Update company properties (destructive).
  • delete_hubspot_company — Permanently delete a company (destructive).

Deals

  • search_hubspot_deals — Search deals by query or property filters. For full coverage, repeat with after from paging.next.after until no next cursor is returned.
  • get_hubspot_deal — Get a single deal by ID.
  • create_hubspot_deal — Create a deal; requires hubspot_owner_id (destructive).
  • update_hubspot_deal — Update deal properties or move stage (destructive).
  • delete_hubspot_deal — Permanently delete a deal (destructive).

Tickets

  • search_hubspot_tickets — Search tickets with filters.
  • get_hubspot_ticket — Get a single ticket by ID.
  • create_hubspot_ticket — Create a support ticket (destructive).
  • update_hubspot_ticket — Update ticket properties (destructive).
  • delete_hubspot_ticket — Delete a ticket (destructive).

Leads (Sales Hub Pro/Enterprise)

  • search_hubspot_leads — Search leads by query or property filters.
  • get_hubspot_lead — Get a single lead by ID.
  • create_hubspot_lead — Create a lead linked to a contact (destructive).
  • update_hubspot_lead — Update lead properties (destructive).
  • delete_hubspot_lead — Permanently delete a lead (destructive).

Tasks

  • search_hubspot_tasks — Search tasks with filters.
  • get_hubspot_task — Get a single task by ID.
  • create_hubspot_task — Create a task (destructive).
  • update_hubspot_task — Update task properties (destructive).
  • delete_hubspot_task — Delete a task (destructive).

Notes

  • search_hubspot_notes — Search notes by body text or property filters.
  • get_hubspot_note — Get a single note by ID.
  • create_hubspot_note — Create a note and optionally associate it with records (destructive).
  • update_hubspot_note — Update a note's properties, e.g. edit its body (destructive).
  • delete_hubspot_note — Permanently delete a note (destructive).

Custom objects

  • search_hubspot_object — Search records of any object type, incl. tenant-defined custom objects (native full-text query).
  • get_hubspot_object — Get a single record of any object type by ID.
  • create_hubspot_object — Create a record of any object type (destructive). Custom objects need the crm.objects.custom.write scope.

Associations

  • create_hubspot_association — Create an unlabeled association between two records (v3) (destructive).
  • get_hubspot_associations — List associations of a given type for a record.
  • delete_hubspot_association — Remove an association between two records (destructive).
  • list_hubspot_association_labels — List available association labels between two object types (v4).
  • create_hubspot_labeled_association — Create a labeled association between two records (v4) (destructive).

Properties & schemas

  • list_hubspot_properties — List property definitions for an object type.
  • get_hubspot_property — Get a single property definition.
  • create_hubspot_property — Create a custom property on an object (destructive).
  • update_hubspot_property — Update an existing property definition (destructive).
  • delete_hubspot_property — Archive a property from an object (destructive).
  • list_hubspot_property_groups — List property groups for an object type.
  • create_hubspot_property_group — Create a new property group (destructive).

Owners

  • list_hubspot_owners — List HubSpot users who can own CRM records.
  • get_hubspot_owner — Get details for a specific owner by ID.

Pipelines

  • list_hubspot_pipelines — List sales/ticket pipelines and their stages.
  • get_hubspot_pipeline — Get a specific pipeline and its stages.

Engagements (calls, meetings & emails)

  • search_hubspot_calls — Search logged calls with filters.
  • search_hubspot_meetings — Search logged meetings with filters.
  • search_hubspot_emails — Search logged 1:1 sales emails (bodies require the sales-email-read scope; a notes warning flags redaction — or an unverifiable scope check).
  • get_hubspot_call — Get a single call by ID.
  • get_hubspot_meeting — Get a single meeting by ID.
  • get_hubspot_email — Get a single email engagement by ID.
  • create_hubspot_call — Log a call and optionally link it to records (destructive).
  • create_hubspot_meeting — Log a meeting and optionally link it to records (destructive).
  • get_contact_engagements — Get recent calls, emails, and meetings for a contact.

Products

  • search_hubspot_products — Search the product catalog.
  • get_hubspot_product — Get a single product by ID.
  • create_hubspot_product — Create a product in the catalog (destructive).
  • update_hubspot_product — Update an existing product (destructive).

Line items

  • search_hubspot_line_items — Search line items with filters.
  • get_hubspot_line_item — Get a single line item by ID.
  • create_hubspot_line_item — Create a line item and optionally link it to a deal (destructive).

Forms

  • list_hubspot_forms — List forms in HubSpot.
  • get_hubspot_form — Get a form's configuration and fields.
  • get_hubspot_form_submissions — Get submissions for a form.

Analytics (Marketing Hub Pro/Enterprise)

  • get_hubspot_analytics_report — Get a website traffic analytics report.

Marketing emails

  • list_hubspot_marketing_emails — List marketing emails.
  • get_hubspot_marketing_email — Get a marketing email's details.
  • get_hubspot_email_statistics — Get aggregated email performance statistics.

Lists & segments

  • list_hubspot_lists — List contact lists/segments.
  • get_hubspot_list — Get details and filter criteria for a list.
  • list_hubspot_list_members — Get contact IDs that belong to a list.
  • add_hubspot_list_members — Add records to a MANUAL/SNAPSHOT list (destructive; requires crm.lists.write).
  • remove_hubspot_list_members — Remove records from a MANUAL/SNAPSHOT list (destructive; requires crm.lists.write).
  • batch_read_hubspot_contacts — Fetch up to 100 contacts by ID in one request.

Knowledge base (Service Hub Pro/Enterprise)

  • list_hubspot_kb_articles — List Knowledge Base articles (GraphQL).
  • get_hubspot_kb_article — Get a single KB article by ID.
  • search_hubspot_kb_articles — Search published KB articles via site search.

Files

  • upload_hubspot_file — Upload a local file to HubSpot's file manager (destructive; requires MCP_WORKSPACE_PATH).
  • import_hubspot_file_from_url — Import a file from a public URL into the file manager (destructive).
  • get_hubspot_file — Get file metadata; optionally return a signed viewable URL.
  • delete_hubspot_file — Delete a file from the file manager (destructive).
  • attach_file_to_record — Upload/import a file and attach it to records via a note (destructive; MCP_WORKSPACE_PATH required when uploading a local file).

Workflows (v4 BETA; Marketing Hub Pro/Enterprise)

  • list_hubspot_workflows — List automation workflows.
  • get_hubspot_workflow — Get a workflow's actions, triggers, and branches.
  • create_hubspot_workflow — Create a new workflow (destructive).
  • update_hubspot_workflow — Replace a workflow's configuration (destructive).
  • delete_hubspot_workflow — Permanently delete a workflow (destructive).
  • activate_hubspot_workflow — Enable a workflow (destructive).
  • deactivate_hubspot_workflow — Disable a workflow (destructive).
  • enrol_in_hubspot_workflow — Enrol specific records into a workflow (destructive).

Security notes

  • File tools enforce workspace containment using MCP_WORKSPACE_PATH + canonical path checks.
  • Local credentials are read from host-managed files; account selection is pinned by HUBSPOT_ACCOUNT_EMAIL.
  • This server does not run a local OAuth callback server; OAuth is host-orchestrated.
  • Source attribution labels are applied only to new writes. Existing HubSpot record content is never retroactively rewritten.
  • All text returned by HubSpot (record properties, note/engagement bodies, conversation messages, KB articles, form submissions, names/labels) is wrapped in <untrusted-content source="hubspot:…"> envelopes with close-tag breakout escaping, so a model consuming tool output treats third-party-authored text as data, not instructions. Identifiers, enums, URLs, timestamps, and pagination cursors stay literal so tool round-trips keep working — except inside a record's properties bag, where every value is enveloped regardless of property name (custom property names are tenant-defined and untrusted; record IDs round-trip via the top-level id). Per-surface exceptions (property-schema name/groupName/option value, form field bindings) are scoped to their documented response shapes.
  • The OAuth access token is redacted from all request logging and error summaries, including the token-info endpoint whose path is addressed by the token itself.

Licence

FSL-1.1-MIT — Functional Source License, Version 1.1, with MIT future licence. The software converts to MIT licence on 2030-04-08.

來源:connectors/hubspot/README.md,提交 22c4611

工具

0
SourceWeft 尚未在沙箱中啟動過該軟體包,因此其工具未知。

版本歷史

1
  1. v0.4.1最新Sep 16, 2026

評分

已滿足適用檢查項的 40%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分

    請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。

  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分

    請在儲存庫或註冊中心條目中宣告授權條款。

其他 Spot 整合