当前位置: 首页 > news >正文

MCP(模型上下文协议)入门教程1

MCP(模型上下文协议)入门教程:连接AI与外部世界的万能插座

1 MCP是什么?

1.1 基本概念

MCP(Model Context Protocol,模型上下文协议)是一个开放协议,专门用于AI模型与外部数据源和工具之间的标准化交互。简单来说,MCP就像是AI世界的"万能插座",它定义了一套标准化的接口,让大语言模型(LLM)能够安全、高效地访问和使用外部工具、数据源和能力。该协议由AI公司Anthropic于2024年11月推出,旨在解决AI模型在访问碎片化外部数据时面临的难题。

在没有MCP之前,每个AI应用都需要单独编写代码来连接各种外部工具和数据源,这就像每个电器厂商都生产自己专属的插座一样,导致效率低下且兼容性差。有了MCP之后,任何支持MCP协议的AI模型(如Claude、GPT等)都可以无缝连接任何支持MCP协议的工具和服务,大大提高了开发效率和灵活性。

1.2 为什么需要MCP?

MCP主要解决了以下几个核心问题:

  • 标准化问题:统一了AI模型与外部工具交互的方式,避免了为每个工具单独开发适配器。

  • 生态碎片化:不同厂商提供的工具和服务可以通过MCP协议被各种AI模型使用,形成了开放的生态系统。

  • 安全性:提供了明确的安全框架,确保用户对数据访问和工具执行有完全的控制权。

  • 可组合性:多个MCP服务器可以组合使用,创造出更强大的功能组合。

MCP的价值在于它将工具适配工作从双向简化为单向。以前,既要修改模型又要修改工具才能实现集成;现在,只要工具支持MCP协议,任何兼容MCP的模型就都能使用它。这不仅降低了开发成本,也加速了AI应用生态的创新步伐。

2 MCP的核心组件与工作原理

2.1 核心组件

MCP生态系统中有三个核心组件,它们协同工作实现了AI与外部资源的连接:

  • MCP服务器(Server):提供具体工具和能力的一方。例如,一个可以提供计算服务的计算器服务器,一个可以访问文件系统的文件服务器,或者一个可以查询数据库的数据库服务器。服务器负责向客户端宣告自己提供哪些工具和资源。

  • MCP客户端(Client):通常是大模型或智能体,它是使用工具的一方。客户端发起请求,如"请搜索最新新闻"或"请读取这个文件"。

  • MCP协议(Protocol):规定客户端和服务器之间如何通信的标准规则。它基于JSON-RPC 2.0标准,定义了请求和响应的格式,确保双方能够相互理解。

表:MCP的三大核心组件对比

组件角色功能示例
MCP服务器能力提供者提供工具、资源和提示模板计算器服务器、文件服务器、数据库服务器
MCP客户端能力使用者发起请求并使用服务器提供的功能Claude、GPT、Cursor IDE等AI模型或应用
MCP协议通信规则定义客户端和服务器之间如何交互JSON-RPC 2.0格式的消息交换

2.2 MCP的工作原理

MCP的工作流程可以概括为以下几个步骤:

  1. 建立连接:客户端与服务器之间通过stdio或网络(socket)方式建立连接。

  2. 能力协商:双方通过交换初始化信息确认彼此支持的功能特性。

  3. 工具发现:客户端向服务器请求工具列表,服务器返回自己提供的所有工具及其描述和参数要求。

  4. 工具调用:客户端选择需要的工具,按照要求的格式发送请求给服务器。

  5. 执行与返回:服务器执行相应操作并将结果返回给客户端。

  6. 结果处理:客户端将结果整合到AI的响应中呈现给用户。

这个过程类似于一个人走进工具租赁店:首先查看工具清单(工具发现),然后选择需要的工具并提出使用请求(工具调用),店员使用工具完成操作并返回结果(执行与返回),最后这个人将结果用于自己的工作中(结果处理)。

2.3 MCP提供的三大能力

MCP服务器主要提供三类基本能力,使AI模型能够与外部世界交互:

  1. 工具(Tools):AI模型可以执行的函数。例如,执行计算、搜索网络、操作文件等。工具允许AI模型执行实际操作而不仅仅是生成文本。

  2. 资源(Resources):AI模型可以访问的数据或文件。例如,数据库记录、本地文件、API数据等。资源为AI模型提供了上下文信息,增强其回答的准确性和相关性。

  3. 提示模板(Prompts):预定义的提示词模板和工作流。这些模板可以帮助用户更有效地与AI交互,标准化常见任务的执行流程。

