MCP原理揭秘與開發(fā)指南——構(gòu)建可擴(kuò)展的AI智能體
定 價(jià):109 元
- 作者:嚴(yán)燦平
- 出版時(shí)間:2025/7/1
- ISBN:9787121505591
- 出 版 社:電子工業(yè)出版社
- 中圖法分類:TP18-62
- 頁碼:336
- 紙張:
- 版次:01
- 開本:16開
本書全面介紹了MCP(模型上下文協(xié)議)及其開發(fā)與應(yīng)用技術(shù)。本書首先系統(tǒng)地介紹了MCP與智能體的基礎(chǔ)概念,讓讀者了解MCP在智能體架構(gòu)中的角色,然后深入剖析了MCP的工作原理、傳輸模式與核心設(shè)計(jì)。本書也提供了詳細(xì)的開發(fā)指南,手把手教讀者使用SDK從零開始搭建MCP客戶端與MCP服務(wù)端,完成基本功能的開發(fā)與調(diào)試,在高級(jí)開發(fā)技巧部分,也介紹了MCP中的高級(jí)概念及高級(jí)開發(fā)技巧。最后,本書用大量篇幅指導(dǎo)讀者基于MCP開發(fā)智能體,包含了典型場(chǎng)景與主流開發(fā)框架下的多個(gè)實(shí)戰(zhàn)案例,助力讀者將理論與實(shí)踐相結(jié)合,構(gòu)建具備可擴(kuò)展性與高性能的智能體系統(tǒng)。
嚴(yán)燦平,先后就職于聯(lián)創(chuàng)(后與亞信科技合并)擔(dān)任軟件工程師與設(shè)計(jì)師,甲骨文中國(Oracle)擔(dān)任中國區(qū)企業(yè)架構(gòu)部首席架構(gòu)師,上;蹎栃畔⒖萍加邢薰緭(dān)任合伙人兼技術(shù)總監(jiān)。現(xiàn)為獨(dú)立IT咨詢顧問,公眾號(hào)“AI大模型應(yīng)用實(shí)踐”主理人。擁有超過20年的企業(yè)軟件從業(yè)經(jīng)驗(yàn),專注于企業(yè)軟件架構(gòu)設(shè)計(jì)、互聯(lián)網(wǎng)時(shí)代傳統(tǒng)行業(yè)的IT轉(zhuǎn)型、人工智能與大數(shù)據(jù)技術(shù)在企業(yè)應(yīng)用的創(chuàng)新等。
第1章 認(rèn)識(shí)AI智能體與MCP 1
1.1 走進(jìn)AI智能體時(shí)代 1
1.1.1 智能體的起源 1
1.1.2 大模型時(shí)代的智能體 2
1.1.3 兩種類型的智能體系統(tǒng) 4
1.1.4 智能體的挑戰(zhàn)與趨勢(shì) 6
1.2 初步認(rèn)識(shí)MCP 7
1.2.1 智能體時(shí)代AI應(yīng)用集成的挑戰(zhàn) 7
1.2.2 MCP:一種新的AI應(yīng)用集成標(biāo)準(zhǔn) 9
1.2.3 基于MCP的集成架構(gòu) 11
1.3 從第一個(gè)MCP示例開始 14
1.3.1 開發(fā)環(huán)境與設(shè)置 14
1.3.2 第一個(gè)MCP示例 17
第2章 揭秘MCP規(guī)范與原理 22
2.1 總體架構(gòu) 23
2.2 消息規(guī)范:互操作的基礎(chǔ) 24
2.2.1 什么是JSON-RPC 2.0 24
2.2.2 理解基于JSON-RPC 2.0的遠(yuǎn)程調(diào)用 26
2.3 通信機(jī)制:基于HTTP的遠(yuǎn)程通信 28
2.3.1 無狀態(tài)HTTP Post的不足 28
2.3.2 詳解MCP的SSE通信機(jī)制 30
2.4 通信機(jī)制:基于stdio的本地通信 38
2.4.1 stdio通信的基本原理 39
2.4.2 模擬實(shí)現(xiàn)stdio模式的服務(wù)端 39
2.5 MCP架構(gòu)下的會(huì)話生命周期 41
2.5.1 連接與初始化 41
2.5.2 交互與調(diào)用 43
2.5.3 連接關(guān)閉 44
2.6 服務(wù)端功能 44
2.6.1 工具(Tools):可執(zhí)行的復(fù)雜邏輯 45
2.6.2 資源(Resources):動(dòng)態(tài)的上下文信息 51
2.6.3 提示(Prompts):預(yù)置的模板 57
2.7 MCP客戶端功能 62
2.7.1 Roots:控制服務(wù)端的訪問范圍 62
2.7.2 Sampling:控制LLM的安全使用 65
2.8 MCP規(guī)范總結(jié)客戶端 69
第3章 基于SDK開發(fā)服務(wù)端 71
3.1 認(rèn)識(shí)MCP SDK 71
3.1.1 關(guān)于MCP SDK及準(zhǔn)備 71
3.1.2 了解MCP SDK的層次結(jié)構(gòu) 72
3.2 使用FastMCP開發(fā)服務(wù)端 74
3.2.1 創(chuàng)建FastMCP Server實(shí)例 74
3.2.2 開發(fā)工具(Tools)功能 75
3.2.3 開發(fā)資源(Resources)功能 80
3.2.4 開發(fā)提示(Prompts)功能 82
3.2.5 啟動(dòng)服務(wù)端 85
3.3 服務(wù)端的調(diào)試、跟蹤與部署 89
3.3.1 調(diào)試與跟蹤服務(wù)端 89
3.3.2 部署MCP遠(yuǎn)程服務(wù)端 99
第4章 基于SDK開發(fā)客戶端 106
4.1 用Python庫模擬客戶端 106
4.1.1 模擬遠(yuǎn)程模式(HTTP)客戶端 107
4.1.2 模擬本地模式(stdio)客戶端 116
4.2 基于SDK開發(fā)客戶端 120
4.2.1 實(shí)戰(zhàn)準(zhǔn)備 - 通用的MCP測(cè)試客戶端 120
4.2.2 遠(yuǎn)程連接與初始化 121
4.2.3 本地連接與初始化 123
4.2.4 工具的發(fā)現(xiàn)與調(diào)用 124
4.2.5 資源的發(fā)現(xiàn)與調(diào)用 127
4.2.6 提示(Prompts)的發(fā)現(xiàn)與調(diào)用 130
4.2.7 優(yōu)化 - 緩存服務(wù)端功能列表 132
4.3 MCP SDK開發(fā)小結(jié) 135
第5章 MCP高級(jí)開發(fā)技巧 136
5.1 基于低層SDK開發(fā)服務(wù)端 136
5.1.1 創(chuàng)建低層Server實(shí)例 137
5.1.2 開發(fā)與注冊(cè)服務(wù)端功能 137
5.1.3 啟動(dòng)低層Server實(shí)例 141
5.2 使用生命周期管理器lifespan 145
5.2.1 預(yù)備知識(shí):上下文管理器 145
5.2.2 生命周期管理器 147
5.2.3 在Server實(shí)例中使用lifespan 148
5.2.4 在Starlette實(shí)例中使用lifespan(SSE模式) 153
5.3 實(shí)現(xiàn)應(yīng)用層的ping機(jī)制 155
5.3.1 預(yù)備知識(shí):服務(wù)端的ServerSession 155
5.3.2 ping請(qǐng)求的消息格式 157
5.3.3 實(shí)現(xiàn)ServerSession的ping任務(wù) 157
5.3.4 驗(yàn)證ping機(jī)制 162
5.4. 服務(wù)端通知(Notification)的應(yīng)用 164
5.4.1 認(rèn)識(shí)通知 164
5.4.2 常見的通知類型 165
5.4.3 實(shí)現(xiàn)列表變更通知 166
5.4.4 實(shí)現(xiàn)服務(wù)端任務(wù)的“進(jìn)度條” 175
5.5 實(shí)現(xiàn)服務(wù)端的工具調(diào)用緩存 181
5.5.1 實(shí)現(xiàn)服務(wù)端的工具緩存類 182
5.5.2 用裝飾器給工具增加緩存 186
5.5.3 測(cè)試服務(wù)端工具緩存 189
5.6 切換WebSocket的傳輸層 191
5.6.1 服務(wù)端WebSocket傳輸?shù)膶?shí)現(xiàn) 191
5.6.2 客戶端WebSocket連接的實(shí)現(xiàn) 193
5.6.3 測(cè)試WebSocket傳輸模式 194
5.7 客戶端功能(Sampling等)的應(yīng)用 195
5.7.1 實(shí)現(xiàn)客戶端Roots與Sampling功能 196
1.Roots回調(diào)函數(shù) 196
5.7.2 服務(wù)端調(diào)用客戶端Sampling功能 199
5.7.3 測(cè)試客戶端Sampling的調(diào)用 201
5.8 服務(wù)端的安全機(jī)制 203
5.8.1 基于安全Token的認(rèn)證 204
5.8.2 基于OAuth的安全授權(quán) 205
第6章 基于MCP開發(fā)智能體系統(tǒng) 206
6.1 發(fā)現(xiàn)與配置社區(qū)MCP服務(wù) 206
6.1.1 發(fā)現(xiàn)社區(qū)共享的MCP服務(wù) 207
6.1.2 如何獲取、安裝與運(yùn)行 208
6.1.3 在客戶端配置與使用 210
6.2 集成大模型與MCP服務(wù) 213
6.2.1 準(zhǔn)備:多MCP服務(wù)端連接管理組件 214
6.2.2 集成函數(shù)調(diào)用(Function Calling)與MCP服務(wù) 219
6.3 集成智能體開發(fā)框架與MCP服務(wù) 226
6.3.1 集成LangGraph與MCP服務(wù) 227
6.3.2 其他主流的智能體框架與MCP集成 233
6.4 實(shí)戰(zhàn):基于MCP架構(gòu)的多文檔Agentic RAG系統(tǒng) 239
6.4.1 整體架構(gòu)設(shè)計(jì) 239
6.4.2 實(shí)現(xiàn)服務(wù)端 241
6.4.3 實(shí)現(xiàn)客戶端的智能體 248
6.4.4 效果測(cè)試 253
6.4.5 后續(xù)優(yōu)化空間 258
6.5 實(shí)戰(zhàn):基于MCP架構(gòu)的多智能體系統(tǒng) 259
6.5.1 整體架構(gòu)設(shè)計(jì) 260
6.5.2 MCP服務(wù)端準(zhǔn)備 261
6.5.3 智能體準(zhǔn)備 264
6.5.4 構(gòu)建多智能體工作流 268
6.5.5 客戶端(支持API模式) 274
6.5.6 效果測(cè)試 276
6.5.7 后續(xù)優(yōu)化空間 280
第7章 解讀新版MCP規(guī)范與未來展望 282
7.1 新的Streamable HTTP遠(yuǎn)程傳輸模式 282
7.2 引入基于OAuth 2.1的授權(quán)框架 286
7.3 支持JSON-RPC批處理 290
7.4 增加工具注解信息 292
7.5 增強(qiáng)其他方面的功能 295
7.5.1 在進(jìn)度通知中增加message描述字段 295
7.5.2 新增音頻數(shù)據(jù)類型支持 296
7.5.3 新增自動(dòng)補(bǔ)全能力標(biāo)識(shí) 297
7.6 對(duì)MCP的未來展望 298