- 博客(71)
- 收藏
- 关注
原创 第一章 Python SDK项目概述
MCP Python SDK是一个实现MCP规范的Python开发工具包,为构建AI代理服务提供标准化支持。该项目采用分层架构,包含客户端、服务器、共享组件和传输协议模块。核心组件FastMCP框架通过工具、资源和提示词管理功能,实现协议消息路由和生命周期管理。系统通过模块化设计实现松耦合,支持多种通信协议,并提供了完整的工具注册、资源访问和提示词管理机制。
2025-10-27 10:12:17
1198
原创 第七章 高级功能上下文注入
上下文注入系统为工具函数提供运行时状态自动注入能力,通过装饰器机制实现类型安全的上下文传递。核心由context_injection.py和func_metadata.py实现,利用Python类型注解动态识别Context参数并完成注入。该系统支持复杂类型推断、参数验证和异步兼容性,通过Pydantic模型确保类型安全。持久化状态管理由memory.py实现,采用内存流和任务组维护上下文生命周期。该设计使开发者能透明访问会话信息等运行时状态,同时保证资源正确清理。
2025-11-10 08:58:04
749
原创 第七章 高级功能进度通知
本文介绍了MCP Python SDK的进度通知机制,通过Progress数据模型和ProgressContext上下文管理器实现任务状态更新。系统支持从服务器端发送进度事件到客户端接收处理的完整流程,并与日志机制协同工作,提供结构化事件追踪。典型应用场景包括文件处理、模型推理等耗时任务,通过进度条和日志信息实时反馈任务状态,提升用户体验。该机制采用类型安全设计和上下文管理,确保资源正确清理。
2025-11-10 08:57:37
539
原创 第七章 高级功能分页与游标
本文介绍了MCP Python SDK中分页功能的实现原理与使用方法。主要内容包括:1) 基于游标的分页机制设计,通过cursor和nextCursor字段实现高效数据遍历;2) ResourceManager类提供的底层资源管理功能;3) 通过@app.list_resources()装饰器注册分页接口的具体实现;4) 分页响应结构设计,包含资源列表和下一页游标;5) 边界情况处理机制,如空游标、无效游标和数量限制控制。整体采用请求-响应模型,确保系统健壮性和数据分页的高效性。
2025-11-08 11:56:23
859
原创 第七章 高级功能之流式处理
本文档介绍了SDK对流式响应的支持实现,包括SSE和Streamable HTTP两种协议。SSE协议通过SseServerTransport类实现双向通信,处理GET和POST请求;Streamable HTTP协议通过StreamableHTTPServerTransport类支持JSON-RPC消息的流式传输。文档详细说明了服务器端生成数据流和客户端异步处理消息的流程,并通过echo.py示例展示文本流通信。实现利用anyio库创建异步消息传递,确保多语言字符的正确传输,同时提供性能优化建议以保证高吞
2025-11-08 11:55:52
809
原创 第七章 高级功能
本文档系统介绍了Python SDK的高级功能实现细节与最佳实践。主要内容包括:流式响应机制通过SSE技术实现实时数据传输;基于游标的分页机制有效管理大数据集;进度通知系统支持长时间任务监控;结构化日志工具便于系统分析;提示收集与上下文注入增强交互灵活性;性能优化建议涵盖连接池、内存管理等方面。通过源码分析与示例展示,为开发者提供全面的技术参考与实现指导。
2025-11-08 11:55:07
835
原创 第六章 认证与安全之传输安全
本文档详细解析了MCP服务器的传输层安全机制,重点介绍了transport_security.py模块实现的DNS重绑定攻击防护功能。该机制通过严格验证Host头、Origin头和Content-Type头,配合allowed_hosts白名单和源地址检查,有效阻止恶意请求。同时,client_auth.py中间件负责客户端认证,与传输安全机制形成多层次防护。文档提供了启用HTTPS、设置安全响应头等安全配置建议,并通过测试用例验证了防护机制的有效性。这些措施共同保障了MCP服务器的通信安全,防止DNS重绑
2025-11-08 11:54:28
1238
原创 第六章 认证与安全之自定义认证提供者
MCP框架认证提供者设计与实现详解:本文档系统介绍了MCP框架中AuthProvider的抽象接口设计、核心方法实现和扩展机制。通过继承OAuthAuthorizationServerProvider协议类,开发者可自定义JWT、API Key等认证方式,文档包含客户端管理、授权流程、令牌管理等核心方法实现示例,并详细说明了认证上下文注入机制和API Key认证的具体实现,同时提供线程安全、异步支持等优化建议。
2025-11-08 11:53:32
1159
原创 第六章 认证与安全之OAuth 集成
本文档详细介绍了OAuth 2.0授权框架的实现方案,包括授权服务器核心组件架构和关键流程分析。重点阐述了授权端点(/authorize)与令牌端点(/token)的工作原理,通过时序图和流程图展示了授权码获取与令牌交换的全过程。文档还提供了模块化的项目结构设计,包含示例服务器实现与核心处理程序(如RegistrationHandler、RevocationHandler),并强调了客户端验证、重定向URI检查及PKCE安全验证等关键环节。
2025-11-07 08:46:10
339
原创 第六章 认证与安全之Bearer Token 认证
本文档详细介绍了Python SDK中Bearer Token认证机制的实现架构与流程。系统采用分层设计,客户端通过OAuth 2.0获取访问令牌,服务端通过中间件栈进行令牌验证。核心组件包括负责令牌验证的BearerAuthBackend、权限检查的RequireAuthMiddleware以及管理认证上下文的AuthContextMiddleware。文档还包含完整的类图分析、交互流程说明,并提供了基于simple-auth示例的端到端认证演示。系统要求HTTPS传输,支持令牌有效期检查,并包含401/
2025-11-07 08:45:08
1103
原创 第六章 认证与安全
摘要:本文档详细阐述了SDK的认证安全体系,重点介绍Bearer Token认证流程(包含Token验证和权限检查机制)、OAuth 2.0集成方案(通过OAuthAuthorizationServerProvider协议实现授权码流程),以及自定义认证提供者的扩展方法。通过simple-auth示例展示了完整认证工作流,并涵盖密钥管理、令牌刷新等安全实践。文档还包含DNS重绑定防护等传输安全措施,以及用于验证系统安全性的审计清单。
2025-11-07 08:43:21
1276
原创 第四章 FastMCP 服务器框架之自定义HTTP路由
本文档详细介绍了FastMCP框架中custom_route装饰器的使用方法。该装饰器允许在MCP服务器中注册自定义HTTP路由,支持OAuth回调、健康检查和管理API等场景。文章阐述了路由创建过程、请求处理机制以及与MCP核心协议的协同工作方式,并提供了典型应用场景的实现示例。通过include_in_schema参数,开发者可控制是否将路由包含在API文档中,增强系统安全性和灵活性。 (149字)
2025-11-07 08:32:01
957
原创 第四章 FastMCP 服务器框架之资源注册
本文档详细解析了FastMCP框架中@resource装饰器的核心机制。该系统通过URI参数占位符和函数签名自动区分静态资源与模板资源,由ResourceManager统一管理。框架智能推断MIME类型:bytes返回二进制数据,str返回纯文本,其他类型自动序列化为JSON。URI参数绑定通过正则表达式提取,并与函数签名严格验证,确保类型安全。此外,系统支持上下文注入,为资源函数提供运行环境信息。文档包含同步/异步资源示例,并说明name、title等元数据字段在MCP协议中的用途,实现声明式资源注册与自
2025-11-07 08:31:25
1247
原创 第四章 FastMCP 服务器框架之资源模板机制
FastMCP资源模板系统实现了动态资源创建机制,通过URI模板将HTTP请求映射到后端函数。系统核心由ResourceManager管理模板注册与发现,采用ResourceTemplate处理URI匹配与参数提取。该机制支持严格参数校验和动态内容生成,通过FunctionResource实现延迟加载。系统在资源访问时才执行函数,支持复杂URI匹配和参数化资源创建,为开发者提供了灵活的RESTful API构建方案。 关键词:资源模板、URI映射、参数校验、动态内容、延迟加载
2025-11-06 08:56:49
822
原创 第四章 FastMCP 服务器框架之资源读取流程
本文档系统解析了read_resource协议方法的执行机制。该流程始于客户端请求,通过ResourceManager进行URI匹配,支持静态资源和动态模板两种形式。当匹配模板时,会解析路径参数并注入上下文对象(Context),该对象提供日志记录、资源读取等核心能力。资源查找过程采用优先级策略,先检查静态资源再匹配模板,匹配成功后会创建FunctionResource实例。整个过程支持同步和异步函数调用,并内置完善的错误处理机制。通过组件化设计实现了资源管理的灵活性和扩展性,为构建复杂资源系统提供了可靠基
2025-11-06 08:56:13
571
原创 第四章 FastMCP 服务器框架之资源管理
FastMCP资源管理系统提供了静态资源和模板资源两种类型,通过@resource装饰器实现注册与管理。装饰器支持URI参数绑定、函数签名验证、MIME类型推断和上下文注入功能。ResourceManager负责资源全生命周期管理,包括注册、查找和读取。系统支持多种资源类型(文本、二进制、函数等),并通过资源模板实现动态URI匹配。资源读取根据类型采用不同逻辑,支持同步/异步调用,实现灵活的资源管理机制。
2025-11-06 08:55:21
899
原创 第四章 FastMCP 服务器框架之提示词设计最佳实践
本文档详细介绍了构建高效提示词的最佳实践和MCP协议实现架构。主要包括:1) 项目结构清晰划分为示例、源代码和测试目录;2) 核心组件设计包含提示词管理、资源加载和工具执行功能;3) 采用模块化架构,通过JSON-RPC通信实现客户端-服务器交互;4) 详细分析提示词组件参数化、上下文注入及渲染流程;5) 支持动态内容生成和会话状态访问;6) 提供完整的类图、流程图和序列图说明各组件协作关系。文档为开发者提供从基础规范到高级特性的全面指导。
2025-11-06 08:48:47
533
原创 第四章 FastMCP 服务器框架之提示词注册机制
FastMCP框架通过@prompt装饰器实现提示词的注册与管理。核心流程包括:1) @prompt装饰器接收元数据参数并包装目标函数;2) Prompt.from_function将函数转换为Prompt对象,自动提取参数元数据;3) 通过find_context_parameter实现上下文注入;4) 注册时检查重复提示词并发出警告。框架支持同步和异步函数,利用Pydantic进行参数验证,并生成完整的参数Schema。整个过程实现了从普通Python函数到可管理提示词的无缝转换,为模型调用提供了标准化
2025-11-06 08:48:11
768
原创 第四章 FastMCP 服务器框架之提示词调用流程
本文概述了提示词调用流程的完整链路:从客户端发起JSON-RPC请求开始,经过服务器端协议处理,执行提示词渲染并统一处理返回结果。流程涉及客户端会话管理、服务器协议处理器、提示词管理器和渲染组件,包含参数验证、上下文注入、多种返回类型统一转换等关键环节,并实现了完善的错误处理机制,确保异常被正确捕获和记录。文中通过序列图、类图和流程图直观展示了各组件间交互和数据处理流程,最后提供了客户端调用示例。
2025-11-04 08:35:18
767
原创 第四章 FastMCP 服务器框架之提示词管理
本文档系统阐述了FastMCP提示词系统的架构与实现。通过@prompt装饰器将普通函数转换为可调用的提示词,采用分层设计将功能实现与协议交互分离。核心组件包括PromptManager、Prompt和Message类,构成类型安全的提示词框架。系统采用装饰器模式和依赖注入架构,支持提示词注册、检索及响应生成流程,并通过MCP协议与客户端交互。详细分析了装饰器实现原理、提示词注册与检索流程,为AI代理决策提供标准化提示词生成能力。
2025-11-04 08:34:44
672
原创 第四章 FastMCP 服务器框架之Context对象
本文介绍了FastMCP框架中的Context对象,它是访问MCP能力的核心入口。Context通过类型注解自动注入到工具函数中,提供日志记录、进度报告、资源读取和用户交互等核心功能。文章详细阐述了Context与RequestContext的封装关系,并通过实际示例展示了其使用方法。此外,还介绍了如何获取请求相关的元数据属性,如request_id和client_id。Context对象简化了服务器端开发,使开发者能专注于业务逻辑实现。(149字)
2025-11-04 08:34:02
959
原创 第四章 FastMCP 服务器框架之生命周期钩子
FastMCP服务器通过生命周期钩子机制实现了资源管理的自动化控制。开发者可通过配置lifespan参数定义异步上下文管理器,在服务器启动和关闭时执行自定义操作。该机制支持数据库连接、缓存客户端等资源的初始化与清理,通过lifespan_wrapper适配底层服务器,并使用request_context在请求处理中访问资源。典型应用场景包括数据库连接池管理、外部服务初始化等,提供了完整的资源生命周期管理方案。
2025-11-04 08:33:27
905
原创 第四章 FastMCP 服务器框架之状态管理
FastMCP框架提供了一套基于Context的高级状态管理机制,通过自动化的上下文参数识别与注入简化工具函数的开发。该机制核心是Context类,封装了请求上下文和MCP功能访问接口,支持类型安全且可选地注入。框架通过find_context_parameter函数自动识别Context参数,并使用inject_context实现参数注入。在异步调用链中,通过上下文继承和会话关联确保一致性。高级用例包括认证信息传递、数据库连接管理和缓存实例共享,最佳实践强调显式类型注解、异步安全和错误处理。这种设计为开发
2025-11-04 08:32:36
958
原创 第四章 FastMCP 服务器框架之生命周期管理
FastMCP框架通过Context对象提供统一运行时上下文,支持日志记录、进度报告、资源访问等功能。该对象在请求处理时动态创建,包含请求ID、会话实例等关键信息。框架采用类型注解自动注入Context参数,开发者只需在工具函数中声明即可使用。此外,支持通过生命周期钩子配置服务器启动/关闭操作,并通过report_progress()实现进度通知。示例展示了如何分阶段报告处理进度,适用于耗时任务场景。该机制兼顾了开发便利性和运行时效率,为复杂应用提供系统化支持。
2025-11-03 09:05:44
622
原创 第四章 FastMCP 服务器框架之高级特性与最佳实践
本文系统介绍了MCP Python SDK工具管理的高级功能与开发实践。主要内容包括:1)工具命名冲突检测机制及warn_on_duplicate_tools配置项;2)通过meta字段和annotations实现工具元数据扩展;3)复杂工具实现中的进度报告和日志记录;4)Context对象的安全使用原则;5)支持热更新的运行时工具管理;6)高并发环境下的异步非阻塞设计等优化策略。这些机制共同构建了健壮、灵活且高性能的工具服务体系,为AI应用开发提供强力支撑。
2025-11-03 09:05:13
1022
原创 第四章 FastMCP 服务器框架之工具调用流程
本文详细解析了FastMCP服务器中工具调用的完整生命周期。从客户端发起call_tool请求开始,通过ToolManager.call_tool进行工具查找和执行,重点分析了参数校验与转换机制、异常处理策略以及结果格式化过程。文档深入追踪了调用链各环节,包括FuncMetadata的参数预解析和验证、Tool类的执行逻辑,以及ToolError的错误封装机制,并通过流程图和代码示例展示了工具调用的典型场景,为开发者提供了完整的工具调用实现细节。
2025-11-03 09:04:42
807
原创 第四章 FastMCP 服务器框架之工具注册机制
FastMCP框架提供了一套完整的工具注册机制,通过@tool装饰器实现函数注册为MCP工具。核心流程包括元数据提取、参数Schema生成和上下文注入等功能。使用装饰器语法简化注册过程,ToolManager管理工具生命周期,FuncMetadata处理类型验证和参数解析。支持同步/异步函数,动态生成Pydantic模型进行输入验证,并提供结构化输出支持。该机制实现了开发便捷性与类型安全的平衡,是FastMCP框架的关键基础设施。
2025-11-03 09:04:05
1073
原创 第四章 FastMCP 服务器框架之工具管理
FastMCP框架工具系统摘要:通过@tool装饰器实现工具注册与管理,支持同步/异步函数和丰富的元数据配置。工具调用流程包含参数验证、上下文注入和结果转换,其中Context类提供日志、进度报告等功能。系统自动提取函数元数据并验证输入输出,支持结构化输出配置。实现采用装饰器模式,维护工具字典并处理冲突检测,最终通过call_tool协议方法完成调用。
2025-11-03 09:03:19
725
原创 第四章 服务器开发之资源管理与访问
文章摘要: FastMCP框架的资源管理器采用分层架构设计,核心组件包括ResourceManager、ResourceTemplate和各类Resource实现。ResourceManager统一管理资源注册表,支持静态和动态资源处理。文档详细解析了资源读取流程:客户端请求首先查询具体资源注册表,未命中时则遍历模板注册表匹配动态资源。核心类图展示了管理器与模板、资源类的关联关系,序列图则清晰呈现了资源读取的完整流程。该架构实现了资源注册与访问的解耦,具备灵活扩展能力。
2025-11-02 11:53:33
859
原创 第四章 FastMCP 服务器框架之Streamable HTTP 传输集成
Streamable HTTP协议是一种基于HTTP POST/SSE混合模式的双向流式通信协议。该协议支持会话持久化、显式会话终止和断线续传等高级功能,通过mcp-session-id实现会话管理,EventStore接口提供消息存储与重放机制。协议采用版本协商机制,通过mcp-protocol-version头部处理版本兼容性。适用于需要可靠实时通信的分布式系统和Web API集成场景,能有效处理网络中断和消息重传问题。
2025-11-02 11:52:52
595
原创 第四章 FastMCP 服务器框架之STDIO 传输集成
文章摘要:FastMCP 框架的 STDIO 传输协议分析 FastMCP 框架实现了一种基于标准输入输出的轻量级进程间通信协议。该协议通过 run_stdio_async 方法启动,利用 stdio_server 上下文管理器建立异步读写流,实现了双向通信模型。核心组件包括 stdin_reader 和 stdout_writer 协程,它们分别处理输入/输出方向的 JSONRPC 消息解析与序列化。协议采用内存对象流解耦物理层与逻辑层,支持异步并发处理,适用于 CLI 工具集成场景。不过该协议存在会话管
2025-11-02 11:52:12
1188
原创 第四章 FastMCP 服务器框架之SSE 传输集成
FastMCP框架中的SSE传输协议实现分析 本文档详细解析了FastMCP框架中SSE(Server-Sent Events)传输协议的核心实现机制。通过SseServerTransport类,系统建立了高效的双向通信通道,采用UUID作为会话标识符实现会话关联。文档深入剖析了连接建立、消息推送和客户端指令接收的全流程,并展示了会话关联与路由机制的工作原理。此外,还详细介绍了DNS重绑定防护安全中间件的验证流程和配置选项,以及Web服务器环境的部署配置示例,包括Starlette和FastMCP框架的集成
2025-11-02 11:51:17
908
原创 第四章 FastMCP 服务器框架之传输协议集成
FastMCP框架采用分层架构设计,支持STDIO、SSE和Streamable HTTP三种传输协议,通过统一的适配器接口实现协议无关性。核心设计包括:1) 协议适配层将传输细节抽象化,向上提供统一接口;2) run方法根据参数选择具体协议实现;3) 异步启动方法封装协议特定逻辑;4) 分层架构分离业务逻辑与传输层。该设计支持灵活部署场景,包括进程内通信、实时Web应用和流式HTTP交互,通过配置参数即可切换协议而无需修改业务代码。
2025-11-02 11:50:34
642
原创 第四章 FastMCP 服务器框架
本文档深入解析了FastMCP服务器框架的设计原理与实现细节。作为MCP协议的高层抽象,FastMCP通过统一接口整合工具、资源和提示词三大核心功能模块。其核心架构采用高内聚低耦合设计,主要包含FastMCP类、工具管理器、资源管理器和提示词管理器等组件。文档详细阐述了初始化流程、配置参数说明、功能模块整合机制以及请求分发与会话管理方式,并提供了不同环境下的部署实践建议,为开发者构建高效可靠的MCP服务器提供了全面指导。
2025-11-01 12:27:27
770
原创 第四章 服务器开发之低级服务器API
本文档详细解析了低级服务器(LowLevelServer)的实现架构与核心组件。主要内容包括: 项目结构:核心代码位于src/mcp/server/lowlevel/,示例代码在examples/snippets/servers/lowlevel/ 核心组件:以Server类为中心,配合NotificationOptions类,提供请求/通知处理能力 架构设计:采用异步事件驱动模型,通过装饰器模式注册处理程序 详细工作流程:包括请求处理、消息分发和错误处理机制 文档通过Mermaid图表直观展示了类关系、消
2025-11-01 12:26:55
749
原创 第四章 服务器开发之资源管理与访问
摘要 FastMCP框架的资源管理器采用分层架构设计,核心是ResourceManager类,维护资源和模板两个独立注册表。支持静态资源注册和动态模板匹配两种访问模式,通过ResourceTemplate实现参数化URI匹配和动态资源生成。系统包含FileResource、TextResource等多种资源类型实现,提供灵活的扩展机制。资源查找时优先匹配具体资源,未命中则遍历模板生成动态内容。设计实现了资源注册与访问的解耦,并通过装饰器简化使用,支撑FastMCP服务器的高效资源管理需求。
2025-11-01 12:26:21
831
原创 第四章 服务器开发之提示词服务
FastMCP 框架的提示词管理器(PromptManager)实现了高效管理可复用提示词的功能,支持纯文本和带变量的模板提示词。核心组件包括 PromptManager 类和 Prompt 类,前者负责全局管理,后者定义模板结构。系统提供完善的注册、存储、检索和渲染机制,支持变量替换和上下文注入。通过 simple-prompt 示例展示了实际应用方式,包括元数据配置和客户端调用接口。该管理器实现了提示词全生命周期的统一管理,为AI对话系统提供了灵活高效的基础设施支持。
2025-11-01 12:25:53
1162
原创 第四章 服务器开发之工具管理与注册
本文解析了基于@tool装饰器的工具注册机制,详细介绍了tool_manager.py如何通过反射实现函数自动发现与描述生成。系统核心包括ToolManager类管理工具生命周期,@tool装饰器注册函数为可调用工具,以及元数据提取机制利用inspect模块和Pydantic验证参数类型。调用流程从FastMCP.call_tool()开始,经过参数预解析、验证后执行工具函数,支持结构化输出转换。该机制提供了输入验证、类型转换和错误处理等功能,同时支持高级特性如异步工具和流式输出。
2025-11-01 12:25:22
875
原创 第四章 服务器开发
本文档系统介绍MCP服务器开发SDK,重点解析FastMCP类的核心架构与功能实现。SDK采用分层模块化设计,通过ToolManager、ResourceManager和PromptManager三大组件分别管理工具、资源和提示词生命周期。详细阐述了@tool装饰器注册机制、函数元数据提取流程,以及多种传输协议(STDIO/WebSocket/SSE/HTTP)的支持方式。文档包含完整项目结构说明、组件交互流程图解,以及从配置初始化到运行部署的全过程指导,为开发者提供构建功能完整服务器的系统解决方案。
2025-10-31 08:50:34
1269
原创 第三章 Streamable HTTP协议之协议模式连接恢复与事件存储-InMemoryEventStore示例实现
InMemoryEventStore 是一个基于内存的事件存储实现,专为测试和演示流式HTTP通信的可恢复性功能而设计。它通过双端队列和字典索引来管理事件流,支持断线重连后的事件重放。核心机制包括自动生成事件ID、固定长度队列维护(通过max_events_per_stream参数控制)和高效的事件查找。虽然简单高效,但由于内存限制不适合生产环境,主要用于理解流式通信状态恢复原理和简化测试流程。实现权衡了内存占用与恢复窗口,默认100个事件/流的配置在测试场景中表现良好。
2025-10-31 08:49:37
957
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