3 MCP的两种通信模式

MCP支持两种主要的通信模式,适用于不同的使用场景:

3.1 Stdio模式(标准输入输出)

Stdio模式通过进程间的标准输入输出流进行通信,是本地开发和个人使用中最常见的模式。

  • 工作原理:服务器作为一个本地进程启动,客户端通过stdin(标准输入)发送请求,通过stdout(标准输出)接收响应。

  • 优点:更安全、更简单,无需处理网络配置。

  • 缺点:仅限于本地机器使用。

  • 适用场景:个人电脑上的工具集成,如让AI助手访问本地文件系统。

3.2 Socket模式(套接字)

Socket模式通过网络端口进行通信,类似于传统的Web服务器。

  • 工作原理:服务器绑定到特定端口(如localhost:8000)侦听请求,客户端通过网络连接到这个地址和端口进行通信。

  • 优点:更灵活,允许远程连接和多客户端共享。

  • 缺点:需要配置网络和安全性设置。

  • 适用场景:需要远程访问或共享服务的场景,如企业内多个用户访问同一个MCP服务器。

表:MCP的两种通信模式对比

特性Stdio模式Socket模式
通信方式进程间管道(stdin/stdout)网络(TCP/WebSocket)
运行方式通常由客户端启动和管理作为独立后台服务运行
连接范围仅限本地机器可以是本地或远程机器
安全性高(无开放网络端口)需要配置防火墙和认证
使用场景个人工具集成远程访问或共享服务

在实际应用中,MCP网关的概念被提出来解决多个MCP服务器的集中管理问题。MCP网关作为一个中间层,接收客户端的请求并将其路由到适当的MCP服务器,简化了客户端的配置和管理工作。

4 MCP的实际应用场景

MCP协议的应用范围非常广泛,从个人效率工具到企业级系统集成都可以发挥重要作用。以下是一些常见的应用场景:

4.1 个人效率提升

  • 智能文件处理:通过MCP服务器,AI助手可以读取、分析和总结本地文件的内容,帮助用户快速获取文档要点。

  • 知识管理:集成像Obsidian这样的笔记工具,让AI能够访问和整理用户的个人知识库。

  • 个性化搜索:连接各类搜索API,使AI能够获取最新信息而不是仅依赖训练数据。

  • 日程与邮件管理:通过Gmail和日历的MCP服务器,AI可以帮忙管理邮件和日程安排。

4.2 云服务与数据分析

  • 云资源管理:微软推出的Azure MCP Server可以无缝接入多种Azure服务,包括Azure Cosmos DB、Azure Storage和Azure Monitor等核心服务,覆盖从数据库查询到存储管理再到日志分析等全方位功能。

  • 数据库操作:Azure Database for PostgreSQL Flexible Server专用服务器支持用户列出数据库和表、执行查询以及修改数据等关键任务。

  • 性能监控:DeepFlow推出的eBPF MCP Server可以提供函数级别的精细化性能分析结果,帮助开发者识别代码性能瓶颈。

4.3 智能体与编程助手

  • 代码分析与评审:通过MCP服务器,AI编程助手可以访问代码库、执行代码分析并提供改进建议。

  • 自动化开发流程:在Cursor等AI编程IDE中,MCP可以用于自动化生成提交消息、创建PR等Git工作流。

  • 智能调试:当代码出现问题时,AI可以通过MCP访问运行时数据,帮助诊断和解决问题。

4.4 行业特定应用

  • 学术研究:arXiv的MCP服务器可以帮助研究人员获取科学文章,Docling MCP服务器则能协助解析学术文档。

  • 电商与消费:值得买科技的"海纳"MCP Server提供了商品搜索功能,准确率高达97.2%,为AI应用提供消费信息服务。

  • 基因研究:某基因研究平台采用MCP协议实现数据分析流水线,使跨机构协作效率提升60%。

这些应用场景展示了MCP协议的强大灵活性和实用性,它几乎可以应用于任何需要AI与外部系统交互的领域。

5 如何开始使用MCP

5.1 准备工作

