この記事は、AIとの壁打ちから生まれました!MCPについてClaudeと議論した内容をもとに、AIに記事を書いてもらい編集したものです。AIについて考えるのにAIを使うという、ちょっとした「AI-ception」をお楽しみください。
はじめに
Model Context Protocol(MCP)の登場により、これまでエンジニアの専売特許だったAIの高度な活用方法が、プログラミングなしで実現できる可能性が開けました。自然言語だけで外部データベースへのアクセスやファイル操作など、さまざまな外部リソースと連携できるようになったことは、AIの民主化において大きな一歩と言えるでしょう。
しかし、現実はそう甘くありません。MCPの仕様や実装はまだ発展段階にあり、その環境構築にはコマンドラインの操作やサーバー設定など、依然としてエンジニアリングスキルが必要です。また、セキュリティ面での懸念も無視できません。例えば:
- ローカル環境に構築する場合、データベース接続情報などの認証情報を各マシンに配布するリスク
- リモートで構築する場合、SSE(Server-Sent Events)対応や認証・権限管理が十分に実装されていない現状での脆弱性
本記事では、これらの課題を解決し、非エンジニアでも安全かつ手軽にMCPの恩恵を受けられる環境を、Amazon AppStream 2.0を活用して構築した事例をご紹介します。
AppStream 2.0によりMCP環境がセットアップされた環境を提供
Amazon AppStream 2.0は、デスクトップアプリケーションをブラウザ経由で提供できるAWSのサービスです。これを活用することで、MCP対応済みのClaude Desktopを非エンジニアでも簡単に利用できる環境を構築しました。
メリット
即時利用可能な環境:ユーザーはブラウザを開くだけで、事前設定済みのMCP環境にアクセスできます。インストールや設定作業は一切不要です。
セキュリティリスクの低減:MCP Serverをリモート(EC2やECS)に配置し、VPC内でAppStreamからの接続のみを許可することで、インターネットに公開せずに利用できます。連携したい外部サービスへの認証情報をクライアント側に配布する必要もありません。AppStream環境のClaude DesktopのMCPの設定はEC2(ECS)へのプライベートIPとポート情報のみになります。
集中管理:環境の更新や設定変更を一元管理できるため、メンテナンスの手間が大幅に削減されます。
技術的な実装詳細
MCP Serverの構築
MCP Serverは現在、SSE(Server-Sent Events)未対応のものが多いため、未対応のものはmcp-proxyを使ってSSE化しました。
mcp-remoteの活用と改良
Claude Desktopは現時点ではSSEトランスポートに未対応であるため、mcp-remoteを中継として活用しました。mcp-proxyにも類似の機能がありますが、動作が不安定だったため、mcp-remoteを選択しています。
また、mcp-remoteには以下の修正を加えました:
HTTPサポートの追加
- PR: https://github.com/geelen/mcp-remote/pull/28
- もともとHTTPS専用だったため、内部通信用にHTTP対応を追加
認証機能のスキップオプション
- PR: https://github.com/geelen/mcp-remote/pull/33
- 内部ネットワークでの利用に限定する場合に不要な認証を省略できるようにしました
まとめ
MCPは非エンジニアがAIの高度な機能を活用できる可能性を大きく広げるものですが、その環境構築にはまだ技術的ハードルが存在します。AppStream 2.0と組み合わせることで、その障壁を下げつつ、セキュリティも確保した環境を実現できることを示しました。
今後、MCPの仕様や実装がさらに成熟していくことで、より簡単に構築できる環境が登場することが期待されます。しかし、現時点でもこのようなアプローチにより、組織内での安全なMCP活用の第一歩を踏み出すことができるでしょう。
社内でのAI活用を促進したいと考えている方々の参考になれば幸いです。