快速掌握 MCP 精髓,让 AI 为我们提效

一、前言:当 LLM 遇到 "能力焦虑"

想象一下,你正在使用一个强大的 AI 助手,它能理解你的问题、生成文案、甚至帮你写代码。但当你问它 "今天北京的天气如何" 时,它却支支吾吾 —— 因为它的知识库停留在 2023 年,无法联网获取实时数据。这就是大语言模型(LLM)的 "能力边界":海量的预训练数据让它很聪明,但缺乏实时感知世界的能力。

为了解决这个痛点,AI 领域涌现出许多创新方案,比如 Function Calling 让 LLM 能调用外部工具,AI Agent 赋予它自主决策能力。而今天要介绍的MCP 协议(Model Context Protocol),则通过标准化的 "接口语言",让 AI 模型与外部世界的交互变得像 "插 U 盘" 一样简单。

二、MCP:AI 与世界对话的 "通用语言"

2.1 什么是 MCP?

MCP 的官方定义是 "为应用程序向 LLM 提供上下文的开放协议"。如果把 LLM 比作一个 "超级大脑",那么 MCP 就是大脑与外界的 "神经接口"—— 它规定了 AI 如何安全地访问数据、调用工具、执行操作,让原本 "两眼一抹黑" 的 LLM 瞬间拥有了 "动手能力"。

2.2 MCP 的核心架构

MCP 采用C/S(客户端 - 服务器)模型,但这里的 "服务器" 并非传统意义上的云端服务,而是运行在本地的轻量级程序。其核心角色包括:

  • MCP Hosts:如 Claude Desktop、VS Code 等支持 MCP 的工具,作为 AI 与用户的交互入口
  • MCP Clients:与本地 MCP Server 建立持久连接的 "信使"
  • MCP Servers:提供数据、工具、提示词的 "能力中枢",可理解为 "AI 的工具箱"

2.3 传输与通信机制

MCP 基于JSON-RPC 2.0协议进行消息传递,支持两种通信方式:

  • Stdio 传输:适用于本地进程间通信(如 IDE 插件与本地服务)
  • HTTP/SSE 传输:支持远程服务调用(如云端 API)

生命周期则遵循标准化流程:

  1. Client 向 Server 发送初始化请求(包含协议版本和能力列表)
  2. Server 返回自身能力清单
  3. 建立连接后,通过 "请求 - 响应" 或 "通知" 模式进行数据交互

三、MCP 的四大核心模块

3.1 Resource:数据的 "高速公路"

