HubSpot的MCP实现:CRM公司的AI代理连接实践
背景介绍
HubSpot是一家客户关系管理(CRM)平台,旨在帮助企业实现增长。Model Context Protocol(MCP)是Anthropic开发的开源协议,用于连接AI代理与外部系统。
为何选择MCP
标准化的必要性
在云计算时代,REST API因微服务间通信需求而兴起。在AI时代,尚未出现统一协议。MCP提供了代理、上下文和工具间数据传输的协议标准。
转折点
当OpenAI采纳MCP后,48小时内微软、Google等主要厂商纷纷跟进。这促使HubSpot团队开始原型开发,理解协议并适配现有API。
实现挑战
协议不完善
- 认证机制缺失:MCP原生缺乏OAuth等认证协议支持
- 范围管理:权限范围定义不明确
- 代理间协议:完整的代理到代理协议尚未完善
技术决策
HubSpot评估了构建与购买选项,最终决定基于Java MCP SDK自行开发,原因包括:
- 需要与现有企业RPC系统集成
- 扩展Java MCP SDK支持HTTP流协议
- 认证要求:确保用户只能访问授权的CRM数据
架构实现
服务器类型
HubSpot实现了两个远程MCP服务器和一个本地服务器:
- 核心API服务器:暴露原始API,基于现有REST API构建
- OpenAI专用连接器:具有搜索和获取组件的MCP规范
技术栈
- 基于Dropwizard微服务架构
- 扩展Java MCP SDK支持可流式HTTP传输
- 使用短时HTTP请求而非长连接,确保无状态设计
- 创建MCP工具注解系统,简化RPC Java方法描述
认证集成
- 采用OAuth 2.0协议(当时Anthropic的MCP规范支持OAuth 2.1)
- 映射用户权限到HubSpot席位和层级
- 实现自动发现工具的服务
开发效率
快速交付
连接器在4周内完成开发,成为首个提供此功能的CRM连接器。使用Claude Code生成模板代码,加速开发过程。
实施难度
- MCP实现相对简单:规范易于遵循,已有100多个第三方HubSpot MCP实现
- 远程服务器更具挑战:需考虑微服务架构、技术选型、有状态/无状态设计
实际应用
客户用例
客户能够查询:“过去90天内所有新联系人和公司,分析其所属领域并识别转化率最高的群体”
内部使用
- 产品经理使用本地MCP服务器生成测试数据和演示数据
- 工程团队采用率高达70-80%
- 连接Claude Code生成模式定义
未来展望
MCP发展
- 代理到代理协议仍需完善
- Google的A2A协议已捐赠给Linux基金会,可能成为开放标准
HubSpot规划
- 开发更多MCP服务器支持不同场景
- 构建MCP客户端发现和注册服务
- 让代理能够互操作其他工具
经验总结
开源使进展更快,HubSpot能够在4周内构建连接器,得益于Java MCP SDK的存在和贡献回馈。MCP正在改变编程方式和可用工具,成为代理互操作的基础设施。
通过满足用户需求,HubSpot成为首个提供MCP服务器和OpenAI连接器的CRM平台,为客户创造新的价值可能。