メニュー

PythonとMCPで実装するAIエージェント基盤 プロトコルの基礎からコード設計/認証認可/本番運用まで

発売日: 2026/9/24 想定ページ数: 296ページ ISBN: 9784295025740 全文検索: 非対応
★★★★★ ★★★★★ 0件
※本書はEPUB(固定レイアウト型)で作成されております。検索機能や文字列のコピーがご利用できません。

Pythonで一から作るAIエージェント基盤!
MCPの完全理解から、高度なAI連携、セキュアな実装まで。
【日本語版独自】MCP 2.0対応コラム&追加サンプルコード入手可


本書は、AIと外部システムをつなぐ標準仕様Model Context Protocol(MCP)の仕組みを理解しつつ、Pythonコーディングによってサーバーとクライアントを一から構築する実践的技術書です。堅牢でセキュアなAIアーキテクチャを設計したいバックエンド開発者、AIエンジニア、ソフトウェアアーキテクトに最適な一冊です。

本書では、プロトコルの基礎について原書(MCP 1)ベースで解説しながら、日本語版の独自コラムや脚注、追加サンプルコードを通じて、MCP 2.0をフォローしています。「なぜSSEからStreamable HTTPへ移行したのか」「なぜステートレス化されたのか」―プロトコル進化の背景にあるアーキテクチャ設計の意図を浮き彫りにし、原書以上の価値を提供します。

◆最新仕様を含むサーバーとクライアントの構築◆ローカルのSTDIO通信はもちろん、リモート向けのSSEや、MCP 2で標準となったStreamable HTTPといった各種トランスポートを用いた通信の実装をPythonで実践的にコーディング。

◆LLMを組み込んだエージェントの実装◆クライアントにLLMを統合し、ユーザーのプロンプトから「どのMCPサーバーのツールを呼び出すべきか」をLLMに自律的に判断させるエージェントを構築。

◆高度なAI連携フローとMRTRの理解◆サーバーからクライアント側のLLMにタスクを委譲するフローや、動的対話のフローを実装。さらに、最新仕様であるMRTR(Multi Round-Trip Requests)によるステートレスな対話モデルへの移行についても触れています。

◆セキュアな運用基盤の構築◆本番環境での運用を見据え、Basic認証から、JWTやOAuth 2.1を用いたセキュアな認証・認可ミドルウェアを構築。Pydanticや非同期処理など、Web開発に向けたモダンPythonの手法も習得。

プロトコルのブラックボックスに頼らず、仕組みの根幹から高度なAIインタラクション、エンタープライズ水準のセキュアな運用基盤の構築へと段階的にステップアップ。「本格的な自律型AIシステム」を自分の手で作り上げるための根本的な技術を把握できます。

■目次構成
第1章 Model Context Protocolの意義
第2章 詳解MCP
第3章 サーバーの構築とテスト
第4章 SSEサーバーの構築:動的でリアルタイム性の高いアプリの実現
第5章 Streamable HTTP:MCPサーバーのHTTPストリーミング技術
第6章 高度なMCPサーバー構築法
第7章 MCPクライアントの構築
第8章 MCPサーバーの効果的な利用法
第9章 サンプリング:サーバーからクライアントへの依頼
第10章 エリシテーション:サーバーからユーザーへの依頼
第11章 アプリケーションのセキュリティ対策
第12章 MCPアプリケーションの本番環境への導入
付録A モダンPythonでのWebの構築

※本書は『Learn Model Context Protocol with Python: Build agentic systems in Python with the new standard for AI capabilities』の翻訳書です。
目次プレビュー
  • サンプルコード・正誤表・免責など
  • 献辞
  • まえがき
