MCP 协议简介
了解 Model Context Protocol 工作原理
什么是 MCP
MCP(Model Context Protocol)是一种标准协议,用于连接 AI 工具与外部数据源和工具。它由 Anthropic 提出,旨在为 AI 模型提供标准化的工具调用能力。
为什么需要 MCP
传统 AI 调用的问题
- 每次都需要在提示词中描述工具使用方法
- AI 可能误解工具参数
- 缺乏结构化的返回格式
- 难以保证调用安全性和稳定性
MCP 的优势
- 标准化:统一的接口定义
- 结构化:明确的输入输出格式
- 可验证:参数类型检查
- 可扩展:易于添加新工具
AgileBuilder MCP 架构
┌─────────────┐
│ AI 工具 │
│ Cursor/Claude│
└──────┬──────┘
│ MCP 协议
┌──────▼──────┐
│ MCP Client │
└──────┬──────┘
│ HTTP
┌──────▼──────┐
│AgileBuilder │
│ MCP Server │
└──────┬──────┘
│
┌──────▼──────┐
│ 本地数据 │
│ 模板/文档 │
└─────────────┘
AgileBuilder MCP 工具
listTemplates
列出所有可用的项目模板。
// 请求
{
"tool": "listTemplates",
"parameters": {}
}
// 响应
{
"templates": [
{
"name": "react-starter",
"description": "React 项目启动模板"
}
]
}
getTemplateInfo
获取模板详细信息。
// 请求
{
"tool": "getTemplateInfo",
"parameters": {
"template": "react-starter"
}
}
// 响应
{
"name": "react-starter",
"description": "React 项目启动模板",
"variables": [
{
"name": "projectName",
"type": "string",
"required": true
}
]
}
generateProject
生成项目。
// 请求
{
"tool": "generateProject",
"parameters": {
"template": "react-starter",
"output": "./my-app",
"variables": {
"projectName": "my-app"
}
}
}
// 响应
{
"success": true,
"projectPath": "./my-app",
"message": "项目生成成功"
}
MCP Resource
除了工具调用,MCP 还支持 Resource(资源),用于向 AI 提供上下文信息。
文档资源
resource://agile-builder/docs/{doc-slug}
AI 可以通过 Resource 获取:
- 团队代码规范
- API 设计规范
- 命名约定
- 最佳实践文档
模板资源
resource://agile-builder/templates/{template-name}
AI 可以通过 Resource 获取:
- 模板结构预览
- 变量定义详情
- 生成示例
工作原理
- 启动 MCP 服务:AgileBuilder 启动本地 MCP 服务器
- 配置 AI 工具:在 AI 工具中配置 MCP 服务地址
- AI 调用工具:用户提出需求,AI 自动调用 MCP 工具
- 返回结构化结果:AI 获取工具返回,进行下一步处理
与传统提示词的区别
| 传统提示词 | MCP | |
|---|---|---|
| 工具描述 | 在提示词中描述 | 标准化接口定义 |
| 参数传递 | 自然语言描述 | 结构化参数 |
| 返回格式 | 自然语言 | 结构化数据 |
| 准确性 | 依赖 AI 理解 | 类型安全 |
| 稳定性 | 可能有偏差 | 确定性强 |