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

MCP 工具介绍及编写指南

一、什么是 MCP?

MCP 即 Model Context Protocol(模型上下文协议),是给 AI 提供的标准化工具接口。通过这个接口,AI 可以实现多种操作,比如读取文件、查询数据库、执行命令、调用接口以及访问各类服务。

二、MCP 适合用什么语言编写?

官方首选语言是 TypeScript(简称 TS/JS),上手便捷、适配性最佳。

Java 也可编写,但代码结构复杂、体量较重,不推荐新手使用。

Python 同样支持编写,但在 Windsurf 生态的适配性上,不如 TS 完善。

三、MCP 工具的固定编写结构

无论是什么功能的 MCP 工具,核心都只有 4 个部分,缺一不可:

  1. 工具名称:明确 AI 调用该工具时使用的标识

  2. 工具描述:清晰说明工具的功能,让 AI 理解其用途

  3. 入参定义:规定 AI 调用工具时,需要传递的参数信息

  4. 执行逻辑:工具实现具体功能的核心代码

四、MCP 编写模板(TS 版)

// 1. 定义 MCP 工具 mcp.tool({ // ====================== // 2. 工具基本信息 // ====================== name: "my_first_tool", // 工具名(英文小写,下划线) description: "我的第一个MCP工具", // 给AI看的说明 // ====================== // 3. 入参(AI 必须传的参数) // ====================== parameters: { name: { type: "string", description: "用户名称", required: true }, age: { type: "number", description: "年龄" } }, // ====================== // 4. 执行逻辑(真正干活) // ====================== async execute({ name, age }) { // 这里写业务代码 return `你好 ${name},你的年龄是 ${age}`; } });

五、实际案例:读取 Java 文件的 MCP

mcp.tool({ name: "read_java_file", description: "读取项目中的Java文件", parameters: { filePath: { type: "string", description: "Java文件路径", required: true } }, async execute({ filePath }) { // 真实代码:读取文件 const content = fs.readFileSync(filePath, "utf-8"); return { path: filePath, content: content }; } });

六、MCP 编写规则

编写 MCP 工具需严格遵循以下规则,确保 AI 能正常调用、工具稳定运行:

1. 工具名规范

必须满足以下三点,缺一不可:

  • 全部为小写字母

  • 单词之间用下划线连接

  • 禁止包含空格、中文及特殊字符

示例:

正确:read_java_file

错误:ReadJavaFile(大小写混合)

错误:读取文件(包含中文)

2. 参数类型规范

参数必须明确标注类型,常用类型如下:

  • string:字符串类型

  • number:数字类型

  • boolean:布尔类型(true/false)

  • array:数组类型

3. 执行函数规范

执行逻辑的函数必须满足:

  • 必须定义为 async execute() 异步函数

  • 返回值只能是对象或字符串,不可返回其他类型

  • 函数内部需做好异常处理,禁止出现报错,确保工具稳定运行

http://www.jsqmd.com/news/697454/

相关文章:

  • 语音克隆如此简单:Fish Speech 1.5零基础教程,30秒搞定音色复制
  • LIO-SAM只用6轴IMU行不行?从原理到代码的深度避坑解析
  • C++虚函数与多态实现精髓
  • 茉莉花插件:让Zotero中文文献管理变得简单高效
  • 手把手教你用Simulink复现永磁同步电机无感FOC观测器(附模型参数计算脚本)
  • 2026年绍兴AI推广与短视频代运营深度对比 - 年度推荐企业名录
  • 别再手动调曝光了!Cesium for Unreal 5.2 新手避坑:从白茫茫一片到真实地球光影的完整设置流程
  • Direct3D 8游戏兼容性终极解决方案:d3d8to9深度揭秘
  • 手机厂商没告诉你的‘秒开’秘密:CCC数字钥匙里的LPCD辅助功能到底是怎么工作的?
  • XUbuntu24.04与Ubuntu24.04 LTS版本:轻量级与现代化的桌面环境选择指南
  • 别再死记硬背了!用Python+UDP实战带你搞懂Linux的recvfrom和sendto
  • 清雪车远程监控运维管理系统方案
  • 2026年绍兴AI推广与短视频代运营深度对比:一键式视频营销服务选型指南 - 年度推荐企业名录
  • 魔兽争霸3优化神器:WarcraftHelper全方位兼容性解决方案
  • CentOS7服务器磁盘告急?别慌!手把手教你用LVM无损扩容根目录(附fdisk/lvextend/xfs_growfs全流程)
  • 手机微信里删除的文件还能恢复吗?4个方法帮你找回,最后一个适合小白
  • 别再手动敲字了!用Python的pytesseract库,5分钟搞定图片文字提取(附中文识别配置)
  • 2026年上海工业模型定制与全国大型仿真模型方案深度指南 - 企业名录优选推荐
  • FPGA与STM32串口通信避坑指南:从256000高波特率设置到FIFO时序的实战经验
  • 洛阳市如何选择GEO搜索优化排名代运营公司有哪些 - 舒雯文化
  • wxauto微信自动化解决方案:零代码打造智能聊天机器人,实现高效消息处理与智能监听
  • 哈密瓜矮砧密植园的水肥一体化管道铺设实战手册
  • 别再死记硬背了!邻接矩阵、邻接表、链式前向星,一张图帮你彻底分清适用场景
  • GitHub中文插件终极指南:3分钟免费实现GitHub界面全面汉化
  • 如何高效使用biliTickerBuy:B站会员购抢票神器的完整操作指南
  • 从电容到内存条:手把手拆解一颗DRAM芯片的内部架构与工作流程
  • Burp Suite 2026.4 (macOS, Linux, Windows) - Web 应用安全测试和扫描
  • 深度剖析:GEO监测工具行业排行,搜极星凭何登顶?
  • AR和MR光波导器件耦合光栅的优化
  • Java 后端分层架构详解