エンジニア選書 MCPサーバー開発大全 ―⁠―独自サーバーの実装から自動テストの構築まで

「MCPサーバー開発大全」のカバー画像
著者
岡翔子おかしょうこ 著
高山洪銘たかやまこうめい餌打優太えうちゆうた 監修
定価
3,300円(本体3,000円+税10%)
発売日
2025.11.25
判型
B5変形
頁数
280ページ
ISBN
978-4-297-15327-4

概要

MCP(Model Context Protocol)は、LLM(大規模言語モデル)とツールを連携させる革新的なプロトコルとして急速に普及しています。MCPによって、AIエージェントに各種のタスクを任せることが現実になりました。

同時に重要性を増しているのが、自サービスのMCPサーバーを完備してAIフレンドリーにすることです。サービスやデータベースは「AIから使えるかどうか」によってその価値が大きく変わります。

本書はMCPの基礎概念からMCPサーバー開発のための環境構築、基本的な実装、複雑なドメインヘの応用、そして品質保証を扱います。書籍内では実例として、初歩的な天気予報サーバーや、実践的な社内ドキュメントサーバーを作成します。

また、著者が独自に考案した「4層テスト戦略」は、従来のAPIテストでは対応困難なMCP特有の課題に対する解決策を提示します。さらにはCI/CDおよび自動テストの構築という運用面まで、MCPサーバー開発のすべてを学べる1冊です!

こんな方にオススメ

  • 実践的なMCPサーバーを作りたい方
  • 自身や自社の持つデータ資源をAIエージェントに活用させたい方
  • LLMが介在するシステムのテストや品質保証に関心のある方

目次

第1章 MCPサーバー開発の基礎知識

  • 1.1 MCPとは何か
    • 1.1.1 MCPの概要
    • 1.1.2 MCP の全体像:プロトコル、クライアント、サーバーの関係
    • 1.1.3 MCPの3つの主要コンポーネント
    • 1.1.4 従来のAPI連携との違い
    • 1.1.5 従来の課題とMCPの特長
    • 1.1.6 LLMエコシステムにおけるMCP
    • 1.1.7 MCPが解決する課題
    • 1.1.8 実用例とユースケース
    • 1.1.9 主要な実装言語とライブラリ
  • 1.2 MCPサーバーの基本アーキテクチャ
    • 1.2.1 サーバー・クライアント間の通信フロー
    • 1.2.2 関数定義とスキーマ設計
    • 1.2.3 エラーハンドリングの基本概念
  • 1.3 開発環境の構築
    • 1.3.1 Python環境のセットアップ
    • 1.3.2 MCPライブラリのインストール
    • 1.3.3 プラットフォーム別の注意事項
    • 1.3.4 開発ツールと推奨エディタ設定
    • 1.3.5 デバッグ環境の構築
  • 1.4 まとめ

第2章 MCPアーキテクチャの理解

  • 2.1 MCPプロトコルの全体像
    • 2.1.1 クライアント・サーバーモデルの詳細
    • 2.1.2 JSON-RPCベースの通信仕様
    • 2.1.3 stdioとSSEの使い分け
    • 2.1.4 メッセージフロー
    • 2.1.5 その他の通信
  • 2.2 MCPサーバーの設計パターン
    • 2.2.1 シンプルラッパーパターン:単一APIをそのまま呼び出す場合
    • 2.2.2 カスケード処理パターン:複数APIを統合して使用する場合
    • 2.2.3 ナレッジベースパターン:内部情報を提供する場合
    • 2.2.4 ステートフルパターンvsステートレスパターン
    • 2.2.5 各パターンの使い分け
  • 2.3 MCPサーバーのスケーラビリティ
    • 2.3.1 ステートレス設計の重要性
    • 2.3.2 キャッシュ戦略の理論的背景
  • 2.4 セキュリティアーキテクチャ
    • 2.4.1 認証と認可の分離
    • 2.4.2 APIキー管理のベストプラクティス
    • 2.4.3 レート制限の実装戦略
    • 2.4.4 プライバシー保護:ログに何を記録すべきか/すべきでないか
    • 2.4.5 マルチテナンシーにおけるデータ分離
  • 2.5 他のプロトコル・アーキテクチャとの比較
    • 2.5.1 REST API、gRPC、GraphQLとの違い
    • 2.5.2 Function Calling/Tool Useとの関係性
    • 2.5.3 MCPの強み
    • 2.5.4 MCPの制約:何に向いていて、何に向いていないか
  • 2.6 まとめ

第3章 基本的なサーバー実装

  • 3.1 公式サンプルの解析
    • 3.1.1 MCPサーバーを立てて使ってみよう
    • 3.1.2 公式サンプルコードの詳細解説
    • 3.1.3 公式サンプルコードの特徴
    • 3.1.4 コード構造の理解
    • 3.1.5 エラーハンドリングの階層
    • 3.1.6 実装パターンの抽出
  • 3.2 HTTP APIとの連携
    • 3.2.1 APIキー管理の実践的手法
    • 3.2.2 ハードコーディングの危険性と対策
    • 3.2.3 レート制限への対応
    • 3.2.4 MCPサーバーでのレート制限対策の実装
  • 3.3 天気予報MCPサーバーの構築
    • 3.3.1 Open Weather Map APIの登録とセットアップ
    • 3.3.2 基本的な天気取得機能の実装
    • 3.3.3 Claude for Desktopでの動作確認
  • 3.4 まとめ

