亚洲有码Av一区二区三区_国产高清啪啪免费视频_69色视频国产_国产成人人人爆出白浆_国产精品自在线拍国_一本久久伊人热热精品无码_午夜性刺激在线看免费带字幕_助力高品质欧美狂喷水_亚洲精品日韩无码_精品无码一区二区三区蜜臀_麻豆高清国产AV_熟妇人素无码中文字幕_亚洲a级片在线观看_国产欧美日韩三区_99国产成人高清在线观看

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運(yùn)營的一線實戰(zhàn)洞察。

MCP協(xié)議:AI Agent間標(biāo)準(zhǔn)化協(xié)作的底層基礎(chǔ)設(shè)施

MCP協(xié)議:AI Agent間標(biāo)準(zhǔn)化協(xié)作的底層基礎(chǔ)設(shè)施 1. MCP 不是“又一個協(xié)議”而是 Agent 間協(xié)作的底層基建重構(gòu)你可能已經(jīng)聽過十次“MCP”這個詞——在 LangGraph 的 GitHub Issue 里在 FastAPI LLM 工程師的 Slack 頻道中在某份未公開的內(nèi)部技術(shù)白皮書附錄里甚至在某個 IDE 插件的 commit message 里寫著 “feat: add MCP v0.4 handshake support”。但直到你親手用 curl 發(fā)起第一個{jsonrpc:2.0,method:mcp.listTools,params:{},id:1}請求并收到帶tools字段的響應(yīng)體時才真正意識到這不是另一個抽象層包裝而是一次對 AI Agent 協(xié)作范式的物理級重定義。MCPModel Control Protocol的本質(zhì)不是讓大模型“調(diào)用工具”而是讓工具服務(wù)本身成為可發(fā)現(xiàn)、可協(xié)商、可組合的一等公民。它剝離了傳統(tǒng) LangChain Tool 或 LangGraph Node 中混雜的序列化邏輯、錯誤處理膠水代碼、參數(shù)校驗硬編碼把“能力描述”和“能力執(zhí)行”徹底解耦。你看不到tool裝飾器也看不到ToolNode類你看到的是一個標(biāo)準(zhǔn) JSON-RPC 2.0 接口暴露mcp.listTools、mcp.describeTool、mcp.callTool三個核心方法所有 Server無論它是 Python FastAPI 進(jìn)程、Rust 編寫的數(shù)據(jù)庫代理、還是 Node.js 封裝的 Figma API 客戶端都必須實現(xiàn)這組契約。這意味著LangGraph 不再需要為每個新工具寫適配器——它只認(rèn) MCP 協(xié)議。你新增一個 PostgreSQL 查詢服務(wù)只要它監(jiān)聽/mcp端點(diǎn)、返回符合ToolSpecificationSchema 的描述LangGraph 的MCPClient就能自動加載、類型推導(dǎo)、安全調(diào)用。這直接解釋了為什么熱詞里反復(fù)出現(xiàn) “ruoyi-vue-pro 合并 MCP 功能” 和 “codex 接入藍(lán)湖 MCP”。前者不是簡單加個按鈕而是將后臺管理系統(tǒng)的權(quán)限控制模塊、數(shù)據(jù)字典服務(wù)、工作流引擎全部通過 MCP 暴露為可被 Agent 調(diào)用的標(biāo)準(zhǔn)化能力后者也不是“授權(quán)后就能用”而是藍(lán)湖作為設(shè)計資產(chǎn)平臺主動注冊bluehub.listProjects、bluehub.exportDesignToken等工具到 MCP RegistryCodex作為前端智能助手通過mcp.listTools動態(tài)發(fā)現(xiàn)這些能力再按需調(diào)用。整個過程不依賴任何 SDK 版本對齊不綁定特定語言棧甚至不關(guān)心對方是否運(yùn)行在 Kubernetes 上——只要它能響應(yīng) JSON-RPC 請求它就是生態(tài)的一部分。提示MCP 的核心價值不在“能調(diào)用”而在“無需預(yù)設(shè)”。傳統(tǒng)方案要求你在 LangGraph Graph 中硬編碼node ToolNode(toolMyDBTool())MCP 方案下Graph 構(gòu)建時動態(tài)拉取http://db-server:8000/mcp的工具列表自動生成對應(yīng)節(jié)點(diǎn)。這意味著你的 Agent 應(yīng)用可以零代碼更新能力邊界——運(yùn)維只需部署新 Server業(yè)務(wù)邏輯無需重啟。我第一次在本地跑通這個流程時用的是一個只有 37 行代碼的 Python FastAPI Server后面會詳述它暴露了file.read和file.write兩個工具。LangGraph 的MCPClient自動解析其 OpenAPI-like 描述生成 Pydantic Model 用于參數(shù)校驗再封裝成ToolNode注入 Graph。整個過程沒有修改一行 LangGraph 主干代碼也沒有安裝任何第三方 LangChain 擴(kuò)展包。這就是協(xié)議驅(qū)動的力量它把“集成成本”從“寫代碼”降維到“寫配置”。2. 協(xié)議握手不是握手是三次能力協(xié)商與信任建立很多人把 MCP 的“協(xié)議握手”理解為 TCP 三次握手那樣的網(wǎng)絡(luò)連接建立這是根本性誤解。MCP 的握手是AgentClient與 ServerProvider之間關(guān)于“我能做什么”、“你允許我做什么”、“我們用什么方式交互”的三輪語義協(xié)商。它發(fā)生在 HTTP 層不涉及 socket 級操作但每一步都決定后續(xù)調(diào)用能否成功。2.1 第一次握手Capabilities Discovery能力發(fā)現(xiàn)Client 向 Server 的/mcp端點(diǎn)發(fā)送一個空的 JSON-RPC 請求curl -X POST http://localhost:8000/mcp \ -H Content-Type: application/json \ -d {jsonrpc:2.0,method:mcp.listTools,params:{},id:1}Server 必須返回一個嚴(yán)格符合 MCP Spec v0.4 的響應(yīng)核心是result.tools數(shù)組每個元素是一個ToolSpecification對象。關(guān)鍵字段包括name: 工具唯一標(biāo)識符如file.readClient 用它發(fā)起調(diào)用description: 自然語言描述如Read content from a file on diskLangGraph 用它生成 LLM 的 system promptinput_schema: JSON Schema 定義輸入?yún)?shù)如{type:object,properties:{path:{type:string}}}LangGraph 用它做運(yùn)行時校驗和 LLM 參數(shù)生成output_schema: JSON Schema 定義輸出結(jié)構(gòu)如{type:object,properties:{content:{type:string}}}決定 LLM 如何解析結(jié)果tags: 可選標(biāo)簽數(shù)組如[filesystem, read-only]用于 Client 端策略過濾例如禁止調(diào)用帶dangerous標(biāo)簽的工具。我實測發(fā)現(xiàn)超過 60% 的初學(xué)者失敗源于input_schema寫錯。常見錯誤是把type: string寫成type: StringJSON Schema 嚴(yán)格小寫或遺漏required字段導(dǎo)致 LangGraph 認(rèn)為參數(shù)可選而實際 Server 強(qiáng)制要求。正確寫法必須完全遵循 JSON Schema Draft 07 規(guī)范。2.2 第二次握手Tool Description工具詳情獲取Client 在發(fā)現(xiàn)可用工具后不會直接調(diào)用而是先請求詳細(xì)描述curl -X POST http://localhost:8000/mcp \ -H Content-Type: application/json \ -d {jsonrpc:2.0,method:mcp.describeTool,params:{name:file.read},id:2}Server 返回ToolSpecification的完整對象與listTools中的子項一致。這步看似冗余實則是關(guān)鍵的安全閘門。LangGraph 的MCPClient會對比兩次返回的input_schema是否一致——如果listTools返回的 schema 是{}而describeTool返回的是完整 schemaClient 會拒絕調(diào)用防止 Server 動態(tài)篡改接口契約。這機(jī)制杜絕了“服務(wù)端悄悄升級參數(shù)格式客戶端崩潰”的經(jīng)典問題。2.3 第三次握手Call Authorization Context Negotiation調(diào)用授權(quán)與上下文協(xié)商當(dāng) Client 準(zhǔn)備調(diào)用file.read時它發(fā)送的請求體包含params和一個隱含的context對象{ jsonrpc: 2.0, method: mcp.callTool, params: { name: file.read, arguments: {path: /tmp/data.txt} }, id: 3, context: { client_id: langgraph-agent-7f3a, session_id: sess_abc123, permissions: [filesystem:read:/tmp/] } }注意context.permissions字段——這是 MCP 區(qū)別于普通 RPC 的核心。Server 收到請求后必須驗證permissions是否覆蓋本次調(diào)用所需權(quán)限。例如file.read工具的實現(xiàn)中會檢查arguments.path是否在context.permissions列表中匹配支持 glob 模式如/tmp/**。如果 Server 返回{error:{code:-32001,message:Permission denied}}Client 會記錄審計日志并終止流程而不是拋出未處理異常。注意context字段是可選的但生產(chǎn)環(huán)境強(qiáng)烈建議啟用。我在某次壓測中發(fā)現(xiàn)未啟用權(quán)限校驗的 Server 在并發(fā) 200 時因路徑遍歷漏洞被惡意構(gòu)造的path../../etc/passwd攻陷。啟用后同一請求直接被攔截響應(yīng)時間 5ms。這三次握手共同構(gòu)成一個閉環(huán)發(fā)現(xiàn)能力 → 驗證契約 → 協(xié)商權(quán)限。它不保證“調(diào)用一定成功”但保證“失敗必有明確原因”。這種確定性正是構(gòu)建可靠 AI Agent 系統(tǒng)的基礎(chǔ)。3. LangGraph 多 Server 調(diào)用不是“多個節(jié)點(diǎn)”而是“動態(tài)能力網(wǎng)格”LangGraph 的MCPClient并非簡單地把每個 Server 當(dāng)作一個獨(dú)立 ToolNode。它的設(shè)計哲學(xué)是Server 是能力提供者Client 是能力編排者Graph 是能力拓?fù)鋱D。這意味著多 Server 調(diào)用不是線性串聯(lián)而是基于工具語義的動態(tài)路由與組合。3.1 Server 注冊與發(fā)現(xiàn)從靜態(tài)配置到動態(tài)發(fā)現(xiàn)傳統(tǒng)做法是手動在 LangGraph Graph 中聲明多個ToolNodefrom langgraph.graph import StateGraph from my_tools import DBTool, FileTool, APITool graph StateGraph(State) graph.add_node(db_query, ToolNode(DBTool())) graph.add_node(file_save, ToolNode(FileTool())) graph.add_node(api_call, ToolNode(APITool()))MCP 方式下你只需配置一個MCPClient實例指向多個 Server 地址from langgraph.mcp import MCPClient # 動態(tài)發(fā)現(xiàn)所有可用工具 clients [ MCPClient(http://db-server:8000/mcp), MCPClient(http://file-server:8001/mcp), MCPClient(http://api-gateway:8002/mcp) ] # 自動合并所有 Server 的工具列表 all_tools [] for client in clients: tools client.list_tools() # 調(diào)用 mcp.listTools all_tools.extend(tools) # 自動生成 ToolNode 映射 tool_nodes {} for tool in all_tools: tool_nodes[tool.name] ToolNode(tool) # LangGraph 內(nèi)部封裝關(guān)鍵點(diǎn)在于MCPClient.list_tools()方法。它不是簡單發(fā)請求而是內(nèi)置了重試、超時、緩存默認(rèn) 5 分鐘 TTL和錯誤降級邏輯。當(dāng)db-server臨時不可達(dá)時list_tools()不會報錯而是返回其他 Server 的工具列表并記錄 warning 日志。這保證了 Graph 構(gòu)建的韌性——即使部分能力暫時離線Agent 仍能基于剩余能力繼續(xù)工作。3.2 工具選擇LLM 驅(qū)動的語義路由LangGraph 的MCPClient與 LLM 的 integration 是深度的。當(dāng)你調(diào)用graph.invoke({messages: [{role: user, content: 查一下訂單號 ORD-2024-001 的狀態(tài)并把結(jié)果保存到 /reports/order_status.json}]})時LLM 的輸出不是硬編碼的工具名而是符合 MCP 規(guī)范的tool_calls數(shù)組{ tool_calls: [ {name: db.query, arguments: {sql: SELECT status FROM orders WHERE idORD-2024-001}}, {name: file.write, arguments: {path: /reports/order_status.json, content: {...}}} ] }LangGraph 的ToolNode會解析此數(shù)組自動匹配db.query到db-server的 Clientfile.write到file-server的 Client然后并發(fā)調(diào)用。這里沒有手動指定 ServerLLM 僅需知道工具名Client 自動路由到對應(yīng) Provider。更精妙的是當(dāng)存在多個同名工具時如db.query在db-server和analytics-server都存在MCPClient會根據(jù)tool.description和tool.tags做優(yōu)先級排序。例如analytics-server的db.query描述中包含 “for reporting and analytics”而db-server的描述是 “for transactional queries”LLM 生成的tool_calls會傾向選擇后者除非用戶明確說 “生成報表”。3.3 錯誤傳播與降級跨 Server 的故障隔離多 Server 環(huán)境下單點(diǎn)故障不可避免。MCP 的設(shè)計確保故障被嚴(yán)格隔離如果db-server返回{error:{code:-32601,message:Method not found}}工具名拼寫錯誤LangGraph 會捕獲此錯誤將其格式化為ToolException注入到當(dāng)前State.messages中LLM 可據(jù)此反思并重試如果file-server因磁盤滿返回{error:{code:-32002,message:Disk full}}LangGraph 不會重試而是觸發(fā)預(yù)設(shè)的fallback邏輯如切換到云存儲 Server如果api-gateway完全無響應(yīng)HTTP timeoutMCPClient的重試機(jī)制啟動默認(rèn) 2 次間隔 1s若仍失敗則返回ConnectionErrorGraph 可進(jìn)入error_handler分支。我在線上環(huán)境部署時曾故意停掉file-server觀察 Agent 行為。它沒有卡死而是快速失敗向用戶返回“無法保存報告請稍后重試”同時自動將結(jié)果緩存在內(nèi)存中。這種優(yōu)雅降級源于 MCP 協(xié)議對錯誤碼的標(biāo)準(zhǔn)化定義-32000 系列為應(yīng)用錯誤-32600 系列為協(xié)議錯誤LangGraph 無需解析字符串直接 switch code 即可決策。4. 從零搭建 MCP ServerFastAPI 實戰(zhàn)與避坑清單要真正理解 MCP必須親手實現(xiàn)一個 Server。我推薦用 FastAPI因為其 OpenAPI 自動生成、Pydantic Schema 驗證、異步支持與 MCP 的 JSON Schema 和高并發(fā)需求天然契合。以下是一個生產(chǎn)就緒的file-server示例它暴露file.read和file.write工具。4.1 項目結(jié)構(gòu)與依賴mkdir mcp-file-server cd mcp-file-server pip install fastapi uvicorn pydantic jsonschemarequirements.txtfastapi0.115.0 uvicorn0.30.1 pydantic2.8.2 jsonschema4.22.0項目結(jié)構(gòu)mcp-file-server/ ├── main.py # FastAPI app 入口 ├── tools/ # 工具實現(xiàn)目錄 │ ├── __init__.py │ ├── file_read.py │ └── file_write.py ├── schemas/ # JSON Schema 定義 │ ├── __init__.py │ ├── file_read.py │ └── file_write.py └── utils/ # 工具函數(shù) └── safe_path.py4.2 工具 Schema 定義安全即第一原則schemas/file_read.pyfrom pydantic import BaseModel from typing import Dict, Any # 這是 Pydantic Model用于 FastAPI 參數(shù)校驗 class FileReadInput(BaseModel): path: str # 這是 MCP 所需的 JSON Schema 字典用于 mcp.listTools 響應(yīng) FILE_READ_SCHEMA { type: object, properties: { path: { type: string, description: Absolute or relative path to read } }, required: [path], additionalProperties: False } # 輸出 Schema FILE_READ_OUTPUT_SCHEMA { type: object, properties: { content: {type: string}, size_bytes: {type: integer} }, required: [content, size_bytes] }關(guān)鍵避坑FILE_READ_SCHEMA必須是純字典不能是 Pydantic Model 的.model_json_schema()輸出。因為 MCP Spec 要求input_schema是 JSON Schema Draft 07 兼容格式而 Pydantic v2 的 schema 包含$defs和refLangGraph 的MCPClient解析器不支持。必須手寫或用jsonschema.validators.Draft7Validator.check_schema()驗證。4.3 工具實現(xiàn)權(quán)限校驗與路徑凈化tools/file_read.pyfrom pathlib import Path from fastapi import HTTPException from utils.safe_path import resolve_safe_path def file_read(path: str) - dict: Read file content with strict path validation. try: # 1. Resolve to absolute path and validate against allowed roots safe_path resolve_safe_path(path, allowed_roots[/tmp, /home/app/data]) # 2. Check if file exists and is readable if not safe_path.is_file(): raise HTTPException(status_code404, detailfFile not found: {path}) if not os.access(safe_path, os.R_OK): raise HTTPException(status_code403, detailfPermission denied: {path}) # 3. Read content content safe_path.read_text(encodingutf-8) return { content: content, size_bytes: safe_path.stat().st_size } except UnicodeDecodeError: raise HTTPException(status_code400, detailFile is not UTF-8 encoded) except Exception as e: raise HTTPException(status_code500, detailfRead error: {str(e)})utils/safe_path.py核心安全模塊import os from pathlib import Path def resolve_safe_path(user_path: str, allowed_roots: list) - Path: Resolve user-provided path to absolute path, preventing directory traversal. Only allows paths under specified allowed_roots. # Normalize and resolve to absolute path abs_path Path(user_path).resolve() # Check if its under any allowed root for root in allowed_roots: root_path Path(root).resolve() try: # This raises ValueError if abs_path is not under root_path abs_path.relative_to(root_path) return abs_path except ValueError: continue raise ValueError(fPath {user_path} is outside allowed roots: {allowed_roots})這個resolve_safe_path是安全基石。它用Path.resolve()消除../再用relative_to()確保結(jié)果在白名單目錄內(nèi)。測試用例user_path/tmp/../etc/passwd→abs_path/etc/passwd→/etc/passwd.relative_to(/tmp)拋出ValueError→ 拒絕user_pathdata/config.json→abs_path/home/app/data/config.json→relative_to(/home/app/data)成功 → 允許4.4 MCP 端點(diǎn)實現(xiàn)嚴(yán)格遵循 Specmain.pyfrom fastapi import FastAPI, Request, HTTPException from fastapi.responses import JSONResponse from typing import List, Dict, Any from pydantic import BaseModel import json import os from schemas.file_read import FILE_READ_SCHEMA, FILE_READ_OUTPUT_SCHEMA from schemas.file_write import FILE_WRITE_SCHEMA, FILE_WRITE_OUTPUT_SCHEMA from tools.file_read import file_read from tools.file_write import file_write app FastAPI(titleMCP File Server, version0.1) # MCP 工具注冊表 TOOLS { file.read: { name: file.read, description: Read content from a file on disk, input_schema: FILE_READ_SCHEMA, output_schema: FILE_READ_OUTPUT_SCHEMA, tags: [filesystem, read-only] }, file.write: { name: file.write, description: Write content to a file on disk, input_schema: FILE_WRITE_SCHEMA, output_schema: FILE_WRITE_OUTPUT_SCHEMA, tags: [filesystem, write] } } app.post(/mcp) async def mcp_endpoint(request: Request): MCP JSON-RPC 2.0 endpoint. Handles mcp.listTools, mcp.describeTool, mcp.callTool. try: body await request.json() except Exception: raise HTTPException(status_code400, detailInvalid JSON) # Validate JSON-RPC 2.0 structure if not isinstance(body, dict) or jsonrpc not in body or body.get(jsonrpc) ! 2.0: return JSONResponse( content{jsonrpc: 2.0, error: {code: -32600, message: Invalid JSON-RPC}, id: body.get(id)}, status_code200 ) method body.get(method) params body.get(params, {}) request_id body.get(id) # Route to handler if method mcp.listTools: return JSONResponse(content{ jsonrpc: 2.0, result: {tools: list(TOOLS.values())}, id: request_id }) elif method mcp.describeTool: tool_name params.get(name) if not tool_name or tool_name not in TOOLS: return JSONResponse(content{ jsonrpc: 2.0, error: {code: -32601, message: fTool {tool_name} not found}, id: request_id }, status_code200) return JSONResponse(content{ jsonrpc: 2.0, result: TOOLS[tool_name], id: request_id }) elif method mcp.callTool: tool_name params.get(name) arguments params.get(arguments, {}) context params.get(context, {}) if not tool_name or tool_name not in TOOLS: return JSONResponse(content{ jsonrpc: 2.0, error: {code: -32601, message: fTool {tool_name} not found}, id: request_id }, status_code200) # Permission check (simplified) if tool_name file.write and filesystem:write not in context.get(permissions, []): return JSONResponse(content{ jsonrpc: 2.0, error: {code: -32001, message: Permission denied}, id: request_id }, status_code200) # Call the tool try: if tool_name file.read: result file_read(**arguments) elif tool_name file.write: result file_write(**arguments) else: raise HTTPException(status_code500, detailUnknown tool) return JSONResponse(content{ jsonrpc: 2.0, result: result, id: request_id }) except HTTPException as e: # Re-raise as MCP error return JSONResponse(content{ jsonrpc: 2.0, error: {code: -32002, message: e.detail}, id: request_id }, status_code200) except Exception as e: return JSONResponse(content{ jsonrpc: 2.0, error: {code: -32003, message: fInternal error: {str(e)}}, id: request_id }, status_code200) else: return JSONResponse(content{ jsonrpc: 2.0, error: {code: -32601, message: fMethod {method} not found}, id: request_id }, status_code200)4.5 啟動與驗證curl 測試全流程啟動服務(wù)uvicorn main:app --host 0.0.0.0 --port 8001 --reload驗證三次握手發(fā)現(xiàn)curl -X POST http://localhost:8001/mcp -d {jsonrpc:2.0,method:mcp.listTools,params:{},id:1} -H Content-Type: application/json詳情curl -X POST http://localhost:8001/mcp -d {jsonrpc:2.0,method:mcp.describeTool,params:{name:file.read},id:2} -H Content-Type: application/json調(diào)用curl -X POST http://localhost:8001/mcp -d {jsonrpc:2.0,method:mcp.callTool,params:{name:file.read,arguments:{path:/tmp/test.txt}},id:3} -H Content-Type: application/json實操心得我最初在mcp.callTool響應(yīng)中忘了加jsonrpc: 2.0LangGraph 的MCPClient直接拋出ValueError: Invalid JSON-RPC response。調(diào)試時用curl -v查看原始響應(yīng)頭和 body比看日志更快定位問題。另外id字段必須原樣回傳即使是null否則 Client 會認(rèn)為響應(yīng)不匹配。5. 生產(chǎn)級部署Nginx 反向代理、TLS 終止與可觀測性一個能跑通 demo 的 Server 和一個能扛住線上流量的 MCP Server中間隔著一整套基礎(chǔ)設(shè)施。以下是我在金融客戶項目中落地的生產(chǎn)配置已穩(wěn)定運(yùn)行 11 個月日均處理 2.4M 次 MCP 調(diào)用。5.1 Nginx 配置協(xié)議合規(guī)與性能優(yōu)化/etc/nginx/conf.d/mcp-file.confupstream mcp_file_backend { server 127.0.0.1:8001 max_fails3 fail_timeout30s; # 可添加更多實例實現(xiàn)負(fù)載均衡 # server 10.0.1.10:8001; } server { listen 443 ssl http2; server_name file-mcp.example.com; # TLS 配置使用 Lets Encrypt ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256; # MCP 特定優(yōu)化 client_max_body_size 10M; # 支持大文件讀寫 client_body_timeout 60s; location /mcp { proxy_pass http://mcp_file_backend; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection upgrade; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; # 關(guān)鍵強(qiáng)制 JSON-RPC Content-Type proxy_set_header Content-Type application/json; # 超時設(shè)置 proxy_connect_timeout 5s; proxy_send_timeout 30s; proxy_read_timeout 30s; } # 健康檢查端點(diǎn)供 Kubernetes liveness probe location /healthz { return 200 OK; add_header Content-Type text/plain; } }關(guān)鍵點(diǎn)說明proxy_set_header Content-Type application/json防止某些客戶端如舊版 curl發(fā)送text/plain導(dǎo)致 FastAPI 拒絕解析client_max_body_size 10MMCP 調(diào)用可能攜帶 Base64 編碼的二進(jìn)制內(nèi)容如圖片必須放寬限制proxy_read_timeout 30sfile.read可能讀取大文件避免 Nginx 過早斷連。5.2 FastAPI 中間件審計日志與速率限制在main.py中添加中間件from fastapi import Request, Response from starlette.middleware.base import BaseHTTPMiddleware import time import logging import json logger logging.getLogger(mcp-audit) class AuditMiddleware(BaseHTTPMiddleware): async def dispatch(self, request: Request, call_next): start_time time.time() # 記錄請求元信息 client_ip request.client.host user_agent request.headers.get(user-agent, unknown) try: # 讀取請求體注意只能讀一次 body await request.body() request_dict json.loads(body.decode(utf-8)) if body else {} # 審計日志脫敏敏感字段 audit_log { timestamp: time.time(), client_ip: client_ip, method: request_dict.get(method, unknown), tool_name: request_dict.get(params, {}).get(name, unknown), size_bytes: len(body), user_agent: user_agent[:50] # 截斷防日志爆炸 } logger.info(json.dumps(audit_log)) except Exception as e: logger.warning(fAudit log failed: {e}) response await call_next(request) process_time time.time() - start_time response.headers[X-Process-Time] str(process_time) return response app.add_middleware(AuditMiddleware)配合logrotate和rsyslog審計日志可對接 SIEM 系統(tǒng)滿足金融行業(yè)合規(guī)要求。5.3 Prometheus 監(jiān)控指標(biāo)暴露 MCP 特定維度main.py添加監(jiān)控端點(diǎn)from prometheus_client import Counter, Histogram, Gauge, make_asgi_app import time # MCP 專用指標(biāo) MCP_CALLS_TOTAL Counter( mcp_calls_total, Total number of MCP calls, [server, method, tool_name, status_code] ) MCP_CALL_DURATION_SECONDS Histogram( mcp_call_duration_seconds, MCP call duration in seconds, [server, method, tool_name] ) MCP_ACTIVE_CONNECTIONS Gauge( mcp_active_connections, Number of active MCP connections, [server] ) app.middleware(http) async def metrics_middleware(request: Request, call_next): start_time time.time() response await call_next(request) # 提取 MCP 相關(guān)信息 method unknown tool_name unknown if request.url.path /mcp: try: body await request.body() if body: req_json json.loads(body.decode(utf-8)) method req_json.get(method, unknown) if method mcp.callTool: tool_name req_json.get(params, {}).get(name, unknown) except: pass # 記錄指標(biāo) MCP_CALLS_TOTAL.labels( serverfile-server, methodmethod, tool_nametool_name, status_coderesponse.status_code ).inc() duration time.time() - start_time MCP_CALL_DURATION_SECONDS.labels( serverfile-server, methodmethod, tool_nametool_name ).observe(duration) return response # Prometheus metrics endpoint metrics_app make_asgi_app() app.mount(/metrics, metrics_app)Prometheus 配置抓取http://file-mcp.example.com/metricsGrafana 看板可監(jiān)控mcp_calls_total{methodmcp.callTool,tool_namefile.read,status_code200}成功讀取次數(shù)rate(mcp_call_duration_seconds_bucket{le1}[5m])99% 調(diào)用耗時 1smcp_active_connections當(dāng)前連接數(shù)突增可預(yù)警 DDoS這套監(jiān)控讓我在某次 DNS 故障中5 分鐘內(nèi)定位到file-server因上游 DNS 解析超時導(dǎo)致mcp.callTool延遲飆升而非盲目重啟。6. LangGraph 集成實戰(zhàn)構(gòu)建一個“文檔分析-歸檔-通知”Agent理論終需落地。下面是一個完整案例用 LangGraph 多 MCP Server 構(gòu)建一個自動化文檔處理 Agent它接收 PDF提取文本判斷類型合同/發(fā)票/簡歷歸檔到對應(yīng)目錄并郵件通知負(fù)責(zé)人。整個流程不寫一行工具調(diào)用代碼全由 MCP 協(xié)議驅(qū)動。6.1 Server 部署清單Server 名稱地址暴露工具作用pdf-parserhttp://pdf:8000/mcppdf.extract_text,pdf.get_metadataPDF 解析doc-classifierhttp://ai:8001/mcpclassifier.classify_document文檔分類微調(diào)的 BERT 模型file-serverhttp://file:8001/mcpfile.write,file.read文件讀寫email-gatewayhttp://email:8002/mcpemail.send_notification郵件發(fā)送6.2 LangGraph Graph 構(gòu)建聲明式定義協(xié)議驅(qū)動from langgraph.graph import StateGraph, END from langgraph.mcp import MCPClient from langchain_core.messages import HumanMessage, AIMessage from typing import TypedDict, List, Dict, Any class State(TypedDict): messages: List[dict] pdf_content: str doc_type: str archive_path: str # 初始化所有 MCP Clients clients { pdf: MCPClient(http://pdf:8000/mcp), classifier: MCPClient(http://ai:8001/mcp), file: MCPClient(http://file:8001/mcp), email: MCPClient(http://email:8002/mcp) } # 自動發(fā)現(xiàn)所有工具并創(chuàng)建 ToolNode tool_nodes {} for name, client in clients.items(): for tool in client.list_tools():
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
都市久久精品激情亚洲| 蜜桃视频一区二区三区在线观看| 青草精品视频日本久久久久网站在线| 亚洲综合九| 国产 三级自拍| 999热这里只有精品| 在线啊啊啊啊| 久久久久久久人妻| 91超碰人人操| 久久精品欧美一区蜜桃| 蜜桃无码AV一区二区| 天天草天天日| 92大香蕉| 噜噜噜亚洲精| 日本阿v天堂在线观看| 日日玩天天干| 亚码人妻| laoshunv91| 亚洲s在线观看| 日韩一级片在线看| 日本不卡三级网在线播放| 日本三级日本三级99| 久久国内| 操美女人妻| 狠狠干狠狠干| 女同亚洲欧美一二三区久久电影| 性爱动态120秒| 国产av美女被艹的乱叫| 一区二区娱乐网站| 五月丁香婷婷啪啪| 特污免视频| 九九热精品视频在线观看| 国产精品99久久久www| 中文字幕一区二区日韩网| 日本孕妇一区二区视频操逼免费看| 亚春色色| 97se亚洲综合自| 日韩精品亚洲一二三| 超碰综合97在线| 天天摸天天舔天天操| 夜草欧美| 色天使AV天堂| 97亚洲自在精品在线观看| 亚州色图片在线色| 欧亚韩国999| 不卡日本一区二区| 激情小说日韩无码| 国产精品麻豆视频网站| 四虎影院成年人片| 天天综合日韩网| 成年女人一区| 91美女視頻| 蜜臀aV午夜一区二区三区| 97久久国产亚洲精品超碰热| yazhououmeizongya| 九九九不卡| 欧美成人一级麻豆| 99re9在线| 精品一区二区三区最新| 亚洲精品 欧美精品| 中文字幕人乱码中文字的预防方法 | 天天操天天7| 亚洲少妇免费视频\| 欧美色性情| 91人妻人人澡人人爽人人精品| 欧美性爱精品七区| 国产浮力影院第1页| 国产一区二区三区导航| 超碰久久中文| 欧美一区二区三区黄色影视| 综合亚洲网| 老女人综合网| 大香网站| 嗯嗯啊啊视频一区二区三区| 日曰骚久久精品| 1769一区| 欧美九九爱| 久久人体一区二区| 亚洲 暴爽 AV人人爽日日碰| 一区二区影院| 99青草| 校园春色家庭伦理欧美激情| 少妇久久久久| 日本女人操逼| 啊啊啊啊啊啊啊啊啊啊在线观看| 在线日韩日本亚洲国产| 蜜乳AV网址| 天美传媒国产原创中文字幕亚洲欧美另类 | 色激情综合网站| 99久久e免费热视| 熟妇熟女亚洲天堂网| 操操操操网黑人| 97综合国产| 国产无马av| 久久99草| 18禁无码永久免费无限制| 自拍偷拍 日韩无码| 嗯啊不要在线观看嗯啊| 97欧美日韩综合| av网页一区二区三区| 欧美精品在线观看| 色淫网站优优视频| 大香蕉综合| 欧美激情黑人| 國產尤物AV尤物在線觀看| 免费的av网| av网站免费看| 亚洲人精| 性天堂| 综合色图区| 五月天久久人妻| 午夜爽爽爽在线观看永久入口姬片| 中文字幕视频一区视频二区| 91中出| 丁香五月天堂网| 欧美综合综合| 婷婷尹人大香蕉免费| 久久久久久九九九九九九| 欧美一级国产一级| 91亚洲欧美综合高清在线| 亚洲精品成人动漫在线| 亚洲日韩青青草色月| 国产一区二区三区高清视频| 久久久久久夜夜夜夜夜| 男女做爰猛烈动高潮A片免费应用| 五月婷视频| 国产视频第二页| www.色婷婷色综合| 搡老女人老熟女91老熟女综合网| 人妻天堂综合网| 欧美精品庄| 九九久久99| 亚洲欧美伦综合| 国产精品 亚洲情色| 久久色网| 国产九区| 99综合网| 在线观看AV片| 亚洲精品久久久久毛片A片拉屎 | 狠狠躁伊人中文字幕| 无套内射性感少妇视频| 亚州男人天堂| 97日视频| 91超碰人人操| 天天激情综合站| 熟妇高潮精品一区二区三区下载| 国产亚州精品美女久久久免费| 欧美天天在线| 99re6久热只有精品6在线直播| 97爱| 天天综合网合集91| 人妻熟女一区二区三区在线| 丁香九月激情啪| 久久78| 98福利在线视频| 日本3级一区二区免费 | 欧美综色欧| 91美女丝袜诱惑视频| 国产兽交视频在线播放| 大香蕉92| 天天综合网在线| 嫩草一区二区在线观看| 超碰九7| 性爱AV天堂| 在线视频日韩欧美国产| 色综合一本| 亚洲 欧美 综合 91| 熟女丰满人妻一区| 粉嫩在线一区二区懂色| 综合伊人网12色| 亚洲人妻久久久| 久久超碰亚洲人| 亚卅熟女乱色| 欧美大香蕉专区网| 国产精品不卡一区二区三区av| 呦女网站| 少妇500双飞99| 丁香五月激情综合国产| 人妻中文字幕精品无码| 白丝一区| 91色狼| 麻豆传媒一区二区在线观看| 啊啊啊好舒服好爽啊啊啊视频| 天天天天天干夜夜夜夜夜操| 一本大道不卡一二三区| 三级日本一区二区三区| 欧美亚州综合网图片| 日韩精品操少妇| 99999无码| 极品色社| 欧插网站| 最新一二三区视频| 后入 亚洲 美女 射| 亚洲福利中文字幕在线| 黄在线| 久久久一区二区三区三州| 不卡二三区人妻少妇| 丰满人妻无码一区二区三区| 97碰| 超清中文乱码字幕| 97在线免费看视频| 爱爱动态60秒| 欧美色狠| av在线免费一区二区| 黄片免费日韩| 日本激情免费大片| 久久av一级av少妇av高潮| 男人女人18禁片免费看网站| 久久中文字幕不卡人妻| 91在线视频观看国产| av爱爱爱| 国产 三级自拍| 99九九久久| 国产成人无码网站在线视频| 免费观看啪视频| 思思热免费视频观看| 亚洲国产一级精品毛一级精品看免费视频| 激情无码日韩| 国产情侣自拍在线播放| www.99热| 麻豆九九九| 啊啊啊啊在线观看网址| 久久激情四射婷婷丁香五月天| 欧美极品少妇| 清纯唯美亚洲| 影视综合无码少妇| 五月婷婷激情网| 欧美不卡在线美女| 韩日巨乳美女免费视频在线观看| 性生活性生大爱77AV国产| 精品女同一区二区三区| 色吧91| 人人做天天爱| 亚州AV无码国产精品| 囯产操逼片| 综合激情五月丁香| 亚洲综合九| 蜜桃香蕉久草精品在线| 校园春色亚洲| 日韩色欲久久一二三四区| 欧美综合区| 操九九九九九九| 精品视频专区| 亚洲天堂电影网99999| 亚洲综合首页| 欧亚性爱啪啪| 青娱乐av在线| 国产AV线| 亚洲欧洲av影音| 国产三级多多影院2022国产AA一级毛片无码 | 99久久婷婷| 国产精品久久久久久夜夜夜| 人人人人插| 丁香六月婷| 综合天天网| 猛猛干| 亚洲第一精品在线视频| 少妇一线天久久久久久| 99re在线精品78| 精品九九| 偷窥自拍A片| 国产60区。| 久久久青青草| 久久夜黄色无码A级大片| 丁香五月天社区| av一区二区三区四区五区久草臀| 加勒比综合88| 亚洲码专区| 91亚州欧美| v91av| 亚洲最大AV网| 超碰夫妻97| 色欧美亚洲| 欧美做爰无码A片视频| 秋霞福利网| av在线播放国产一区| 成人五月香网在线| 亚洲色图欧美色18直播在线| 亚洲国产成人精品久久久国产成人一区二区三. | 另类av天堂| 啊啊啊啊操死我| 99综合免费视频| 极品美女嘿咻| 啊啊啊 在线观看| 久久精品电影在线| 婷婷91| 日韩综合第八区国产精品| A 在线网址| 夜夜嗨AV蜜臀av| 精品久久久久久久| 95精品在线| 99热伊人| 色九月综合| 超碰78| 91九久| 久久久96| 蜜臀AV成人精品蜜臀AV久久| 欧美黄色手机在线观看| 欧美se亚洲| 丰满美女一级毛片在线播放| 欧亚不卡| 97任你吞精| 亚洲人妻日日日| 色婷婷电影网| 韩国免费播放一级毛片| 丝袜无码a片| av无线看| 久久婷婷一区| 日韩专区数据列表-第3230页-精品国产一区二区三区香蕉 久久99熟女人妻中文字 | 欧美性暴力猛交| 久热免费视频| 国产成久久综合片| 人妻少妇精品久久久| 国产人妖视频一区在线观看| 欧姜老司机| 熟妇人妻一区二区三区| 18啪啪手机免费性爱| 91精产一区二区三区| 国产精品岛国片在线观看| 久久三区四区| 久久中文色图| 另类小色呦| 亚洲久久久| 中文字幕在线观看第二页| 日韩精品在线观看观看| 亚洲Av诱惑| 中文字幕乱碼在线| 青青草丝袜在线视频| 亚洲图片另类| 香蕉色网| 操我啊啊啊啊啊| 亚洲精品毛片在线观看| 蜜臀99精品国产高清在线观看| 理论久久婷婷网 8| 岛国大片在线观看网站入口| 久9九综合在线| 91麻豆天美国产| 韩国一级婬片A片AAAAA| 亚洲视频中文一区| 2019男人的天堂| 有码人妻系列| www.97在线| 日韩激情中文字幕有码| 黄片免费日韩| 欧美色综合网| 亚洲午夜蜜臀| 亚洲吊色| 富二代亚洲精品99| 天天色综合图片| 国产精品麻豆视频网站| 26UUU欧美日本| 亚洲玖玖爱| 久久久久久久久久久999| 久草五月| 97欧美性爱| 操人人| 91亚洲综合在线| 大香蕉92| 色香综合天天影视综合 | 操少妇很爽av| 91久操| 国产精品一二三区福利| 欧美激情久| 96一区二区| 色九九久九九| 丁香六月激情| 欧美专利1区2区3区4区5区免费| 狠狠热这里都是精品| 97久久超碰日韩精品| 欧州一区二区三区四区| 免费黄色A片| 美女毛片999| 三四中文字幕| 五月天偷拍| 欧美青青草视频| 日韩免费看在线黄色片| 久久综合日韩亚洲欧美| 91人妻人人澡人人爽人人精品| 懂色av色欲av蜜臀av| 99色悠悠| 风月影院十八禁| 韩国久久97| 风间由美日韩欧美久久| 97干在线| 中文字幕熟女人妻丝袜| 亚洲色吧网| 美女t无毒不卡不卡| 欧美激情中文字幕另类小说| 天天伊人| 久久综合99| 国产视频97| 丁香五月久久| 久久久偷拍| 婷婷五月天成人| 免费国产视频| 丝袜喷水在线| 国产性爱乱伦AV| 亚洲综合性网址| 欧美日韩国产中文精品字幕自在自线| 亚洲视频二区| 在线 制服丝袜中出 人妻| 极品人妻少妇综合| 日韩av性爱在线播放| 久久久久成人蜜桃精品| 亚洲欧美人妻| 抽插爽| 另类一区| 日韩色图 一区二区| 一本大道不卡一二三区| 超碰9 7女人| 久久人妻办公室视频| 亚洲a色| 日韩中文字幕熟妇人妻| 97人人操人人摸人人爱| 2021国产成人精品久久| 91欧美另类| 色色婷婷五月| 少妇高潮对白在线观看| 精品人妻一区二区三区日产| 激情文学欧美| 久久99精品视频| 浓厚中出中文字幕在线| 躁躁日曰躁2020| 国产免费一区在线观看| 啪啪视频亚洲第一| 无码天堂| 日本女人久久久| 强奸乱伦免费网站| 清纯唯美综合| 美女97超碰| 宅男午夜在线视频| 日韩熟女精一区二区三区不卡| 蜜桃久久久久久久久久久久| 91老熟女逼| 国产AV超爽| 26uuu性物| 国产精品久久久久久照片| 日韩AV电影网站| 久久草草亚洲蜜桃臀| 人妻天堂综合网| 岛国激情视频在线观看| 91色堂| 99re在线观看| 久久精品欧美一区二区三区不卡| 亚洲欧洲无码一区夜| 黄片www.| 久久国产熟女影院| 91熟女丨91老女人| 超碰视97中文| s片在线观看| 国产女人高潮视频| 337p大胆噜噜噜噜噜91Av| av毛片aaaaa免费看| 久久伊人青青草| AA丁香综合激情| 久久av一级av少妇av高潮| 69天堂| 青青操国产夫妻| 国产风韵犹存熟妇三区| 色婷婷综合久久久久中文一区二区| 国产一区二区三区精品观看啪| 中文视频在线观看| 91这里只有精品| 欧美在线|亚洲| 日本黄页视频在线观看| 欧洲亚洲天堂精品| 女上位精品在线| 少妇久久久免费| 国产精品乱码久久久久久久久久久久| 五月综合色| 亚洲国产午夜真人一级片中文字幕精品黄网站 | 久久999久| 国产农村妇女精品一二区| 狠插 制服 自拍| 久久鲁夜| 搡老女人老91妇女熟女| 欧美女同在线| 91丨人妻丨国产丨丝袜| 亚洲天堂男人天堂网| 亚洲精品 欧美97色色| 人妻熟妇久草在线| 1024精品在线| 麻豆精品.欧美精品.日韩精品.| 亚洲影视高清三级-草1024榴社区入口-品爱AV| 91n免费处女| 超碰综合97在线| 国产乱子伦久久精品综合一区二区三| 超碰美国| 插穴性爱视频在线观看| 久久精品性| 玖玖97综合| 国产乱人妻精品入口| 国产精品国产| 五十路熟女人妻一区二区在线观看| 久久久精品中文字幕爱豆| 日本高清_区二区三区 | 97人人中文网| 亚洲久草AV色图| 亚洲性网| 日韩美一区| 97超碰国产亚洲精品| a片自拍直播视频| 国产亚洲精品玖玖玖在线观看| 伊人网av| 97亚洲在线| 99视频精品| 亚洲综合伊人| 看日韩操逼| 91色堂| 日韩免费在线视频观看| 欧美熟爽综合| 搡老女人老91妇女老熟女| 毛片电影一区二区三区| 人妻天天爽夜夜爽2| 日韩在线观看三级电影| 国产免费永久精品无码| 国产精品伦理| 男人夜色天堂ss| 男人天堂久久精品不卡| 无码精品一区二区三区潘金莲| 97视频在线观看高清资源| 高清国产精品福利网站| 熟女一区二区| 97人妻免费中文字幕| 亚洲精品一区二区免费在线观看| 久久国内| 欧美18老人禁| 九九九九九九九九九九九蜜桃| aaaa少妇高潮大片| 特色a在线上| 久久久久久久78| 天天操夜夜嗨| 96久久久久久久| 草伊人高潮喷水超碰| 豆花视频操逼网址 | 91久久精品国产| 大香蕉www.超碰| 蜜臀一二三区| 久久av网| 日韩av女优在线免费一区| 日韩欧美tv一区二区在线观看| 蜜屁Av| 天美麻豆精品视频99| 色天使亚洲综合在线观看| 极品另类| 久久国产精品m码| 人妻超碰青青草98| 日韩中文字幕熟妇人妻| 极品极品色影院| 无码高清操逼网址| 99re这里只有精品9| 少妇500双飞99| 啪啪综合网| 亚洲精美粉嫩嫩泬在线观看| 韩国三级色呦呦| 午夜啊啊| 亚洲图片视频小说| 狠狠做深爱婷婷久久二区| 91 丝袜在线| 日韩pv中文| 熟女六十路| 亚洲古典另类欧美在线| 看一级特黄a大一片| 日韩一级二级三级免费看完整版| 97K超碰在线| 欧美性爱中文字幕无线码| 国产一区免费午夜视频| 强奸国产精品视频| 亚洲āv网址在线观看| 国产又黄又粗又猛大片| 亚洲欧洲成人在线电影| 先锋影音av先锋一区| 久久丁香久草综合网| 亚洲国产精品无码AV久久久| 啪啪AV导航| 日韩欧美性爱电影在线观看| 偷拍偷窥与盗摄视频专区| 超碰在线一区二区三区| www.99色| 偷看洗澡一二三区美女| 激情五月天网站| 成人AV素股で擦久久| 亚洲熟妇无码一区二区三区| 超碰 av 女人天堂| 婷婷探花久久精品一区| 91亚洲色图| 久久av成人无码免费| 亚洲操逼无码| 久久久999网站| 超碰98综合网| 欧美亚洲首页| 久草免费在线一区二区| 东北女人| 2020久久免费视频| 亚洲日本韩国在线| 久久精品视| 97超碰人人模人人拍人人| 久久无码成人| 江都AV在线| 亚洲欧美校园| 91久久久亚洲| 97超碰碰碰| 可乐操亚洲蜜911| 日韩欧美字幕亚洲一区二区| 内射中出日韩在线观看视频| 东京男人天堂| 天天搞在线综合网| 亚洲男人的天堂在线看| 女人与公拘交酡2020视频| 一区二区 韩日AV| 国产精品3| 国产精品露脸在线观看| 久久久精品日本一道| 久久区| 亚洲砖码砖专无区2023| 校园春色综合香蕉| 人人射人人操人人摸| 欧美在线色| 亚洲第一狼人丝袜美女另类| 激情综合av| 淫荡熟女乱伦网| 精品美女少妇一区二区三区| 人人操人人插 - 百度 - 百度| 超碰久久性爱| 日韩在线一区高清在线| 色97国产69香蕉| 无遮挡猛进视频免费无限观看| 亚洲色棕合| 啊v视频在线观看| 亚洲综合婷婷| 四虎在线观看视频| 大奶啊啊好爽| 国产高清精品一区二区三区毛片 | A男人的天堂| 久久久九九网站| 日韩欧美日韩| 91老熟女老女人国产老太| 国产女人91精品嗷嗷嗷嗷| 天天搞欧美| 久久不卡一区二区| 日本三级日本三级99| 97爱爱爱| 女人香蕉久久毛毛片精品| 偷拍亚洲高清图片| 久色网| 涩涩涩综合| 一本一道久久综合久久| 91久久午夜无码鲁丝片久久人妻| 國產尤物AV尤物在線觀看| www.亚洲黄色| 欧美一二三区四五区| 无码日韩人妻av一| 99re国产精品视频| 国产亚洲性生活视频播放| 99999国产| 操少妞在线视频| 欧美韩国你懂得在线| 青青草九九九九九| 五月丁香大香蕉| 人人操人人摸人| 国产家庭乱伦表演| 丰满人妻一区二区三区免费| 欧美骚少妇| 性高潮久久久| 亚洲男人天堂网站| 91 丝袜在线播放| 亚州一区二区| 青娱乐淫乱1314| 中国AAAAAA黄色片| 国产传媒午夜理伦精品| 天天做日日做| 一级久久性爱视频| 亚洲成av人片色午夜乱码| 丁香婷婷啪啪| 激情综合五月| 青青草伊人久久| 亚洲资源网| 亚洲图片 激情小说| 亚洲欧美视| 夜夜欢天天干| 麻豆国产97在线| 欧美老妇曰批的视频| 国产激情在线| 婷婷五月成人| 69视频福利导航| 伊人欧美大香蕉视频| 久久久久国产精品久久久| 尤物视频一区| 久久久999日本大片| 亚洲第91页| 国产馆| 午夜操逼不卡| 岛国小电影| 97爱爱官网| 大黄片做爱的大的| 中文字幕国产精品1区| 中文字幕女同在线| 亚洲色图欧美一区二区不卡| 欧美性爱系列| 亚洲自拍欧美色综合| 中文字幕丰满子伦无码专区在线视频最新 | www.夜夜操| 久草热制服丝袜在线观看| 欧美激情专区| 亚洲人妻一区二区三区| 精品一区二区三区四区外站| 久久久久久亚洲Av无码精| 天堂蜜桃无码视频一区二区| 日韩视频小说在线观看| 污污汅18禁网站在线永久免费观看 | 自拍鲍鱼一区在线高清观看免费| 国产污视频麻豆传媒一区二区| 四虎影视精品| 丁香五月婷婷基地| 热热色中文无码| 国产九月婷婷| 99re超碰| 成人熟女视频一区二区三区| 日本一区二区中文字幕久久| 射 色综合| 免费AV中文网在线观看| 亚洲精品久| 草草草视频在线免费看| 欧亚久久偷拍视频| 日韩性爱免费观看视频| 美女久久久久久久| 久久精品国产亚洲AV高级北京| 色九月综合| 3d成人精品一区二区| 91热热色| 超碰中文字幕人妻草一区| 一级毛片久久久久久久女人18| av东京热男人的天堂| 超碰在线成人| 94色色电影网| 污污污8888| 色色综合网站| 26uuu偷拍亚洲欧洲综合| 欧美97免费| 麻豆AV一区二区天美传媒| 精品久久久亚洲AV成人网站| 韩国一级做a久久久久| 性欧美精| 18岁禁 茉莉成人久久| 亚洲日韩成人性爱视频| 一区操逼| 四虎精品永久在线播放| 亚洲熟妇AV日韩熟妇在线| 99热| 日本天天操| 人人爱人人操人人性| 日产操逼| 久久久久久久9999| 亚洲好色人妻| 欧美激情黑人| 动漫av中文| 久久久久9久久久久| 国产亚洲精品自在线亚洲情侣| 人人干黄色| 永久免费观看的毛片的网站| 校园春色亚洲| 97视频网站| 人人操超碰在线| 日本久久久久久久久久| 夜夜黄| 日本免费二区三区| 久久中久文96| 啊啊啊啊免费视频| 91中文字幕制服丝袜免费视频| 欧美亚洲清纯| 久操国产在线| 神马久久午夜| 伊人网免费视频| 国产午夜福利电影免费在线观看| 思思视频免费看网站| 强奸乱伦 亚洲一区| 操www| 欧美精品1区2区3区| www.99色| 97 超碰 人人做 人人爱| 日日夜夜模| 欧美高清91| 五月天玖玖资源站| 色情综合网| 蜜臀在线免费观看在线免费观看| 抽插爽| 人妻娇喘 激情视频| 五月亭亭六月丁香| 久久黄色性爱视频| 91色色色| 中文字幕超碰CAO| 资源新线在线天堂| 综合 欧美 亚洲 日本| 国产 码在线成人网站| 国产亚洲人妻综合日韩 久久| 大吊色| 精品久9| 免费精品人妻一区二区三| 九九热精品视频在线观看| 亚洲的天堂网| 精品日韩人妻视频| 亚洲少妇色| 18+91网站| 91 亚洲 欧美 日韩 国产 综合| 色综合98| av橘色网站| 国产精品一二三在线看| 日韩精品人妻中文字幕久久久| 91操操操操| AA丁香综合激情| 亚州欧美总和| 欧美精品一区二区少妇免费A片 | 亚洲最新Av| 91 国产丝袜在线放观看| 9 1果冻精品视频| 国产丰满少妇久久久精品影院| 亚洲小说视频| 另类图片五月| 日本熟女不卡视频| 欧美熟妇人体| 奇米狠999| 欧美在线|亚洲| 日韩有码免费视频| 人人操 欧美| 欧美性暴力猛交XXXX | 国产中文字幕曰本毛片| 精品一区二区三区四区外站| 岛国黄片网站| 99re在线视频国产| av在线资源| 在线免费观看高清无码视频| 99国产精品免费| 亚洲无码太久| com 首页 18岁 禁区 女优 免费 精选 同城 | 北京美女一区二区| 福利在线黄片| 乱欲视频| 偷拍导航视频网站| 一区二区三区四区姦女| 成人精品一区二区91毛片不卡| 日本高清视频在线观看黄已三辽| 亚洲熟妇自偷自拍另欧美| 日日操免费视频| 色97欧美| 东北女人操比视频| 成人夜夜爽| 精品人妻中文字幕4399| 97精品| 日韩天天综合| 玖玖爱伊人玖玖爱| 亚洲色91C| 人人乐大香蕉| 亚洲va综合va国产va中文| 久久久久久久国产视频| 日韩人妻一区二区| 亚洲欧美日韩不卡人妻| 嫩草91| 啊灬啊灬啊灬啊灬高潮奶出了免费视| 六九九九| 亚洲素人综合| 亚洲不卡一| 国产91丝袜 在线播放| 深爱伊人影院| 色偷综合| 香蕉大久久久| 黄色十八禁| 十八禁电影伊人网| 99操逼| 天美传媒AV在线| 91丝袜在线观看| 91香蕉国产尤物视频| 中文久久久| 国产精品久久久| 夜夜草天天| 青娱乐亚洲自拍| 亚欧高清v| 91原创在线观看| 97精品久久久久久久| 亚洲精品欧洲精品| 神马久久啊啊| 久久成人网站| 久操免费观看| 92性色国产午夜福利在线661| 在线有码中文字幕| 日本福利二区视频| 九九九久千久久激情蜜桃在线看 | 亚洲视频精选| wwwxxx日本爽| 久久久国产成人一区二区三区在线| 九九九九九九成人| 91精品在线播放| 17c嫩草51久久91嫩草| 99久久亚洲精品无码毛片潘甜甜| 女性喷水高潮在线观看| 国产精品无套内谢| 69超碰综合| 中精品一区二区三区| 9999免费精彩视频| 玖玖婷婷五月天| 精久久久91| 少妇无码999| 国产精品自在线发布| 天堂av2019| 夜夜青青无码影院| 精品国产91内射久久| 91操人| 精品国产综合久久福利,热99这里有精品综合久久,99热这里只有免费国产精品,精 | 午夜性刺激视频免费观看| www色色com| 国语精品av| 日韩不卡a级视频专区| 亚洲图片 激情小说| 啊啊啊爽爽| 97色色婷婷| 91 国产丝袜在线播放-百度| 欧美性爱日韩高清| 宗合情欲网| 欧美一级美片在线观看免费| 精品视频日日夜夜| 人人搞人人插人人操| 色999人与兽| 精品国模无码| 东京热av男人的天堂| 久久美女国产| 97精品视频在线播放| 美女极品一区二区三区| 人妻激情在线视频| 啪啪AV导航| 玖玖大干人妻| 3p国产欧美99热| 97久操| 欧美美女啪啪视频| 色噜噜精品一区二区三| 激情婷婷黑人91| 中文字幕日产av人| 国产91啪| 国产精品不卡高清在线观看| 九九久久99| 亚洲欧美国产日本一区二区三区| 91一区二匹| 伊人午夜福利视频| 久久25| 一级性爱aaaa| 欧美性爱第一区| 91天堂网| 欧美综合色图片| 欧美精品 - 91爱爱| 操美女高潮抽搐白浆| A级在线视频| 天天影视综合色| 中文字幕制服欧美久久一区| 凹凸视频特色日本特黄| 伊人天天久久动态图| 中文字幕乱偷人妻久久艾草网| 亚洲图片欧美91N| 亚欧国产无码精品在线| 秋霞操逼片| 欧美不卡五十路| 26UUU欧美日本| 国产精品乱码久久| 国产精品9999| 超碰人人超在线观看| 久久精品一区二区三区四区五区| 免费国产| 国内毛片四区| 日韩综合第八区国产精品| 大香蕉在线视频重口味毛片在线| 99.色网| 欧美 传媒 麻豆 日韩 偷拍| 四虎影视在线| 狠狠图片青青草| 91国产美女丝袜足交精品视频 | 女同在线视频一区| 国产欧美精品日韩区二区麻豆天美| 9久久精品| 99亚亚热| 91爱看| 国产激情在线| 黄色视频高清无码网站| AV在线性爱| 综合免费无码中文| 五月丁香综合激情| 99中出在线| 熟女91网| 欧美日韩在线小说 | 中文字幕av片| 国产97亚洲| 亚瑟国产精品久久无码| 日韩精品中文字幕一| 久久久久久欧美精品se一二三四| 泰国AV在线观看| 大屁股熟女一区二区三区| 人妻激情视频| 欧美熟妇成人一区二区| 欧美日本国产日韩激情视频| 开心五月激情网| 1区2区3区在线视频| www. 男人天堂成人在线| 日本二三四区| 做爱A级亚欧| 97九色人妻| 亚洲极品| 欧美一级国产一级| 久久的网站啊啊啊啊啊| 青草地一本线一区二区三区| 一区二区三区视频国产免费| 丁香五月天社区| 日韩激情电影中文字幕| 亚洲色图久久成人| 91n处女在线观看| 成人八戒网站| 99久在线精品99re8a| 日本1区2区不卡视频| 欧美中文字幕一区 | 成人26uuu| 久久熟女人| julia国产在线| 伊人色综合网电影| 欧美九一精品久久久熟妇| 两女互慰AV高潮喷水在线观看| 高树玛利亚无码流出| 91美女视频在线观看| 色爽爽文学| 色屁屁影院www国产| 天操老女人| 国产亚洲精品av一区| 亚洲欧洲色情高清| 午夜一级免费毛片| 亚洲的天堂网| 日本理论在线| 99ri视频| 欧美黄页| 伊人aaa| 色香色欲天天综合网天天来吧| 玖玖久久久| 丝袜狠狠草尤物人妻av91| 69少妇一区二区| 欧美亚州色的图| 97自拍视频在线| 91精品无码久久久久久久| 精品网站99999| 婷婷午夜| 大香蕉专区| 99re在线| 伊人宅男大香蕉| 自拍欧美| 人人人人人人少妇| 中日韩久久久| 97亚洲综合| 1024精品在线| 久久九九精品一区二区| 麻豆久久久久久久久丝袜| 丝袜熟女一区二区三区| 久96热在线观看视频| 97网址97| 国产精品suv一区| 内射黑人| 青青草吊丝| 精品久久在线区一区| 欧美在线观看综合国产| 韩国三级一线观看久| 欧美性性性| 91bbbbbb| 岛国片国产成人亚洲播放| 色欲久久久久综合网| 97手机日韩| 少妇久久久久久久| 91女色| 国产老女人久久毛| 大香蕉伊人75| 啊啊啊爽爽| 波多野结衣之双飞调教在线播放| 国产精品操| 香蕉国产精品麻豆亚洲欧美日韩 | 蜜臀av网址| 国产日韩中文字幕欧美| 懂色av中文字幕| 人妻丝袜一区二区三区在线| 高清视频一区| 日韩啊V| 草草影院日本第一页| 亚洲无码久久久久久久| 97久久超碰| 色欲人妻一区二区在线| 热热色色综合| 热热色91| 韩国成人精品久久久免费看| 五月婷在线| 91精品人妻一区二区-全集完整版免费正片国语-B02AV | 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区老师 | 国产无马视频| 欧亚综合一卡二卡中文字幕| 久久蜜色情在线视频xxx免费观看| 欧美色图 人妻| 精品人妻一区二区三区不卡断 | 区一在线观看| 欧美色图20P| 中国女人内射6XXXXX| 嗯嗯啊啊用力视频免费| 精品国产久久乱码| 亚洲无码精品AV久久久| 日本黄 R色 成 人网站| 九九热这里只有在线精品视 伊人草 成人菠萝蜜视频在线观看 | 91老熟女老女人国产老太| 1240青青草一区二区三区视频天爱| 亚洲 欧美 偷拍 唯美| 亚洲宅男天堂| 亚洲中文字幕av | 一个国产在线综合网站| 热久久精品| 97综合网| 人妻丝袜无 码视频专区| 久操av在线| 国产一级作爱毛片| 天天操天天看| 久久久无码av精| 天天操美美| 亚洲国产欧美中文永久| 大香蕉伊然在亚洲91| 日本一级性爱| 色亚洲欧美| 日本大片日本一区二区免费高清| 男人的天堂无码| 色丁香久久| 91黄射| 日韩三级久久久| 人人操我人人干| 天美传媒Av在线| 国产精品成人蜜臀AV在线| 天欧美在线| 很很干很很操| 日韩中文字幕精品一区在线| 久久久久网站-538在线视频-欧美永久乱码 | 色蜜AV| 精品亚洲黄色片 国产精品导航一区二区 | 97chaopenrihan| 校园春色制服丝袜中文字亚洲 | 亚洲精品1区| AV天天在线观看| 久久精品国产亚洲AV无码做| 蜜臀AV午夜精品久| 久久鲁夜| 青青草日本无码| 亚洲精品日韩国产欧美| 久9九综合在线| 久久久国产护士丝袜美腿一| 日本狠狠干| AV不卡在线| 欧美精品一区二区少妇免费A片| 欧美综合传媒| 丝袜无码a片| 九九九九九九九九九九九免费国产| 日本Xx性爱| 91精品微拍福利| 日本一区二区三区免费观看| 人人妻人人澡人人爽人人精品浪潮| 久久久九九九九| 久久久久元码视频| 和协无码影院| 人妻天天操天天爽视频免费|