引言
在现代工作和生活中,我们经常被各种重复性任务所困扰——从每周的膳食计划到代码审查反馈,从文档更新到报告生成。这些任务虽然不复杂,却消耗了大量宝贵时间。MCP(Model Context Protocol)提示技术为解决这一问题提供了创新方案,它将AI能力与结构化数据访问相结合,为工作流程自动化带来了全新可能。本文将详细介绍如何利用MCP提示系统构建高效自动化流程,并以膳食计划自动化为例,展示MCP的核心组件和实现方法。
正文内容
重复性任务自动化的必要性
重复性任务是我们日常工作和生活中不可避免的一部分。根据MCP核心维护者Inna Harper的研究,常见耗时的重复性任务包括:
- 应用代码审查反馈
- 生成周期性报告(如周报、月报)
- 更新技术文档和知识库
- 创建样板代码和项目结构
这些任务虽然遵循可预测的模式,但手动执行既繁琐又容易出错。MCP提示技术正是为解决这类问题而设计,它超越了简单的命令快捷方式,将脚本编写的灵活性与现代AI系统的智能相结合,成为构建工作流程自动化的强大工具。
MCP自动化的核心组件
MCP提示系统由三个核心组件构成,理解这些组件是构建高效自动化的关键。
1. 资源模板:动态内容提供者
在传统方法中,静态资源需要为每个内容单独定义URI和元数据。例如,管理20种不同菜系的食谱可能需要定义20个独立资源:
file://recipes/italian.md
file://recipes/mexican.md
...
这种方法扩展性差,管理成本高。MCP通过资源模板解决了这一问题,使用参数化URI模式将静态资源转换为动态内容提供者。例如:
file://recipes/{cuisine}.md
这种模板机制支持多种高级应用场景:
- 分层数据结构(file://docs/{category}/{topic})
- Git仓库内容访问(git://repo/{branch}/path/{file})
- API资源调用(https://api.example.com/users/{userId}/data)
- 查询参数处理(https://example.com/{collection}?type={filter})
2. 补全功能:智能参数建议
“是’italian’还是’Italian’还是’it’?”——用户往往不记得确切的参数值。MCP的补全功能通过在用户输入时提供智能建议,创建了直观而非限制性的交互界面。
不同客户端呈现补全的方式各异:
- VS Code:可筛选的下拉列表
- 命令行工具:模糊匹配
- Web界面:丰富的预览效果
无论界面如何变化,背后的数据都来自服务器,确保了跨客户端的一致性。以下是一个实现补全功能的代码示例:
complete: {
cuisine: (value) => {
return CUISINES.filter((cuisine) => cuisine.startsWith(value));
},
}
3. 提示:上下文感知的命令入口
提示是自动化的入口点,从简单的文本指令到复杂的上下文感知操作,MCP提示可以适应不同复杂度的用例。让我们看一个提示的进化过程:
基本静态提示:
"Create a meal plan for a week"
带参数的动态提示:
"Create a meal plan for a week using {cuisine} cuisine"
包含资源的复杂提示:
{
role: "user",
content: {
type: "resource",
resource: {
uri: resourceUri,
mimeType: "text/markdown",
text: recipeContent,
},
},
}
资源嵌入使AI能够基于用户特定数据而非通用知识工作,这是MCP提示与传统AI命令的关键区别。
构建食谱服务器的实践指南
让我们通过构建一个完整的食谱服务器,将上述概念付诸实践。
先决条件
开始前需准备:
- Node.js v18或更高版本及npm
- MCP SDK:
npm install @modelcontextprotocol/sdk
- 支持MCP提示的客户端,如安装MCP扩展的VS Code
服务器设置
首先创建基本服务器结构:
const server = new McpServer({
name: "favorite-recipes",
version: "1.0.0",
});
async function main() {
const transport = new StdioServerTransport();
await server.connect(transport);
}
main().catch((error) => {
console.error("Server error:", error);
process.exit(1);
});
实现资源模板
注册带补全功能的资源模板:
server.registerResource(
"recipes",
new ResourceTemplate("file://recipes/{cuisine}", {
list: undefined,
complete: {
cuisine: (value) => {
return CUISINES.filter((cuisine) => cuisine.startsWith(value));
},
},
}),
{
title: "Cuisine-Specific Recipes",
description: "Traditional recipes organized by cuisine",
},
async (uri, variables, _extra) => {
const cuisine = variables.cuisine as string;
if (!CUISINES.includes(cuisine)) {
throw new Error(`Unknown cuisine: ${cuisine}`);
}
const content = formatRecipesAsMarkdown(cuisine);
return {
contents: [
{
uri: uri.href,
mimeType: "text/markdown",
text: content,
},
],
};
},
);
实现提示功能
注册带补全的提示:
server.registerPrompt(
"weekly-meal-planner",
{
title: "Weekly Meal Planner",
description: "Create a weekly meal plan and grocery shopping list...",
argsSchema: {
cuisine: completable(z.string(), (value) => {
return CUISINES.filter((cuisine) => cuisine.startsWith(value));
}),
},
},
async ({ cuisine }) => {
const resourceUri = `file://recipes/${cuisine}`;
const recipeContent = formatRecipesAsMarkdown(cuisine);
return {
title: `Weekly Meal Planner - ${cuisine} Cuisine`,
messages: [
{
role: "user",
content: {
type: "text",
text: `Plan cooking for the week. I've attached the recipes from ${cuisine} cuisine...`,
},
},
{
role: "user",
content: {
type: "resource",
resource: {
uri: resourceUri,
mimeType: "text/markdown",
text: recipeContent,
},
},
},
],
};
},
);
扩展自动化应用场景
MCP提示开辟了广阔的自动化可能性,其模式可应用于多种领域:
- 提示链:按顺序执行多个关联提示(如:计划膳食→生成购物清单→下单食材)
- 动态提示:根据可用资源或季节变化自适应调整
- 跨服务器工作流:协调多个MCP服务器实现复杂自动化
- 外部触发器:通过webhook或定时任务激活提示
具体应用场景包括:
- 基于代码库的文档自动生成
- 连接数据源的报表自动创建
- 理解项目结构的开发工作流
- 全上下文客户支持自动化
结论
MCP提示技术为重复性任务自动化提供了强大而实用的工具。从简单的膳食计划到复杂的企业工作流,MCP的模块化架构允许开发者从小处着手,逐步扩展自动化范围。通过资源模板、智能补全和上下文感知提示这三大核心组件,MCP实现了AI能力与结构化数据的无缝结合,为各类工作流程自动化提供了统一解决方案。
关键收获包括:
- MCP提示能包含动态资源,为AI提供任务完整上下文
- 资源模板支持可扩展的内容服务,避免数据重复
- 模块化服务器架构允许灵活组合不同功能
- 应用模式广泛,从个人效率工具到企业级自动化均可受益
随着AI技术的不断发展,MCP提示将继续拓展自动化边界,帮助个人和组织专注于创造性工作,将重复性任务交给智能系统处理。无论是技术开发者还是普通用户,现在都是探索MCP自动化潜力的最佳时机。