Resource 定义了 MCP 可访问的数据来源,通过 URI(如system://infohttps://example.com/data)统一标识。每个 Resource 包含:

  • URI:唯一标识符
  • 加载逻辑:如何获取或生成数据(如读取本地文件、调用 API)
  • MIME 类型:数据格式(JSON、文本、图片等)

示例:获取系统信息

mcp.addResource({
  uri: "system://info",
  name: "系统信息",
  mimeType: "application/json",
  load: async () => {
    const os = await import('os');
    return {
      uri: "system://info",
      text: JSON.stringify({
        platform: os.platform(),
        arch: os.arch(),
        memory: `${Math.round(os.totalmem()/1024/1024)}MB总内存`,
        uptime: `${Math.round(os.uptime()/60)}分钟运行时间`
      })
    };
  }
});

3.2 Tools:AI 的 "超能力装备"

Tools 让 LLM 能执行具体操作,比如计算数学题、爬取网页内容、发送邮件等。每个 Tool 需定义:

  • 名称与描述:让 LLM 知道自己能做什么
  • 参数校验:通过 Zod 等工具确保输入合法性
  • 执行逻辑:具体的功能实现

示例:网页内容提取工具

mcp.addTool({
  name: "get_article_by_link",
  description: "通过URL获取网页正文内容",
  parameters: z.object({
    link: z.string().url("请输入有效的URL")
  }),
  execute: async ({ link }) => {
    const response = await axios.get(link);
    const $ = cheerio.load(response.data);
    // 提取文章正文(移除广告、导航等冗余内容)
    const content = $('article').text().trim();
    return { content: `网页内容:${content.substring(0, 2000)}...` };
  }
});

3.3 Prompts:AI 的 "角色剧本"

Prompts 允许 Server 定义可复用的提示模板,让 LLM 快速切换角色。例如:

mcp.addPrompt({
  name: "code_analyzer",
  description: "分析代码并提供改进建议",
  arguments: [
    { name: "lang", description: "编程语言(如JavaScript/TypeScript)", required: true },
    { name: "code", description: "待分析的代码片段", required: true }
  ],
  load: ({ lang, code }) => ({
    messages: [{
      role: "user",
      content: `请分析以下${lang}代码:\n\`\`\`${lang}\n${code}\n\`\`\`\n重点关注:性能优化、可读性、潜在bug`
    }]
  })
});

3.4 Sampling:AI 的 "决策策略"

通过 Sampling 模块,Server 可控制 LLM 的响应风格(如严谨 / 创新),同时确保安全性(如过滤危险指令)。

四、5 分钟上手:构建你的第一个 MCP Server

4.1 环境准备

# 安装FastMCP框架
npm install fastmcp zod axios cheerio

4.2 核心代码实现

import { FastMCP } from "fastmcp";
import { z } from "zod";
import axios from "axios";
import cheerio from "cheerio";

// 创建MCP服务器实例
const mcp = new FastMCP({
  name: "MyMCPAgent",
  version: "1.0.0",
  roots: ["system://", "https://"], // 允许访问的资源范围
});

// 添加工具:数学计算
mcp.addTool({
  name: "calculator",
  description: "执行数学表达式计算",
  parameters: z.object({
    expression: z.string().regex(/^[\d+\-*/().\s]+$/),
  }),
  execute: async ({ expression }) => {
    const result = eval(expression); // 实际应用中需替换为安全计算库
    return { content: `${expression} = ${result}` };
  },
});

// 添加工具:网页解析
mcp.addTool({
  name: "web_scraper",
  description: "提取网页标题和正文",
  parameters: z.object({ url: z.string().url() }),
  execute: async ({ url }) => {
    const { data } = await axios.get(url);
    const $ = cheerio.load(data);
    return {
      title: $("title").text(),
      content: $("main").text().substring(0, 1000),
    };
  },
});

// 启动服务器(支持HTTP/SSE或Stdio模式)
mcp.start({ type: "stdio" });

4.3 集成到开发工具

在 VS Code 中安装 MCP 插件后,配置本地 Server 路径:

// .vscode/settings.json
{
  "mcp.servers": [
    {
      "name": "MyAgent",
      "type": "stdio",
      "command": "node",
      "args": ["path/to/your/mcp-server.js"]
    }
  ]
}

五、MCP 的实战价值与场景

5.1 研发提效:AI 辅助开发

  • 代码审查:调用code_analyzer工具自动检查代码质量
  • 自动化测试:通过web_scraper爬取测试报告,生成测试用例

5.2 业务场景:智能客服

  • 接入天气 API(system://weather)、订单查询(https://api.example.com/orders)等 Resource
  • 通过Sampling控制回答风格(正式 / 口语化)

5.3 数据处理:实时报表生成

  • 整合数据库(mysql://user:pass@localhost/db)、API 数据,生成动态报表

六、总结:MCP 让 AI"落地" 更简单

MCP 通过标准化协议,解决了 AI 模型与外部系统的交互难题。无论是 5 分钟搭建本地智能助手,还是构建跨平台的 AI 应用,MCP 都像一把 "万能钥匙",让开发者能快速扩展 AI 的能力边界。

《AI 编程从开发到变现小白入门》手册
https://drgphlxsfa.feishu.cn/wiki/LK9pwfT7piXZuhkMHE0cokT3nXd

VicroCode,AI 编程时代的代码部署交易平台。支持代码快速在线部署与发布,无需复杂配置,一键上线应用。同时搭建代码交易生态,让开发者的优质代码直接转化为收益,助力个人与企业高效实现技术价值,让每一段代码都能创造商业与实用价值。

网址:https://www.vicrocode.com

能钥匙",让开发者能快速扩展 AI 的能力边界。

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