最终版标准轨道
| 字段 | 值 |
|---|---|
| SEP | 986 |
| 标题 | 指定工具名称格式 |
| 状态 | 最终版 |
| 类型 | 标准轨道 |
| 创建日期 | 2025-07-16 |
| 作者 | kentcdodds |
| 赞助人 | 无 |
| PR | #986 |
摘要
模型上下文协议 (MCP) 目前缺乏工具名称的标准化格式,导致实现者和用户都存在不一致和困惑。本 SEP 提出了一种清晰、灵活的工具名称标准:工具名称应为 1–64 个字符,区分大小写,并且可以包含字母数字字符、下划线 (_)、连字符 (-)、点 (.) 和正斜杠 (/)。此举旨在最大限度地提高 MCP 实现之间的兼容性、清晰度和互操作性,同时适应广泛的命名约定。动机
如果没有规定的工具名称格式,MCP 实现会采用各种命名约定,包括不同的分隔符、大小写和字符集。这种不一致可能导致混淆、工具调用错误以及文档和自动化方面的困难。标准化允许的字符和长度将:- 使工具名称在不同客户端之间可预测且互操作。
- 允许分层和命名空间化的工具名称(例如,使用 / 和 .)。
- 支持人类可读和机器生成的名称。
- 避免可能阻碍有效用例的不必要限制。
理由
社区讨论突出了工具命名灵活性的需求。虽然某些约定(如小写连字符格式)很常见,但许多工具和客户端使用大写字母、下划线、点和斜杠来进行命名空间划分或提高清晰度。提议的模式——允许 a-z、A-Z、0-9、_、-、. 和 /——基于主要客户端(例如 VS Code、Claude)中使用的模式,并与编程和 API 中的常见约定保持一致。限制空格和逗号可以避免解析问题和歧义。长度限制 (1–64) 足以满足大多数用例,同时防止滥用。规范
- 工具名称的长度应在 1 到 64 个字符之间(含)。
- 工具名称区分大小写。
- 允许字符:大写和小写 ASCII 字母 (A-Z, a-z)、数字 (0-9)、下划线 (_)、连字符 (-)、点 (.) 和正斜杠 (/)。
- 工具名称不应包含空格、逗号或其他特殊字符。
- 工具名称在其命名空间内应是唯一的。
- 有效工具名称示例:
- getUser
- user-profile/update
- DATA_EXPORT_v2
- admin.tools.list
向后兼容性
对于使用不允许字符或超出新长度限制的现有工具,此更改不向后兼容。为了尽量减少干扰:- 现有的不符合规范的工具名称应作为别名支持至少一个主版本,并带有弃用警告。
- 工具作者应更新其文档和代码以使用新格式。
- 应提供迁移指南以协助实现者更新其工具名称。