设为首页 | 加入收藏 |
新闻动态

Data Knowledge | MCP暴风来袭:如何实现让LLM接管APP

2025.06.05            浏览量:

在数字化时代背景下,数据科学已成为驱动社会进步与行业革新的核心动力。秉承学校“以雇主为导向,以学生为中心”的教育理念,同时响应雇主对高素质数据分析人才的需求,数据科学学院推出“Data Knowledge”专栏,将普及数据模型、数据结构、机器学习等基础数据科学知识,为师生提供持续学习和成长的平台,同时,通过连接教学理论与现实实际,在生动传递专业知识的同时,深化教师队伍的知识储备,助力应用型数据分析人才的培养。


图片


作者简介:副教授,西安交通大学在读博士,数据科学与大数据应用工程师,商业统计学会会员


研究专长:机器学习,自然语言处理


主讲课程:《机器学习》《文本信息处理与应用》等


LLM(Large Language Model)是基于深度学习技术、拥有海量参数并经过大规模数据训练的人工智能系统,LLM擅长语义理解却缺乏执行能力,而传统APP拥有精准功能却缺乏自然语言交互的灵活性。Model Context Protocol (MCP) 正是解决这一矛盾的标准化方案。


什么是MCP server?


MCP Server(Model Context Protocol Server)是一种遵循模型上下文协议(MCP)的轻量级服务端程序,旨在为大语言模型(LLM)提供标准化接口,使其能够安全、高效地连接外部数据源、工具和系统。


1

核心功能


标准化接口:MCP Server 充当 AI 模型与外部世界的桥梁,统一不同工具和数据源的交互方式,类似“AI 领域的 USB-C 接口”。


工具与资源暴露:


– 工具调用:例如执行数据库查询、文件操作、API 请求等 。


– 资源访问:提供对本地文件、数据库、云服务等数据的实时访问 。


动态工作流支持:支持多步骤任务(如先查询数据再生成报告),超越传统单次检索的限制 。


图片

图1  MCP核心功能


MCP明确了两个核心角色:


· MCP Client(客户端) 通常是使用工具的一方。一般是 AI 应用,比如 Claude 客户端、Cursor 编程工具等。


· MCP Server(服务端) 也就是提供工具的一方。任何拥有 API 或软件服务的公司,都可以按照 MCP 规范把自己包装成一个 MCP Server,把原来给人用的工具,改造成能让 AI 理解和调用的工具。


2

技术架构


客户端-服务器模型:


MCP Client:集成在 AI 应用(如 Claude、Cursor IDE)中,负责发起请求 。


MCP Server:独立运行的服务,通过 JSON-RPC 2.0 协议处理请求,支持本地(Stdio)或远程(HTTP/SSE)通信 。


• 传输协议:


– 早期使用 HTTP+SSE,现逐步转向 Streamable HTTP,提升兼容性和灵活性 。


图片

图2  MCP技术架构


3

典型应用场景


自动化开发:通过自然语言指令生成并部署网页(如腾讯云 EdgeOne Pages)。


数据操作:无需编写 SQL,直接通过自然语言查询数据库 。


智能家居/IoT:控制设备(如通过 MQTT 协议操作智能家居)


企业级工具链:集成 Kubernetes、Cloudflare 等云服务,优化 DevOps 流程。


MCP市场(https://mcp.so/)提供了大量的MCP服务,用户可以下载安装。


图片

图3  MCP服务


4

优势与挑战


优势


开发效率:预集成工具(如 GitHub、MySQL)减少重复编码。


安全性:数据在本地或私有基础设施中处理,避免敏感信息外泄。


挑战:


权限管理:目前缺乏细粒度权限控制标准。


生态碎片化:不同行业需定制协议扩展,增加适配成本。


5

与其他技术的区别


图片


6

实际案例


以下是一个基于EdgeOne Pages MCP Server的完整案例实现,从配置到部署的详细流程,结合了多个来源的技术细节和实操演示:


案例:基于自然语言指令的「表白爱心网站」一键生成与部署



6.1 环境配置


· 工具准备:使用支持MCP的编辑器(如Cursor或Windsurf),确保已安装Node.js环境。


· MCP Server配置:


// 非Windows系统配置(如MacOS/Linux)

{

 "mcpServers": {

   "edgeone-pages-mcp-server": {

     "command": "npx",

     "args": ["edgeone-pages-mcp"]

   }

 }

}

// Windows系统需调整(因进程调用差异)

{

 "mcpServers": {

   "edgeone-pages-mcp-server": {

     "command": "cmd",

     "args": ["/c", "npx", "edgeone-pages-mcp"]

   }

 }

}

JSON


将配置粘贴到编辑器的MCP设置中并保存,状态灯变绿即表示连接成功。



6.2 指令执行


· 自然语言交互:在编辑器的Agent模式下输入:帮我做一个表白爱心网站并发布到线上


· 若开启auto-run mode,AI会自动调用MCP工具;否则需手动点击确认。


· 系统通过以下流程实现:


· AI生成动态爱心动画的HTML/CSS/JS代码含漂浮效果和点击交互)


· 通过MCP协议将代码发送至EdgeOne Pages服务