サンプルコード・正誤表・免責など
献辞
まえがき
はじめに
目次
  • 1.1 これまでの歩み:SOAPからREST、GraphQL、gRPC、そしてMCPへ/1.2 標準の必要性
  • 1.3 無限の可能性:プロンプトの与え方さえ知っていれば、MCPサーバーの世界は思いのまま
  • 1.4 MCPとは何か/1.5 本章のまとめと次のステップ
  • 2.1 MCPを実装しながら学ぶ/2.2 MCPにおけるトランスポート
  • 2.2.1 STDIOトランスポート
  • 2.2.2 MCPの初期化プロセス
  • 2.2.3 各種機能のサポート
  • 2.2.4 通知、進捗の報告、重要な更新
  • 2.2.5 サンプリング:サーバーによるリクエストの完了を支援する
  • 2.2.6 SSEトランスポート
  • 2.2.7 Streamable HTTP
  • 2.3 本章のまとめ
  • 3.1 STDIOサーバー
  • 3.2 概念:リソース、ツール、プロンプト/3.2.1 リソース
  • 3.2.2 ツール
  • 3.2.3 プロンプト/3.3 ランタイム
  • 3.4 サーバーのテスト/3.4.1 Inspector
  • 3.4.2 cURL/3.4.3 テスト
  • 3.5 最初のサーバー
  • 3.5.1 ステップ1:新しいプロジェクトを作成する
  • 3.5.2 ステップ2:依存パッケージをインストールする/3.5.3 ステップ3:サーバーコードを追加する
  • 3.5.4 ステップ4:Inspectorを使ってサーバーをテストする
  • 3.5.5 ステップ5:InspectorのCLIモードを使ってサーバーをテストする
  • 3.6 本章のまとめ
  • 4.2 SSEサーバーをWebアプリケーションとして構築する/4.2.1 Starlette
  • 4.2.2 StarletteとMCP
  • 4.3 SSEを使ったテスト/4.3.1 Inspectorを使ったテスト
  • 4.3.2 Webクライアントを使ったテスト
  • 4.4 SSEサーバーの構築/4.4.1 プロジェクトをセットアップする
  • 4.4.2 サーバーコードを追加する/4.4.3 機能を追加する
  • 4.4.4 サーバーを起動する
  • 4.4.5 サーバーをテストする
  • 4.5 本章のまとめ
  • 5.1 なぜStreamable HTTPは新しい標準になったのか
  • 5.2 MCPにおけるStreamable HTTP
  • 5.3 再開可能性
  • 5.4 通知
  • 5.4.1 通知の生成
  • 5.4.2 通知の処理
  • 5.4.3 Inspectorでの通知
  • 5.4.4 再開可能性を持つ通知/5.5 Streamable HTTPを使ったサーバーの構築とテスト
  • 5.6 サーバーのテスト/5.6.1 Inspectorを使ってテストする
  • 5.6.2 cURLを使ってテストする
  • 5.6.3 通知を処理するクライアントを構築する
  • 5.7 再開可能性のテスト
  • 5.8 本章のまとめ
  • 6.1 なぜこの低レベルなアプローチを使うのか/6.2 コンテキストマネージャー
  • 6.2.1 contextlibを使ったコンテキストマネージャーの作成/6.2.2 コンテキストマネージャーの実装
  • 6.3 MCPサーバーのコンテキストマネージャー
  • 6.4 低レベルアクセス
  • 6.5 アーキテクチャの整理
  • 6.5.1 低レベルサーバーでlist_toolsレスポンスを構築する
  • 6.5.2 コードを整理し、ツールとスキーマを作成する
  • 6.5.3 ツールの呼び出しを処理する
  • 6.6 本章のまとめ
  • 7.1 クライアントの構築/7.2 演習:クライアントを構築する/7.2.1 クライアントをサーバーに接続する
  • 7.2.2 サーバーの機能のリストを取得する
  • 7.2.3 利用する機能を選択する
  • 7.2.4 完全なコード
  • 7.3 LLMを統合したクライアント
  • 7.3.1 LLMを統合する前/7.3.2 LLMを統合した後/7.4 LLMを利用する
  • 7.5 演習:LLMを統合する/7.5.1 サーバーの機能のリストを取得する
  • 7.5.2 機能のリストをLLMツールに変換する
  • 7.5.3 ユーザー入力を管理する
  • 7.5.4 クライアントが利用するサーバー機能と送信するパラメータを判断する
  • 7.6 本章のまとめ
  • 8.1 Claude DesktopやVS CodeなどのホストによるMCPサーバーの利用
  • 8.1.1 VS CodeでのMCPサポート
  • 8.1.2 Claude Desktop
  • 8.2 インストールプロセス/8.2.1 mcp.jsonファイル
  • 8.3 MCPサーバーの追加
  • 8.3.1 ステップ1:サーバーをインストールする
  • 8.3.2 ステップ2:サーバーを管理する
  • 8.3.3 ステップ3:サーバーを利用する
  • 8.4 ローカルインストールとグローバルインストール
  • 8.5 ヒントとコツ/8.5.1 デバッグ
  • 8.5.2 トラブルシューティング
  • 8.5.3 ツールの管理
  • 8.5.4 その他の設定
  • 8.6 セキュリティの適用
  • 8.7 お勧めのMCPサーバー/8.8 本章のまとめ
  • 9.1 サンプリングの目的/9.1.1 サンプリングの流れ
  • 9.1.2 シナリオ
  • 9.1.3 メッセージ
  • 9.2 サンプリングの実装/9.2.1 サーバー実装
  • 9.2.2 クライアント実装
  • 9.3 本章のまとめ
  • 10.1 エリシテーションの目的
  • 10.2 エリシテーションの実装/10.3 エリシテーションの流れ
  • 10.4 JSON-RPCメッセージ
  • 10.4.1 リクエストスキーマのデータ型
  • 10.5 サーバー側でのエリシテーションの実装
  • 10.5.1 VS Codeによるエリシテーションのテスト
  • 10.6 クライアント側でのエリシテーションの実装
  • 10.7 本章のまとめ
  • 11.1 Basic認証
  • 11.2 Bearerトークン認証
  • 11.2.1 MCPサーバーに認証を適用する/11.2.2 MCPサーバーを実装し、Webアプリケーションとして起動する
  • 11.2.3 ミドルウェアを作成する
  • 11.2.4 ミドルウェアをテストする
  • 11.3 JWTによるセキュリティの強化
  • 11.3.1 JWTはどのように機能するか
  • 11.3.2 JWTを作成する
  • 11.3.3 JWTを検証する
  • 11.3.4 JWTをミドルウェア(およびMCPサーバー)に統合する
  • 11.4 OAuth2
  • 11.4.1 OAuth 2.1の処理の流れ
  • 11.4.2 OAuth 2.1の内部の仕組み
  • 11.4.3 OAuth 2.1によるセキュリティに関する総括
  • 11.5 本章のまとめ
  • 12.1 アーキテクチャと設計/12.1.1 統合パターン
  • 12.1.2 ドキュメント化
  • 12.1.3 アーキテクチャレビュー
  • 12.2 パッケージ化と配布
  • 12.2.1 パッケージ化の選択肢
  • 12.2.2 配布チャネル
  • 12.2.3 セマンティックバージョニングの採用
  • 12.3 テスト戦略とデプロイの自動化/12.3.1 テスト戦略
  • 12.3.2 デプロイの自動化/12.4 運用と可観測性
  • 12.4.1 可観測性
  • 12.4.2 スケーラビリティとレジリエンス
  • 12.4.3 監視とフィードバック
  • 12.4.4 ガバナンスとコンプライアンス/12.4.5 将来を見据えた設計
  • 12.5 本章のまとめ
  • A.1.1 型ヒントを使ってコードを改善する/A.1.2 Pydanticを追加する
  • A.2 asyncとawait
  • A.3 Uvicorn:ASGIサーバー
  • A.4 コンテキストマネージャー
  • A.4.1 contextmanagerデコレータ/A.5 uv:開発環境マネージャー
索引
翻訳者紹介・STAFF LIST
奥付
株式会社クイープ
この著者の書籍一覧

まだレビューが投稿されていません