第4章 複雑なサーバー設計

  • 4.1 複雑な処理フローの設計
    • 4.1.1 複数APIの連携パターン
    • 4.1.2 複数API連携の戦略
    • 4.1.3 処理順序の最適化
    • 4.1.4 データ依存関係の管理
    • 4.1.5 キャッシュとデータの鮮度管理
    • 4.1.6 データ変換パイプライン
  • 4.2 実例:過ごし方提案MCPサーバー
    • 4.2.1 chillax-mcp-serverのシステム全体像
    • 4.2.2 chillax-mcp-serverのコードの全体構造
    • 4.2.3 chillax-mcp-serverの設計
    • 4.2.4 カスケード処理のアーキテクチャパターン
    • 4.2.5 本番環境を想定した実装
    • 4.2.6 パフォーマンスとコスト最適化
    • 4.2.7 運用監視とトラブルシューティング
    • 4.2.8 セキュリティとマルチテナンシー
  • 4.3 応用:社内ドキュメントサーバー
    • 4.3.1 Claude CodeとMCPサーバーの連携
    • 4.3.2 DocuMentorを動かしてみよう
    • 4.3.3 DocuMentorの機能を体験する
    • 4.3.4 DocuMentorをカスタマイズする
    • 4.3.5 MCPサーバー開発のベストプラクティス
  • 4.4 スケーラビリティとパフォーマンス
    • 4.4.1 非同期処理の活用
    • 4.4.2 キャッシュ戦略
    • 4.4.3 メモリ管理とリソース最適化
    • 4.4.4 パフォーマンスの測定と最適化
  • 4.5 設定管理とデプロイメント
    • 4.5.1 環境別設定の管理
    • 4.5.2 コンテナ化とデプロイ戦略
    • 4.5.3 運用時の監視ポイント
  • 4.6 まとめ

第5章 MCPサーバーのテスト戦略

  • 5.1 4層テスト戦略
    • 5.1.1 なぜMCPテストが難しいのか
    • 5.1.2 LLMが介在する非決定性
    • 5.1.3 現状のテスト手法の限界
    • 5.1.4 4層テスト戦略の概要
  • 5.2 Layer 1:単体テストの実装
    • 5.2.1 関数単位のテスト設計
    • 5.2.2 モック化とスタブの活用
    • 5.2.3 テストデータの準備
  • 5.3 Layer 2:プロトコルテストの実装
    • 5.3.1 MCPプロトコルレベルのテスト
    • 5.3.2 通信フローの検証
    • 5.3.3 エラーケースの網羅
  • 5.4 Layer 3:カスケードテストの実装
    • 5.4.1 複数API連携のテスト戦略
    • 5.4.2 データ依存関係の検証
    • 5.4.3 パフォーマンステスト
    • 5.4.4 エラー伝播とリカバリー
  • 5.5 Layer 4:E2Eテストの実装
    • 5.5.1 なぜE2Eテストが必要なのか
    • 5.5.2 LLM統合がもたらす課題
    • 5.5.3 E2Eテストの基本アプローチ
    • 5.5.4 意味的一致の評価手法
    • 5.5.5 非決定性への対応策
    • 5.5.6 フォールバック戦略のテスト
    • 5.5.7 実践的なE2Eテストシナリオ
  • 5.6 まとめ

第6章 CI/CD統合

  • 6.1 GitHub Actionsでの自動テスト
    • 6.1.1 ワークフロー設定
    • 6.1.2 環境変数とシークレット管理
    • 6.1.3 並列テスト実行
  • 6.2 テストカバレッジの測定と改善
    • 6.2.1 カバレッジツールの導入
    • 6.2.2 品質メトリクスの設定
    • 6.2.3 継続的改善プロセス
  • 6.3 デプロイメント自動化
    • 6.3.1 段階的デプロイ戦略
    • 6.3.2 ロールバック機能
    • 6.3.3 本番環境での監視
  • 6.4 その他の品質保証のベストプラクティス
    • 6.4.1 ドキュメント管理
    • 6.4.2 継続的な品質改善
    • 6.4.3 セキュリティとコンプライアンス
  • 6.5 まとめ

プロフィール

岡翔子おかしょうこ

大阪在住。AWSジャパンを経て現在はLINEヤフー株式会社でエンジニアとして勤務。LLMの応答に関する論文執筆経験をもち、個人でMCPサーバーの開発を行っている。趣味は読書と現代美術鑑賞。X:@0xshooka

高山洪銘たかやまこうめい

どちらかといえばソフトウェアエンジニア。モバイルアプリケーション開発やSDK開発のほか、ソフトウェアテストの自動化にも長年従事。近年は開発者支援や組織的なナレッジ共有にも注力する傍ら、機械学習やデータ分析にも関心を持ち、一部のAI作曲コンテスト等にも出没している。

餌打優太えうちゆうた

LINEヤフー株式会社でエンジニアとして勤務。LINE公式アカウントのMCP Server(line-bot-mcp-server)の立ち上げを行う。また、株式会社Bocekでエンジニアリングマネージャーを務める。ポートフォリオ:https://euchi.jp