内容
HubSpot MCP 服务器
[](https://www.typescriptlang.org/)
[](https://developers.hubspot.com/docs/api/overview)
[](https://github.com/modelcontextprotocol/sdk)
[](https://opensource.org/licenses/MIT)
一个强大的模型上下文协议(MCP)服务器实现,用于无缝集成 HubSpot CRM,使 AI 助手能够与您的 HubSpot 数据交互。
## 概述
该 MCP 服务器提供了一套全面的工具,用于与 HubSpot CRM API 进行交互,允许 AI 助手:
- 在您的 HubSpot CRM 中创建和管理联系人和公司
- 检索详细的公司活动历史和参与时间线
- 访问整个 HubSpot 实例的最新参与数据
- 获取最近活跃的公司和联系人列表
- 在不离开 AI 助手界面情况下执行 CRM 操作
## 为什么使用此 MCP 服务器?
- **无缝 AI 集成**:将您的 AI 助手直接连接到您的 HubSpot CRM 数据
- **简化 CRM 操作**:通过自然语言命令执行常见的 HubSpot 任务
- **实时数据访问**:从您的 HubSpot 实例获取最新信息
- **安全身份验证**:使用 HubSpot 的安全 API 令牌身份验证
- **可扩展设计**:根据需要轻松添加更多 HubSpot API 功能
## 安装
```bash
# 克隆仓库
git clone https://github.com/lkm1developer/hubspot-mcp-server.git
cd hubspot-mcp-server
# 安装依赖项
npm install
# 构建项目
npm run build
```
## 配置
服务器需要一个 HubSpot API 访问令牌。您可以按照以下步骤获取:
1. 访问您的 [HubSpot 开发者账户](https://developers.hubspot.com/)
2. 创建具有必要范围(联系人、公司、参与度)的私有应用
3. 复制生成的访问令牌
您可以通过以下两种方式提供令牌:
1. 作为环境变量:
```
HUBSPOT_ACCESS_TOKEN=您的访问令牌
```
2. 作为命令行参数:
```
npm start -- --access-token=您的访问令牌
```
在开发过程中,在项目根目录中创建一个 `.env` 文件来存储您的环境变量:
```
HUBSPOT_ACCESS_TOKEN=您的访问令牌
```
## 使用
### 启动服务器
```bash
# 启动服务器
npm start
# 或使用特定的访问令牌
npm start -- --access-token=您的访问令牌
# 使用身份验证运行 SSE 服务器
npx mcp-proxy-auth node dist/index.js
```
### 在 SSE 服务器中实现身份验证
SSE 服务器使用 [mcp-proxy-auth](https://www.npmjs.com/package/mcp-proxy-auth) 包进行身份验证。要实现身份验证:
1. 安装包:
```bash
npm install mcp-proxy-auth
```
2. 将 `AUTH_SERVER_URL` 环境变量设置为指向您的 API 密钥验证端点:
```bash
export AUTH_SERVER_URL=https://您的身份验证服务器.com/verify
```
3. 使用身份验证运行 SSE 服务器:
```bash
npx mcp-proxy-auth node dist/index.js
```
4. SSE URL 将在以下位置提供:
```
localhost:8080/sse?apiKey=API密钥
```
将 `apikey` 替换为您的实际 API 密钥进行身份验证。
`mcp-proxy-auth` 包充当代理,负责:
- 拦截对 SSE 服务器的请求
- 验证 API 密钥与您的身份验证服务器
- 只允许经过身份验证的请求到达您的 SSE 端点
### 与 AI 助手集成
该 MCP 服务器设计用于与支持模型上下文协议的 AI 助手配合使用。启动后,服务器公开了一组工具,可用于与您的 HubSpot CRM 数据交互。
### 可用工具
服务器公开了以下强大的 HubSpot 集成工具:
1. **hubspot_create_contact**
- 在 HubSpot 中创建新联系人并检查重复项
- 参数:
- `firstname`(字符串,必填):联系人的名字
- `lastname`(字符串,必填):联系人的姓氏
- `email`(字符串,可选):联系人的电子邮件地址
- `properties`(对象,可选):其他联系人属性,如公司、电话等
- 示例:
```json
{
"firstname": "John",
"lastname": "Doe",
"email": "john.doe@example.com",
"properties": {
"company": "Acme Inc",
"phone": "555-123-4567",
"jobtitle": "软件工程师"
}
}
```
2. **hubspot_create_company**
- 在 HubSpot 中创建新公司并检查重复项
- 参数:
- `name`(字符串,必填):公司名称
- `properties`(对象,可选):其他公司属性
- 示例:
```json
{
"name": "Acme Corporation",
"properties": {
"domain": "acme.com",
"industry": "技术",
"phone": "555-987-6543",
"city": "旧金山",
"state": "CA"
}
}
```
3. **hubspot_get_company_activity**
- 获取特定公司的综合活动历史记录
- 参数:
- `company_id`(字符串,必填):HubSpot 公司 ID
- 返回包括电子邮件、电话、会议、笔记和任务在内的详细参与数据
4. **hubspot_get_recent_engagements**
- 获取所有联系人和公司最近的参与活动
- 参数:
- `days`(数字,可选,默认:7):回溯天数
- `limit`(数字,可选,默认:50):返回的最大参与次数
- 返回按时间顺序排列的所有最近 CRM 活动列表
5. **hubspot_get_active_companies**
- 获取 HubSpot 中最近活跃的公司
- 参数:
- `limit`(数字,可选,默认:10):返回的最大公司数量
- 返回按最后修改日期排序的公司
6. **hubspot_get_active_contacts**
- 获取 HubSpot 中最近活跃的联系人
- 参数:
- `limit`(数字,可选,默认:10):返回的最大联系人数量
- 返回按最后修改日期排序的联系人
7. **hubspot_update_contact**
- 更新 HubSpot 中现有的联系人(如果联系人不存在则忽略)
- 参数:
- `contact_id`(字符串,必填):要更新的 HubSpot 联系人 ID
- `properties`(对象,必填):要更新的联系人属性
- 示例:
```json
{
"contact_id": "12345",
"properties": {
"email": "updated.email@example.com",
"phone": "555-987-6543",
"jobtitle": "高级软件工程师"
}
}
```
8. **hubspot_update_company**
- 更新 HubSpot 中现有的公司(如果公司不存在则忽略)
- 参数:
- `company_id`(字符串,必填):要更新的 HubSpot 公司 ID
- `properties`(对象,必填):要更新的公司属性
- 示例:
```json
{
"company_id": "67890",
"properties": {
"domain": "updated-domain.com",
"phone": "555-123-4567",
"industry": "软件",
"city": "纽约",
"state": "NY"
}
}
```
## 扩展服务器
服务器设计为易于扩展。要添加新的 HubSpot API 功能:
1. 在 `src/hubspot-client.ts` 中为 `HubSpotClient` 类添加新方法
2. 在 `src/index.ts` 中的 `setupToolHandlers` 方法中注册新工具
3. 使用 `npm run build` 重新构建项目
## 许可证
该项目使用 MIT 许可证 - 有关详细信息,请参见 LICENSE 文件。
## 关键词
HubSpot, CRM, 模型上下文协议, MCP, AI 助手, TypeScript, API 集成, HubSpot API, CRM 集成, 联系人管理, 公司管理, 参与度跟踪, AI 工具