要开始使用MCP,你需要准备以下基本环境:

  1. 安装必要的运行环境

    • Node.js:用于运行基于JavaScript的MCP服务器

    • uv:Python包管理工具,用于安装Python相关的MCP服务器

  2. 选择MCP客户端:支持MCP的客户端主要包括两类:

    • AI聊天客户端:如Claude Desktop、Chatwise、Cherry Studio等

    • AI编程IDE:如Cursor、Windsurf等

5.2 配置MCP服务器的基本步骤

配置MCP服务器通常遵循以下流程:

  1. 获取MCP服务器:从MCP聚合网站(如mcp.so和smithery.ai)查找需要的MCP服务器。

  2. 获取必要的API密钥:许多MCP服务器需要API密钥才能工作,如OpenAI API密钥、Google API密钥等。

  3. 配置客户端连接MCP服务器

    • 对于Stdio模式的服务器,需要在客户端配置文件中添加服务器启动命令和参数

    • 对于Socket模式的服务器,只需要提供服务器URL和必要的认证信息

  4. 测试连接:启动客户端并验证是否成功连接到MCP服务器。

下面是一个典型的MCP配置示例(用于Cursor IDE的配置文件):

json{"mcpServers": {"DeepFlow_Git_Commit_Profile": {"url": "http://$deepflow_controller_ip:20080/mcp","headers": {}}}
}

5.3 简单示例:创建一个计算器MCP服务器

为了更好地理解MCP的工作原理,让我们看一个简单的计算器MCP服务器的示例代码:

pythonimport json
from mcp.server import Server
from mcp.server.stdio import stdio_server# 创建服务器实例
server = Server("calculator-server")# 提供工具列表
@server.list_tools()
async def list_tools():return [{"name": "add","description": "Add two numbers","inputSchema": {"type": "object","properties": {"a": {"type": "number", "description": "First number"},"b": {"type": "number", "description": "Second number"}},"required": ["a", "b"]}}]# 实现工具功能
@server.call_tool()
async def call_tool(name: str, arguments: dict):if name == "add":result = arguments["a"] + arguments["b"]return [{"type": "text","text": f"The sum of {arguments['a']} and {arguments['b']} is {result}"}]else:raise ValueError(f"Unknown tool: {name}")# 主函数
async def main():async with stdio_server() as (read_stream, write_stream):await server.run(read_stream, write_stream)if __name__ == "__main__":import asyncioasyncio.run(main())

这个简单的MCP服务器提供了一个加法工具,AI客户端可以通过MCP协议调用这个工具来执行加法运算。在实际应用中,MCP服务器可以提供更复杂的功能,如数据库访问、API调用、文件操作等。

6 安全性与最佳实践

6.1 MCP的安全原则

MCP设计时考虑了严格的安全性原则,主要包括:

  1. 用户同意及管制:用户必须明确同意并理解所有数据访问和操作,保留对共享哪些数据和采取哪些操作的控制权。

  2. 数据隐私:在向服务器公开用户数据之前,主机必须获得用户的明确同意;未经用户同意,不得在其他地方传输资源数据。

  3. 工具安全:工具代表任意的代码执行,必须谨慎对待。在调用任何工具之前,必须获得明确的用户同意。

  4. 采样控制:用户必须显式批准任何LLM采样请求,并控制是否进行采样、将要发送的实际提示词以及服务器可以看到的结果。

6.2 安全实践建议

在使用MCP时,应遵循以下安全最佳实践:

  • 谨慎授权:只授予MCP服务器最小必要的权限,定期审查已授权的服务器和工具。

  • 网络隔离:对于涉及敏感数据的MCP服务器,使用本地网络或私有网络部署,避免公开暴露。

  • API密钥管理:不要将API密钥直接写在配置文件中,使用环境变量或安全的密钥管理服务。

  • 定期更新:保持MCP服务器和客户端的最新版本,以获取安全补丁和功能改进。

重要提示:MCP协议本身不能强制实施安全策略,安全性的实现依赖于主机应用程序(如Claude Desktop、Cursor等)提供的安全保障机制。因此,用户应该只从信任的来源安装MCP服务器,并仔细审查请求的权限。

总结

MCP(模型上下文协议)作为连接AI模型与外部世界的"万能插座",正在重塑AI应用开发的方式。它通过标准化的协议解决了AI与工具集成中的碎片化问题,使开发者能够构建更强大、更灵活的AI应用。

