用途:该技能提供经 FastMCP 真实 API 验证的生产实践,适用于数据库、REST API、文件系统、Git、Slack、邮件等任意外部服务,用于编写新工具或提示、改进工具 schema 与输出格式、添加中间件与生命周期钩子、部署服务器以及测试和调试工具调用。不适用于通用 MCP 问题、协议讲解或从零搭建服务器。
主要能力:工具注册以 docstring 作为 schema,供 LLM 判断是否调用;支持多操作工具模式,将相关操作合并为一个带 operation 参数的工具;统一返回结构(success/error/partial),并附带预格式化 output 字段;支持中间件做日志、计时、鉴权注入与响应转换;支持 lifespan 启动/关闭管理,通过 ctx.lifespan_context 访问共享状态;支持部分失败聚合,硬失败中止、软失败记录错误。
使用方式:先定义工具、中间件与 lifespan,再创建 FastMCP 实例并注册工具,最后在 if name == "main": 中调用 mcp.run()。传输方式:stdio 为默认,适合本地代理;streamable-http 适合远程或多用户,如 mcp.run(transport="streamable-http", host="0.0.0.0", port=8000);sse 适合不支持 streamable-http 的旧客户端。测试分两层:直接调用函数(ctx=None)与使用 Client(mcp) 进程内测试完整协议并运行 lifespan。
限制与注意:Context 参数应写为 Optional[Context] = None;工具应在显式方法中注册而非模块级;不要在 docstring 中硬编码有效值,应通过 schema 操作获取;始终返回 dict,否则测试中 result.data["status"] 会报错;中间件无法剥离未知参数,参数校验在中间件之前完成;"partial" 是项目约定而非框架概念。其余细节暂未提供。