· 自动部署到腾讯云边缘节点,返回公网URL(如https://mcp.edgeone.site/share/xxx)


图片


语言模型拆分任务后基于MCP进行部署,就实现了下面网页的创建:


图片



6.3 技术实现细节


· 边缘计算加速:部署后的网站平均响应时间仅0.15秒,得益于腾讯云全球边缘节点和KV存储的秒级分发能力。


· 动态内容生成:核心代码片段示例(由AI自动生成)


<!DOCTYPE html>

<html>

<head>

   <meta charset="UTF-8">

   <meta name="viewport" content="width=device-width, initial-scale=1.0">

   <title>给最爱的你</title>

   <style>

       body {

           font-family: 'Arial', sans-serif;

           background-color: #ffebee;

           text-align: center;

           margin: 0;

           padding: 0;

           display: flex;

           justify-content: center;

           align-items: center;

           height: 100vh;

           flex-direction: column;

       }


       .container {

           background-color: white;

           border-radius: 15px;

           padding: 30px;

           box-shadow: 0 5px 15px rgba(0, 0, 0, 0.1);

           max-width: 500px;

       }


       h1 {

           color: #e91e63;

           margin-bottom: 20px;

       }


       .heart {

           font-size: 50px;

           color: #e91e63;

           animation: heartbeat 1.5s infinite;

           margin: 20px 0;

       }


       @keyframes heartbeat {

           0% { transform: scale(1); -webkit-transform: scale(1); -moz-transform: scale(1); -o-transform: scale(1); }

           25% { transform: scale(1.1); -webkit-transform: scale(1.1); -moz-transform: scale(1.1); -o-transform: scale(1.1); }

           50% { transform: scale(1); -webkit-transform: scale(1); -moz-transform: scale(1); -o-transform: scale(1); }

           75% { transform: scale(1.1); -webkit-transform: scale(1.1); -moz-transform: scale(1.1); -o-transform: scale(1.1); }

           100% { transform: scale(1); -webkit-transform: scale(1); -moz-transform: scale(1); -o-transform: scale(1); }

       }


       p {

           font-size: 18px;

           line-height: 1.6;

           color: #555;

           margin-bottom: 25px;

       }


       button {

           background-color: #e91e63;

           color: white;

           border: none;

           padding: 12px 25px;

           font-size: 16px;

           border-radius: 50px;

           cursor: pointer;

           transition: all 0.3s;

       }


       button:hover {

           background-color: #c2185b;

            transform: translateY(-3px); -webkit-transform: translateY(-3px); -moz-transform: translateY(-3px); -o-transform: translateY(-3px);

           box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);

       }


       .hidden {

           display: none;

       }


       #message {

           margin-top: 20px;

           font-weight: bold;

           color: #e91e63;

       }

   </style>

</head>

<body>

   <div>

       <h1>给最爱的你 ❤️</h1>

       <div>❤</div>

       <p>从遇见你的那一刻起,我的心就为你跳动...</p>

       <p>你愿意成为我生命中最特别的人吗?</p>


       <button id="yesBtn">我愿意</button>

       <button id="noBtn">再考虑一下</button>


       <div id="message">

           <p>太棒了!我太开心了!��</p>

           <p>我会用一生的时间去爱你、珍惜你!</p>

           <div>❤❤❤</div>

       </div>

   </div>


   <script>

       const yesBtn = document.getElementById('yesBtn');

       const noBtn = document.getElementById('noBtn');

       const message = document.getElementById('message');


       yesBtn.addEventListener('click', function() {

           message.classList.remove('hidden');

           yesBtn.classList.add('hidden');

           noBtn.classList.add('hidden');

       });


       noBtn.addEventListener('mouseover', function() {

           // 让"再考虑一下"按钮随机移动,增加趣味性

           const x = Math.random() * 200 - 100;

           const y = Math.random() * 200 - 100;

           noBtn.style.transform = `translate(${x}px, ${y}px)`;

       });

   </script>

</body>

</html>


HTML右下角会自动添加Powered by EdgeOne Pages标识。



6.4 扩展应用场景


· 快速迭代:通过修改指令如"添加背景音乐和照片墙",可动态更新网站。


· 企业级应用:产品经理用自然语言描述需求(如"生成电商促销页"),5分钟内获得可测试的线上原型。


· 教育演示:教师无需编码知识即可创建教学案例页面(如"做三角函数可视化页面")


参考资料

·302.AI: https://302.ai


·MCP.so: https://mcp.so


·https://mcp-docs.cn/introduction


·Norah Sakal | What is Model Context Protocol (MCP)? How it simplifies AI integrations compared to APIs: https://norahsakal.com/blog/mcp-vs-api-model-context-protocol-explained


·a16z | A Deep Dive Into MCP and the Future of AI Tooling: https://a16z.com/a-deep-dive-into-mcp-and-the-future-of-ai-tooling


·What is Model Context Protocol (MCP): Explained: https://composio.dev/blog/what-is-model-context-protocol-mcp-explained


·What Is the Model Context Protocol (MCP) and How It Works: https://www.descope.com/learn/post/mcp#llm-isolation-&-the-nxm-problem


------- 友情链接 -------

学校地址:陕西省西安市雁塔区东仪路8号    


Copyright 2017 Xi'an Eurasia University , All Rights Reserved , 陕ICP备13005465-1