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 获取:

  • 模板结构预览
  • 变量定义详情
  • 生成示例

工作原理

  1. 启动 MCP 服务:AgileBuilder 启动本地 MCP 服务器
  2. 配置 AI 工具:在 AI 工具中配置 MCP 服务地址
  3. AI 调用工具:用户提出需求,AI 自动调用 MCP 工具
  4. 返回结构化结果:AI 获取工具返回,进行下一步处理

与传统提示词的区别

传统提示词MCP
工具描述在提示词中描述标准化接口定义
参数传递自然语言描述结构化参数
返回格式自然语言结构化数据
准确性依赖 AI 理解类型安全
稳定性可能有偏差确定性强

下一步