【ITニュース解説】What an MCP implementation looks like at a CRM company
2025年09月17日に「Stack Overflow Blog」が公開したITニュース「What an MCP implementation looks like at a CRM company」について初心者にもわかりやすく解説しています。
ITニュース概要
CRM企業のHubSpotが、自社CRM製品のサーバーにMCP(Model Context Protocol)をどのように導入・実装したかを紹介。プロダクト担当幹部が、具体的な事例を通してこの技術の活用法を解説する。
ITニュース解説
今回のニュースは、CRM企業であるHubSpotが、彼らのCRM製品のサーバーでMCP(Model Context Protocol)をどのように実装したかについて解説するものである。まず、CRMとは何か、そしてシステム開発においてなぜこのような複雑なプロトコルが必要になるのかを説明する。
CRMとは「Customer Relationship Management(顧客関係管理)」の略であり、企業が顧客との関係を構築、維持、強化するためのツールや戦略を指す。CRMシステムは、顧客情報、購入履歴、問い合わせ履歴、営業活動の進捗など、多岐にわたる情報を一元的に管理する。企業内の営業、マーケティング、カスタマーサポートといった様々な部門のユーザーがCRMシステムを利用し、それぞれの部門は異なる視点や情報を必要とする。例えば、同じ顧客データであっても、営業担当者にとっては「商談の状況」や「次のアプローチ時期」が重要である一方、サポート担当者にとっては「過去の問い合わせ内容」や「解決までの履歴」が重要となる。このように、システムが扱う情報は同じ顧客に関するものであっても、利用する部門や目的によって、どの情報を前面に出すか、どのように表示するか、あるいはどのような操作を許可するかが異なるという複雑さがある。
このような複雑な状況において、システムが扱う「モデル」(ここでは顧客データやそれに付随するビジネスロジック)が、利用される「コンテキスト」(状況や文脈)に応じて適切に振る舞うための「プロトコル」(規約)がMCP(Model Context Protocol)である。システム開発では、データ構造やビジネスロジックのまとまりを「モデル」として定義する。例えば「顧客」というモデルには、氏名、住所、電話番号などの基本情報がある。しかし、この「顧客」モデルが使われる状況、つまり「コンテキスト」は多種多様である。「営業活動のコンテキスト」「顧客サポートのコンテキスト」「マーケティングキャンペーンのコンテキスト」など、多くの文脈が存在する。MCPは、この「モデル」と「コンテキスト」の関係を明確に定義し、モデルがどのコンテキストでどのように振る舞うべきかを、あらかじめ決められたルール(プロトコル)に基づいて制御する仕組みを提供する。これにより、同じ「顧客」モデルでも、営業チームが閲覧する際は営業関連の情報が強調され、サポートチームが閲覧する際はサポート履歴が前面に出る、といった柔軟な表示や機能の切り替えが可能になる。また、同じ顧客情報であっても、特定のコンテキストでは一部の情報のみを編集可能にし、別のコンテキストでは閲覧のみに制限するといった、きめ細やかなアクセス制御も実現できる。
HubSpotは、そのCRM製品の「サーバー」側でMCPを実装した。サーバーは、システム全体の脳にあたる部分であり、データ処理やビジネスロジックのほとんどを担う。サーバーサイドでMCPを実装することで、ユーザーが利用するクライアント(ウェブブラウザやモバイルアプリ)に依存せず、システムの中核部分で一貫したモデルの振る舞いを保証できる。これにより、以下のようなメリットが生まれたと考えられる。第一に、一貫性の確保である。異なるコンテキストであっても、モデルの振る舞いがプロトコルというルールに基づいて自動的に調整されるため、システム全体の一貫性が保たれる。これは、大規模なCRMシステムにおいて、多数の機能や部門にまたがるデータの整合性を維持する上で極めて重要である。第二に、開発効率の向上である。開発者は、各コンテキストでのモデルの振る舞いを個別に実装する手間が省け、プロトコルに従って定義するだけで済む。これにより、開発作業の重複が減り、新しい機能の追加や既存機能の変更が容易になる。システムのリリースサイクルを短縮し、市場の変化に迅速に対応できる体制を構築する上で貢献する。第三に、保守性の向上である。モデルの振る舞いがプロトコルによって集中管理されるため、どこかで変更が必要になった場合でも、変更箇所を特定しやすく、バグの発生リスクを低減できる。これにより、システムの運用コストを削減し、安定稼働を維持することが可能になる。第四に、拡張性である。新しいコンテキストや新しい種類のモデルが追加されても、既存のプロトコルに則って定義すればよいため、システム全体の拡張がしやすくなる。HubSpotのCRMでは、例えば企業顧客と個人顧客で異なる情報の表示や処理が必要になる場合がある他、地域によって法律や商習慣が異なる場合もある。MCPは、これらの多様なコンテキストに対応するために、サーバー側でモデルの振る舞いを動的に調整する役割を果たす。これにより、グローバル展開や新しいビジネス要件への柔軟な対応が可能になる。
MCPのようなアプローチは、大規模で複雑なシステムを開発・運用する上で非常に重要である。単に目の前の機能を作るだけでなく、将来的な変更や拡張にも対応できるような設計思想が常に求められる。モデルとコンテキストという概念を意識し、それらを適切に分離・管理する手法は、システムの品質を向上させ、開発チームの生産性を高める。システムエンジニアを目指す者は、このような抽象的な概念や設計原則を理解し、それを具体的な技術や実装に落とし込む能力を養うことが重要である。複雑な要件に対し、いかにシンプルかつ効率的な解決策を設計できるかが、優れたシステムエンジニアの証となる。
HubSpotのMCP実装は、複雑なCRMシステムにおいて、いかにモデルの振る舞いをコンテキストに応じて適切に制御し、システムの保守性、拡張性、開発効率を高めるかを示す良い事例である。これは、現代のエンタープライズシステム開発における重要な設計トレンドの一つと言える。