当前位置: 首页 > news >正文

[智能体-59]:@mcp.tool () 语法完整详解

基于FastMCP标准工具注册装饰器1. 作用mcp.tool()将普通 Python 函数注册为 MCP 协议可远程调用工具。注册后客户端通过 MCP 报文就能MCP Server自动调用该函数无需程序员手动路由。mcp.tool () 命名映射规则1. 无参写法默认以函数名作为对外工具名python运行mcp.tool() def add(a: float, b: float) - float: return a b对外工具标识add2. 传 name 参数自定义工具名与原函数名解耦python运行mcp.tool(namemath_sum) def add(a: float, b: float) - float: return a b对外工具标识math_sum内部仍执行add函数逻辑3. 补充参数互不干扰description、deprecated 仅做备注标记不改变工具检索名称python运行mcp.tool(namesubtract_calc, description数值减法) def sub(a: float, b: float) - float: return a - b对外调用名subtract_calc2. 基础语法结构python运行from mcp.server.fastmcp import FastMCP # 1. 创建服务实例 mcp FastMCP(服务名) # 2. 工具注册装饰器 mcp.tool(可选参数) def 函数名(形参: 类型注解) - 返回类型: 工具描述文档 # 业务逻辑 return 数据3. 装饰器可选参数3.1 name 自定义工具名python运行mcp.tool(namecalc_add) def add(a: float, b: float) - float: return a b客户端调用时用calc_add匹配函数。3.2 description 强制描述python运行mcp.tool(description两个浮点数求和计算)3.3 deprecated 标记废弃python运行mcp.tool(deprecatedTrue)4. 函数参数规范强制要求必须写类型注解int/float/str/bool/dict/list支持默认参数不支持动态不定参*args/**kwargs示例合法参数python运行mcp.tool() def user_info(name: str, age: int 18) - dict: return {name: name, age: age}5. 返回值规范支持返回类型基础类型int, float, str, bool复合类型dict, list框架自动序列化为 MCP JSON 协议报文python运行# 合法 return 100 return {code:0, data:ok} return [1,2,3]6. 文档字符串作用必填建议函数内三引号注释会自动同步给客户端大模型用于 AI 自动理解工具用途、自动填参。python运行mcp.tool() def add(a: float, b: float) - float: 实现两个数字相加 :param a: 加数1 :param b: 加数2 :return: 相加结果 return a b7. 底层运行机制代码加载时装饰器自动扫描函数签名、参数、注释存入 MCP 内部工具注册表客户端发起call_tool请求框架按函数名匹配、校验参数、自动执行结果封装成标准 MCP 响应返回8. 完整可运行样板python运行from mcp.server.fastmcp import FastMCP mcp FastMCP(ToolDemo) mcp.tool(namemath_add, description浮点加法运算) def add(a: float, b: float) - dict: 两数相加 return {sum: a b} if __name__ __main__: mcp.run(transportstdio)9. 常见报错踩点无类型注解→ 注册失败环境没装 mcp→ 找不到mcp.server.fastmcp参数写法不规范→ 客户端调用校验失败函数内部异常→ MCP 返回调用错误报文
http://www.zskr.cn/news/1374298.html

相关文章:

  • Docbox测试驱动开发实践:确保API文档质量的最佳方法
  • 打破终端边界:WaveTerm如何用插件化设计重塑开发者工作流
  • 别再手动调参了!用pmdarima的auto_arima批量预测300家门店销售额,我踩过的坑都在这
  • 如何用py-motmetrics在5分钟内实现多目标跟踪算法量化评估
  • 从10x Visium到MERFISH:用Scanpy搞定空间转录组数据预处理与可视化的完整流程
  • LightGBM分类回归保姆级教程:从鸢尾花数据集到房价预测(附Python代码)
  • 北欧路线老年旅行团哪家体验感好?北欧路线老年旅行团推荐 - 品牌2025
  • ComfyUI-Custom-Scripts自动完成功能完整指南:提升AI绘画效率的终极解决方案
  • 第一篇博客:大学生活
  • 避坑指南:用TwoSampleMR做孟德尔随机化时,我踩过的那些‘雷’和解决方案
  • 为什么选择Vueify?探索Vue单文件组件的Browserify终极解决方案 [特殊字符]
  • GetSubtitles终极指南:5分钟掌握智能字幕下载,高效解决观影难题
  • 终极指南:如何快速搭建免费的B站动态推送QQ机器人
  • sublime-evernote命令速查表:15个必学命令让你操作如飞 [特殊字符]
  • RichTextView错误处理与调试:解决常见渲染问题的10个技巧
  • [智能体-60]:MCP 里 stdio、SSE、Streamable HTTP 三种传输详解与对比
  • 告别杂乱!用FileMenu Tools 8.4.2一键清理Windows 11右键菜单,附赠我的常用命令清单
  • WinFsp深度解析:如何在Windows上轻松构建用户空间文件系统
  • 终极指南:如何使用Stillcolor彻底解决Mac屏幕闪烁问题,保护你的视力健康
  • CDecrypt深度解析:专业Wii U NUS文件解密工具实践指南
  • 从零到宇宙工厂:5步掌握戴森球计划蓝图库的工业化革命
  • 2026年比较好的装修施工用户好评公司 - 行业平台推荐
  • 2026金融场景工业平板评测与产品推荐:工业计算机厂家、全国产化主板、国产化电脑定制、工业平板电脑、工业平板、嵌入式工控机选择指南 - 优质品牌商家
  • ThriftPy在微服务架构中的应用:企业级RPC服务搭建实战
  • Linux运维实战:用wipefs、dd和clearpart彻底清除磁盘分区(含恢复技巧)
  • 避坑指南:在银河麒麟V10 ARM服务器安装JDK8,我踩过的那些雷(附Oracle账号问题解决)
  • Jmeter分布式压测调优实战:从零构建10Wqps稳定压测系统
  • Devika中Playwright安装Permission Denied问题三方案详解
  • Playwright-skill插件三种安装方式实战指南
  • 实战精通openpilot自动驾驶系统:从安装到深度定制的完整指南