随着MCP生态的快速发展,我们现在已经可以看到各种实用的MCP服务器,从个人效率工具到企业级系统集成,从云服务管理到代码性能分析,应用场景不断扩大。值得买科技的"海纳"MCP Server月对外输出量达到1300万,新增30多家合作伙伴的数据也证明了MCP技术的迅速普及和实用价值。

学习和使用MCP并不是一件困难的事情。从配置简单的现有MCP服务器开始,逐步探索更复杂的应用场景,最终甚至可以开发自己的MCP服务器来满足特定需求。无论你是普通用户希望提升AI助手的能力,还是开发者希望将自己的服务集成到AI生态中,MCP都提供了一个强大而灵活的解决方案。

随着更多厂商和开发者加入MCP生态系统,我们可以预期未来会有更多创新性的应用出现,进一步扩展AI模型的能力边界,让人工智能真正成为连接数字世界与物理世界的智能桥梁。


文章转载自:

http://xgGD7PLh.tdttz.cn
http://UJHAf83G.tdttz.cn
http://nbubG0qf.tdttz.cn
http://qmev1Gky.tdttz.cn
http://TrVUdCle.tdttz.cn
http://R3DGbH8h.tdttz.cn
http://a5yidNfn.tdttz.cn
http://Km0cYtHL.tdttz.cn
http://clzi7QzD.tdttz.cn
http://k86RtrEq.tdttz.cn
http://Zaxaew23.tdttz.cn
http://T77PiSJv.tdttz.cn
http://9kCW5EBx.tdttz.cn
http://OyVvAK6H.tdttz.cn
http://bn9DmBFP.tdttz.cn
http://GlGnxiay.tdttz.cn
http://l0f9F9gM.tdttz.cn
http://3bPaax03.tdttz.cn
http://Ym28rIWG.tdttz.cn
http://mBBsaUGy.tdttz.cn
http://BjbYjUWu.tdttz.cn
http://XOD4KWzE.tdttz.cn
http://nXpJIZmS.tdttz.cn
http://bKfUvWXo.tdttz.cn
http://lE3fcAe8.tdttz.cn
http://JGnK7MeQ.tdttz.cn
http://1Bq4rZYb.tdttz.cn
http://T7UQnOoY.tdttz.cn
http://01Cr1KOu.tdttz.cn
http://FMbkxoun.tdttz.cn
http://www.dtcms.com/a/374208.html

相关文章:

  • 已知两个平面点的坐标、切线方向、曲率,构造三阶Bezier曲线的方法
  • STM32添加库函数
  • Python 示例(Tkinter)
  • 学习如何基于ACP-SDK构建多智能体系统
  • Dify 从入门到精通(第 83/100 篇):Dify 的多模态模型性能调优(高级篇)
  • 【docker】镜像制作
  • 前端安全攻防:XSS, CSRF 等防范与检测
  • Unity鱼眼特效
  • MySQL表结构优化:安全删除字段(DROP COLUMN)的完整指南与避坑手册
  • Java全栈技术选型指南
  • Leptos框架深度解析:用Rust构建高性能Web应用的未来
  • 嵌入式学习day45-硬件—汇编
  • Gazebo1: gz命令工具理解与掌握
  • 电路运行的核心-RTC
  • 高并发下的锁选择:乐观锁 vs 悲观锁全面对比
  • 本地部署大模型和知识库实现问答AI
  • python编程:一文掌握pypiserver的详细使用
  • 【人工智能99问】开源项目RAGflow_by_infiniflow介绍(37/99)
  • Qt C++ 复杂界面处理:巧用覆盖层突破复杂界面处理难题​之一
  • 一种高效绘制余晖波形的方法Qt/C++
  • 本地部署的Qwen3,测试不同数量并发请求的吞吐量
  • 【从零开始java学习|第十三篇】字符串究极知识总结
  • Linux内核进程管理子系统有什么第四十六回 —— 进程主结构详解(42)
  • Kafka 与 RocketMQ 核心概念与架构对比
  • 【检索通知】2025年IEEE第二届深度学习与计算机视觉国际会议检索
  • 2025年AC-DC电源模块选购指南与应用方案解析
  • LeetCode 面试经典 150 题:删除有序数组中的重复项 II(最多保留 2 次 + 通用 k 次解法详解)
  • 在OpenHarmony上适配图形显示【2】——调试display hdi的技巧
  • 在 JavaScript 中轻松实现 AES 加密与解密:从原理到实战
  • Mockoon:开源免费的本地Mock服务工具,提升前后端联调效率