首页SEO优化网站建设趣事分享SEM教程常用代码下载网站建设模板网站设计PHP教程Premiere Pro教程建站教程网站优化JavaScript教程图集关注公众号

MCP工具描述怎么写:名称、输入Schema和权限边界的实用规范

MCP工具描述怎么写:名称、输入Schema和权限边界的实用规范

导语:MCP工具能不能被AI稳定调用,很大程度取决于工具描述是否清楚。名称太抽象、参数没有示例、错误返回不统一,都会让模型在选择工具和填写参数时产生误判。

MCP工具通过名称用途输入Schema错误返回和权限边界提升AI调用准确率的示意图
MCP工具描述既是给模型看的说明书,也是服务端建立参数和权限约束的入口。

工具名称要表达动作和对象

工具名称最好让人一眼看出“对什么对象做什么动作”。例如get_article、search_resources、publish_article比run_task、handle_data更容易被正确选择。名称统一使用项目约定的命名风格,不要同一类工具一会儿用动词开头,一会儿用名词开头。

描述里要写适用和不适用场景

工具描述不只是介绍功能,还应该告诉模型什么时候使用、什么时候不要使用。查询文章详情的工具不应该被用来搜索关键词,发布工具也不应该承担草稿生成。把边界写出来,能减少工具误选。

  • 说明工具解决的具体问题;
  • 说明必须提供哪些前置条件;
  • 说明哪些请求应该交给其他工具。

输入Schema要限制类型和范围

输入Schema中要明确类型、必填项、长度、枚举值和默认行为。对于ID、分页、日期和状态字段,不要只写成宽泛的字符串。字段描述还可以补充格式示例,帮助模型生成更符合接口要求的参数。

{
  "type": "object",
  "required": ["resource_id"],
  "properties": {
    "resource_id": {"type": "integer", "minimum": 1},
    "mode": {"type": "string", "enum": ["preview", "publish"]}
  }
}

有副作用的工具要显式标注

读取工具和写入工具的风险不同。删除、发布、发送通知、修改配置等操作,都应该在描述和接口层明确标注副作用。必要时增加preview或dry_run模式,让模型先展示将要执行的动作,再等待确认。

错误返回要让模型知道下一步

错误信息不能只有“操作失败”。建议使用稳定的错误码,并说明是参数错误、权限不足、资源不存在、限流还是服务暂时不可用。对于可恢复错误,返回建议动作;对于不可恢复错误,明确告诉模型不要继续重试。

权限边界必须在服务端执行

不能因为工具描述写了“只能操作当前用户资源”,就认为权限已经完成。服务端必须重新校验调用身份、资源归属、允许的字段和操作范围。模型提供的用户ID、角色和权限信息都不能直接作为可信依据。

发布前做四类测试

工具上线前至少测试正常参数、缺少必填项、错误类型、越权资源和重复调用。把这些测试固化成接口测试或契约测试,后续修改Schema时才能及时发现兼容问题。

总结

MCP工具描述写得好,模型才更容易选对工具、填对参数、理解错误并及时停止。名称讲清动作和对象,Schema限制输入,服务端落实权限,工具调用的稳定性才有基础。

评论 0

评论功能暂未开放