インプレス[コンピュータ・IT]ムック PythonとMCPで実装するAIエージェント基盤
インプレス / 2026年09月24日 / 全295ページ
Pythonで一から作るAIエージェント基盤!―本書は、AIと外部システムをつなぐ標準プロトコル「MCP」の仕組みを理解しながら、サーバーとクライアントを構築する実践的技術書です。プロトコルの基礎から学びつつ、日本語版独自コラムと追加コードで最新のMCP 2.0に対応! ステートレス化など、プロトコル進化の背景にある設計意図も見えてきます。LLMの統合からセキュアな本番運用まで、本格的な自律型AIシステムの基本的なスキルを把握できます。
目次
- サンプルコード・正誤表・免責など
- 献辞
- まえがき
- はじめに
- 目次
- 第1章 Model Context Protocolの意義
- 1.1 これまでの歩み:SOAPからREST、GraphQL、gRPC、そしてMCPへ1.2 標準の必要性
- 1.3 無限の可能性:プロンプトの与え方さえ知っていれば、MCPサーバーの世界は思いのまま
- 1.4 MCPとは何か1.5 本章のまとめと次のステップ
- 第2章 詳解MCP
- 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章 Model Context Protocolの意義
- 1.1 これまでの歩み:SOAPからREST、GraphQL、gRPC、そしてMCPへ1.2 標準の必要性
- 1.3 無限の可能性:プロンプトの与え方さえ知っていれば、MCPサーバーの世界は思いのまま
- 1.4 MCPとは何か1.5 本章のまとめと次のステップ
- 第2章 詳解MCP
- 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章 サーバーの構築とテスト
- 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 cURL3.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章 SSEサーバーの構築:動的でリアルタイム性の高いアプリの実現4.1 SSEの概念
- 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章 Streamable HTTP:MCPサーバーのHTTPストリーミング技術
- 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章 高度なMCPサーバー構築法
- 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章 MCPクライアントの構築
- 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章 MCPサーバーの効果的な利用法
- 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章 サンプリング:サーバーからクライアントへの依頼
- 9.1 サンプリングの目的9.1.1 サンプリングの流れ
- 9.1.2 シナリオ
- 9.1.3 メッセージ
- 9.2 サンプリングの実装9.2.1 サーバー実装
- 9.2.2 クライアント実装
- 9.3 本章のまとめ
- 第10章 エリシテーション:サーバーからユーザーへの依頼
- 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章 アプリケーションのセキュリティ対策
- 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章 MCPアプリケーションの本番環境への導入
- 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 モダンPythonでのWebの構築A.1 型ヒントとデータモデリング
- 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
- 奥付
※このデジタル雑誌には目次に記載されているコンテンツが含まれています。それ以外のコンテンツは、本誌のコンテンツであっても含まれていません のでご注意ください。
※電子版では、紙の雑誌と内容が一部異なる場合や、掲載されないページがある場合があります。


![インプレス[コンピュータ・IT]ムック スラスラ読める Pythonふりがなプログラミング 改訂3版](http://image.magastore.jp/jp/magastore/loading_192.jpg)







