いつも読んでいただき、ありがとうございます。
BPaaS プロダクトユニットの山本です。本記事では、リモート MCP サーバーの構築と業務自動化の可能性について解説します。
tl;dr
- Model Context Protocol(MCP)を活用して、業務の自動化と効率化が可能
- リモート MCP サーバーを AWS 上に構築し、HTTP Streaming を利用
はじめに
Model Context Protocol(MCP)の登場により、自然言語でアプリケーションの操作やデータの取得・登録が可能になりました。これまでの API 呼び出しや CLI コマンドに代わり、LLM を介した直感的なインターフェースが可能になってきています。
課題:ローカル MCP の課題
当初 MCP は主にローカル環境での利用を前提としており、以下のような課題がありました:
- スケーラビリティの欠如: 個人の開発環境に依存
- 共有の困難: チーム間での共通利用が困難
- メンテナンス負荷: 各開発者が個別に環境構築が必要
- リソース制約: ローカル環境のスペックに制限される
これらの課題を解決するため、クラウド上でスケーラブルなリモート MCP サーバーの構築が必要だと考えました。
解決アプローチ:HTTP Streaming を活用したリモート MCP
MCP は主にローカル向けの stdio
通信以外に、HTTP Streaming を介した通信も可能です。この機能を活用することで、リモートでアクセス可能な MCP サーバーを構築できます。
アーキテクチャ概要
上図に示すように、以下の構成でリモート MCP サーバーを実装しました:
- ECS Fargate: Stateless なコンテナでスケーラブルな実行環境
- Application Load Balancer: HTTP Streaming の負荷分散
- Auto Scaling: 需要に応じた自動スケーリング
- CloudWatch: 監視とログ管理
効果検証:自然言語による業務自動化
構築したリモート MCP サーバーを使用して、「BPaaS 窓口」の業務の一部を自然言語で実行できることを検証します。
実行例
実行フロー:
- LLM: ユーザーの要求を解析し、必要なツール呼び出しを決定
- MCP Client (GitHub Copilot): ツール呼び出しをリモート MCP サーバーに転送
- MCP Server: 以下のツールを順次実行
fetch-role-server
: API を使用してスタッフのロールを取得する
- 結果返却: 実行結果を LLM に送信し、ユーザーに分かりやすい形で回答
まとめと今後の展望
リモート MCP サーバーの構築により、以下の成果が得られると考えています:
課題の解決
- スケーラビリティ: クラウド上でのスケーラブルな実行環境
- チーム共有: チーム全体での共通利用が可能
- メンテナンス負荷軽減: 一元管理によるメンテナンス負荷の軽減
- リソース最適化: サーバーレスアーキテクチャによる従量課金
今後の展望
- マルチテナント対応: 業務ごとの独立した環境提供
- ツールの最適化: 業務に特化したツールの追加
- セキュリティ強化: 認証・認可の強化
個人的には、今後、プロダクトは生成 AI を中心としたアプローチを採用され、より直感的かつ効率的に業務を遂行できる環境を構築することが可能になると考えています。
記事は以上です。
今後も BPaaS プロダクト開発に関する発信活動を継続予定です。BPaaS 戦略に興味をお持ちでしたら、ぜひお気軽にお問い合わせください。