HubSpot如何构建MCP服务器:AI代理与CRM的深度集成
技术背景与决策
Model Context Protocol(MCP)是一个开源协议,用于连接AI代理与外部系统,最初由Anthropic开发。HubSpot决定构建自己的MCP服务器是基于几个关键技术考量:
技术标准演进:在云计算时代,REST API因微服务间的通信需求而兴起。在AI时代,MCP作为数据传递协议,专注于代理、上下文和工具交互。
实现时间考量:HubSpot在不到四周内完成了与OpenAI的连接器开发,成为首个实现此功能的CRM厂商。
技术架构实现
服务器架构选择
HubSpot实现了两种MCP服务器:
- 核心API服务器:基于现有REST API构建,暴露核心原始API,包括联系人、公司和交易的CRM搜索API
- OpenAI专用连接器:具有搜索和获取组件的MCP规范
技术栈决策
- 编程语言:基于Java生态系统
- 微服务框架:使用Dropwizard微服务
- 传输协议:支持可流式传输的HTTP传输
认证与安全实现
- OAuth集成:MCP原生缺乏完整的认证协议支持,HubSpot实现了OAuth 2.0协议
- 权限管理:用户权限映射到HubSpot席位和层级
- 范围控制:确保用户只能访问被授权的CRM数据
技术挑战与解决方案
协议标准化挑战
- 命名规范不一致:在不同MCP服务器实现中存在Snake case与Camel case的不一致
- 规范演进:MCP协议仍在快速发展中,HubSpot需要跟踪多个版本规范
系统集成复杂度
- 与现有RPC系统集成:需要扩展Java MCP SDK以支持HTTP流式传输协议
- 微服务架构适配:在HubSpot现有的微服务架构中集成MCP网关
开发效率优化
- AI辅助开发:使用Claude Code生成所需的代码组件和模板版本
- 注解系统:创建MCP工具的注解系统,简化RPC Java方法描述
性能与扩展性
架构设计决策
- 无状态设计:采用短生命周期的HTTP请求,避免长连接带来的扩展性问题
- 只读初始版本:降低初始实现复杂度,确保系统稳定性
扩展性考虑
- 流量管理:基于短HTTP调用的设计能够处理大规模请求
- 服务发现:MCP网关自动发现跨服务的工具
实际应用场景
客户使用案例
客户能够通过MCP服务器执行复杂查询,如:“在过去90天内,分析所有新联系人和公司的区域分布,并识别转化率最高的群体”
内部开发应用
- 测试数据生成:产品经理使用本地MCP服务器生成符合特定行业需求的交易和客户测试数据
- 模式生成:通过连接MCP服务器与Claude Code,自动生成API模式
技术演进与未来规划
协议发展
MCP仍在演进中,需要解决:
- 完整的代理到代理协议支持
- 更多用例适配
- 工具发现和验证机制
技术路线图
- 扩展MCP服务器功能,支持更多场景
- 开发MCP客户端,解决工具发现和注册服务
- 探索代理到代理协议的集成可能性
开源贡献
HubSpot积极向Java MCP SDK贡献代码,并通过工程博客分享大规模远程MCP服务器实现的经验,推动开源生态系统发展。
本文基于技术访谈内容整理,聚焦于MCP协议在CRM系统中的实际技术实现细节。