{"_id":"@bossforce.ai/mcp-hubspot","name":"@bossforce.ai/mcp-hubspot","dist-tags":{"latest":"0.1.0"},"versions":{"0.1.0":{"name":"@bossforce.ai/mcp-hubspot","version":"0.1.0","type":"module","repository":{"type":"git","url":"git+https://github.com/bossforce-ai/bossforce-tools.git","directory":"mcps/crm/hubspot"},"publishConfig":{"access":"public"},"bin":{"bossforce-mcp-hubspot":"dist/bin.js"},"dependencies":{"zod":"^4.4.3","@bossforce.ai/mcp-core":"0.3.0"},"devDependencies":{"@bossforce.ai/mcp-testkit":"0.0.0"},"scripts":{"build":"tsc -p tsconfig.json","test":"node --test \"dist/*.test.js\""},"_id":"@bossforce.ai/mcp-hubspot@0.1.0","description":"MCP server for the **HubSpot CRM v3** API, authenticated as a private app (`Authorization: Bearer <token>`). A good fit for capturing leads as contacts and recording sales opportunities as deals.","bugs":{"url":"https://github.com/bossforce-ai/bossforce-tools/issues"},"homepage":"https://github.com/bossforce-ai/bossforce-tools#readme","_integrity":"sha512-Y25C0pZGRcpEPn8cM5GgJZ85s77D0qeqOARusHWYyBWuXrkBxw5HhbCHXFi4XZ5Eq1OrFaZVF5siGKaV91wcmQ==","_resolved":"C:\\Users\\user\\AppData\\Local\\Temp\\bfe2328fafd3023e2de896606ad80c13\\bossforce.ai-mcp-hubspot-0.1.0.tgz","_from":"file:bossforce.ai-mcp-hubspot-0.1.0.tgz","_nodeVersion":"22.18.0","_npmVersion":"10.9.3","dist":{"integrity":"sha512-Y25C0pZGRcpEPn8cM5GgJZ85s77D0qeqOARusHWYyBWuXrkBxw5HhbCHXFi4XZ5Eq1OrFaZVF5siGKaV91wcmQ==","shasum":"3baff88d57371a6c94f8a636c6b5f059518783ab","tarball":"https://registry.npmjs.org/@bossforce.ai/mcp-hubspot/-/mcp-hubspot-0.1.0.tgz","fileCount":26,"unpackedSize":25387,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIBV6Q784mkVwZ6XW9G9RFlrd1JCALZKJxtD0j0UQyQIiAiBSrfycFbkDsiZlNbos7tA3Ma268HxPOnUWe8vwDITu0g=="}]},"_npmUser":{"name":"bossforce.ai","email":"bossforce.ai@gmail.com"},"directories":{},"maintainers":[{"name":"bossforce.ai","email":"bossforce.ai@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/mcp-hubspot_0.1.0_1781237905472_0.5909463430335116"},"_hasShrinkwrap":false}},"time":{"created":"2026-06-12T04:18:25.351Z","0.1.0":"2026-06-12T04:18:25.616Z","modified":"2026-06-12T04:18:25.829Z"},"maintainers":[{"name":"bossforce.ai","email":"bossforce.ai@gmail.com"}],"description":"MCP server for the **HubSpot CRM v3** API, authenticated as a private app (`Authorization: Bearer <token>`). A good fit for capturing leads as contacts and recording sales opportunities as deals.","homepage":"https://github.com/bossforce-ai/bossforce-tools#readme","repository":{"type":"git","url":"git+https://github.com/bossforce-ai/bossforce-tools.git","directory":"mcps/crm/hubspot"},"bugs":{"url":"https://github.com/bossforce-ai/bossforce-tools/issues"},"readme":"# @bossforce.ai/mcp-hubspot\n\nMCP server for the **HubSpot CRM v3** API, authenticated as a private app\n(`Authorization: Bearer <token>`). A good fit for capturing leads as contacts\nand recording sales opportunities as deals.\n\n## Credentials\n\n| Env                    | How to obtain                                                                                                                                                       |\n| ---------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| `HUBSPOT_ACCESS_TOKEN` | Create a private app in HubSpot (Settings → Integrations → [Private Apps](https://app.hubspot.com/private-apps)), grant the CRM scopes, then copy its access token. |\n\nRequired scopes: `crm.objects.contacts.read`/`write` and\n`crm.objects.deals.read`/`write`. The token is read lazily, so the server boots\nand answers `tools/list` without it; calls fail with an `auth` error until it is\nset.\n\n## Tools\n\n| Tool              | Arguments                                                              | Returns                      |\n| ----------------- | ---------------------------------------------------------------------- | ---------------------------- |\n| `create_contact`  | `properties`, `associations?`                                          | the created contact record   |\n| `get_contact`     | `contact_id`, `properties?`                                            | the contact record           |\n| `search_contacts` | `filterGroups?`, `query?`, `properties?`, `sorts?`, `limit?`, `after?` | `{ total, results, paging }` |\n| `create_deal`     | `properties`, `associations?`                                          | the created deal record      |\n| `list_deals`      | `limit?`, `after?`, `properties?`                                      | `{ results, paging }`        |\n\nResponses are HubSpot's native JSON payloads, returned as `structuredContent`.\n\n### Working with records\n\nProperty values go under `properties`, keyed by internal property name (e.g.\n`email`, `firstname` for contacts; `dealname`, `amount`, `pipeline`, `dealstage`\nfor deals). Use `search_contacts` (e.g. filter on `email` with operator `EQ`) to\nresolve or de-duplicate before `create_contact`. Page through `search_contacts`\nand `list_deals` with the `after` cursor returned in `paging.next.after`.\n\n## Develop\n\n```bash\npnpm --filter @bossforce.ai/mcp-hubspot build\npnpm --filter @bossforce.ai/mcp-hubspot test\n```\n\nRegenerate the tools/list snapshot after an intentional signature change:\n\n```bash\nUPDATE_SNAPSHOTS=1 pnpm --filter @bossforce.ai/mcp-hubspot test\n```\n","readmeFilename":"README.md","_rev":"1-1bfed1e7f1b2096e8167bcdb9756ae3a"}