docs/archives/mcp-template-parameter-improvement.md
MCP服务器的工具参数中的template参数原本是可选的字符串类型,用户不知道可以填写什么值,也没有默认值。这导致用户体验不佳,因为:
将template参数改为枚举类型,并提供默认值:
在packages/mcp-server/src/config/templates.ts中添加了getTemplateOptions函数:
export async function getTemplateOptions(
templateManager: TemplateManager,
templateType: 'optimize' | 'userOptimize' | 'iterate'
): Promise<Array<{value: string, label: string, description?: string}>>
该函数:
在packages/mcp-server/src/index.ts中修改了三个工具的inputSchema:
{
"template": {
"type": "string",
"description": "选择优化模板。不同模板有不同的优化策略和风格。",
"enum": ["user-prompt-professional", "user-prompt-basic", "user-prompt-planning"],
"default": "user-prompt-basic"
}
}
{
"template": {
"type": "string",
"description": "选择优化模板。不同模板有不同的优化策略和风格。",
"enum": ["general-optimize", "output-format-optimize", "analytical-optimize"],
"default": "general-optimize"
}
}
{
"template": {
"type": "string",
"description": "选择迭代优化模板。不同模板有不同的迭代策略。",
"enum": ["iterate"],
"default": "iterate"
}
}
在packages/mcp-server/src/adapters/core-services.ts中添加了getTemplateManager()方法,用于获取模板管理器实例。
通过测试验证了:
-default后缀模板,只显示真正的内置模板修复后的模板选项:
user-prompt-professional, user-prompt-basic, user-prompt-planning (默认: user-prompt-basic)general-optimize, output-format-optimize, analytical-optimize (默认: general-optimize)iterate (默认: iterate)所有模板ID都是真实存在的内置模板,用户可以放心使用。